diff --git a/src/IJ_mv/HYPRE_IJ_mv.h b/src/IJ_mv/HYPRE_IJ_mv.h index 9505a63f63..5eddd39d59 100644 --- a/src/IJ_mv/HYPRE_IJ_mv.h +++ b/src/IJ_mv/HYPRE_IJ_mv.h @@ -11,6 +11,10 @@ #include "HYPRE_config.h" #include "HYPRE_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "IJ_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/IJ_mv/IJ_mv_func_header b/src/IJ_mv/IJ_mv_func_header new file mode 100755 index 0000000000..e87795760c --- /dev/null +++ b/src/IJ_mv/IJ_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=IJ_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'IJ_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef IJ_MV_MUP_FUNC_HEADER +#define IJ_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=IJ_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/IJ_mv/IJ_mv_functions.saved b/src/IJ_mv/IJ_mv_functions.saved new file mode 100644 index 0000000000..c566577760 --- /dev/null +++ b/src/IJ_mv/IJ_mv_functions.saved @@ -0,0 +1,142 @@ +hypre_AuxParCSRMatrixCreate +hypre_AuxParCSRMatrixDestroy +hypre_AuxParCSRMatrixInitialize +hypre_AuxParCSRMatrixInitialize_v2 +hypre_AuxParCSRMatrixSetRownnz +hypre_AuxParVectorCreate +hypre_AuxParVectorDestroy +hypre_AuxParVectorInitialize_v2 +hypre_ijmatrixaddtovalues +hypre_ijmatrixassemble +hypre_ijmatrixcreate +hypre_ijmatrixdestroy +hypre_ijmatrixgetlocalrange +hypre_ijmatrixgetobject +hypre_ijmatrixgetobjecttype +hypre_ijmatrixgetrowcounts +hypre_ijmatrixgetvalues +hypre_ijmatrixinitialize +hypre_ijmatrixprint +hypre_ijmatrixread +hypre_ijmatrixsetconstantvalues +hypre_ijmatrixsetdiagoffdsizes +hypre_ijmatrixsetmaxoffprocelmt +hypre_ijmatrixsetobjecttype +hypre_ijmatrixsetrowsizes +hypre_ijmatrixsetvalues +hypre_ijvectoraddtovalues +hypre_ijvectorassemble +hypre_ijvectorcreate +hypre_ijvectordestroy +hypre_ijvectorgetlocalrange +hypre_ijvectorgetobject +hypre_ijvectorgetobjecttype +hypre_ijvectorgetvalues +hypre_ijvectorinitialize +hypre_ijvectorprint +hypre_ijvectorread +hypre_ijvectorsetmaxoffprocelmt +hypre_ijvectorsetobjecttype +hypre_ijvectorsetvalues +hypre_ijmatrixsetobject +HYPRE_IJMatrixAdd +HYPRE_IJMatrixAddToValues +HYPRE_IJMatrixAddToValues2 +HYPRE_IJMatrixAssemble +HYPRE_IJMatrixCreate +HYPRE_IJMatrixDestroy +HYPRE_IJMatrixGetLocalRange +HYPRE_IJMatrixGetObject +HYPRE_IJMatrixGetObjectType +HYPRE_IJMatrixGetRowCounts +HYPRE_IJMatrixGetValues +HYPRE_IJMatrixGetValues2 +HYPRE_IJMatrixGetValuesAndZeroOut +HYPRE_IJMatrixInitialize +HYPRE_IJMatrixInitialize_v2 +HYPRE_IJMatrixNorm +HYPRE_IJMatrixPartialClone +HYPRE_IJMatrixPrint +HYPRE_IJMatrixPrintBinary +HYPRE_IJMatrixRead +HYPRE_IJMatrixReadBinary +HYPRE_IJMatrixReadMM +HYPRE_IJMatrixSetConstantValues +HYPRE_IJMatrixSetDiagOffdSizes +HYPRE_IJMatrixSetMaxOffProcElmts +HYPRE_IJMatrixSetObjectType +HYPRE_IJMatrixSetOMPFlag +HYPRE_IJMatrixSetPrintLevel +HYPRE_IJMatrixSetRowSizes +HYPRE_IJMatrixSetValues +HYPRE_IJMatrixSetValues2 +HYPRE_IJMatrixTranspose +hypre_PrefixSumInt +HYPRE_IJVectorAddToValues +HYPRE_IJVectorAssemble +HYPRE_IJVectorCreate +HYPRE_IJVectorDestroy +HYPRE_IJVectorGetLocalRange +HYPRE_IJVectorGetObject +HYPRE_IJVectorGetObjectType +HYPRE_IJVectorGetValues +HYPRE_IJVectorInitialize +HYPRE_IJVectorInitialize_v2 +HYPRE_IJVectorInnerProd +HYPRE_IJVectorPrint +HYPRE_IJVectorPrintBinary +HYPRE_IJVectorRead +HYPRE_IJVectorReadBinary +HYPRE_IJVectorSetComponent +HYPRE_IJVectorSetMaxOffProcElmts +HYPRE_IJVectorSetNumComponents +HYPRE_IJVectorSetObjectType +HYPRE_IJVectorSetPrintLevel +HYPRE_IJVectorSetValues +HYPRE_IJVectorUpdateValues +hypre_IJMatrixCreateAssumedPartition +hypre_IJVectorCreateAssumedPartition +hypre_IJMatrixGetColPartitioning +hypre_IJMatrixGetRowPartitioning +hypre_IJMatrixRead +hypre_IJMatrixReadBinary +hypre_IJMatrixSetObject +hypre_FillResponseIJOffProcVals +hypre_FindProc +hypre_IJMatrixAddParCSR +hypre_IJMatrixAddToValuesOMPParCSR +hypre_IJMatrixAddToValuesParCSR +hypre_IJMatrixAssembleOffProcValsParCSR +hypre_IJMatrixAssembleParCSR +hypre_IJMatrixCreateParCSR +hypre_IJMatrixDestroyParCSR +hypre_IJMatrixGetRowCountsParCSR +hypre_IJMatrixGetValuesParCSR +hypre_IJMatrixInitializeParCSR +hypre_IJMatrixInitializeParCSR_v2 +hypre_IJMatrixNormParCSR +hypre_IJMatrixSetConstantValuesParCSR +hypre_IJMatrixSetConstantValuesParCSRHost +hypre_IJMatrixSetDiagOffdSizesParCSR +hypre_IJMatrixSetMaxOffProcElmtsParCSR +hypre_IJMatrixSetMaxOnProcElmtsParCSR +hypre_IJMatrixSetRowSizesParCSR +hypre_IJMatrixSetValuesOMPParCSR +hypre_IJMatrixSetValuesParCSR +hypre_IJMatrixTransposeParCSR +hypre_IJVectorDistribute +hypre_IJVectorReadBinary +hypre_IJVectorZeroValues +hypre_IJVectorAddToValuesPar +hypre_IJVectorAssembleOffProcValsPar +hypre_IJVectorAssemblePar +hypre_IJVectorCreatePar +hypre_IJVectorDestroyPar +hypre_IJVectorDistributePar +hypre_IJVectorGetValuesPar +hypre_IJVectorInitializePar +hypre_IJVectorInitializePar_v2 +hypre_IJVectorSetComponentPar +hypre_IJVectorSetMaxOffProcElmtsPar +hypre_IJVectorSetValuesPar +hypre_IJVectorZeroValuesPar diff --git a/src/IJ_mv/IJ_mv_mup_func.h b/src/IJ_mv/IJ_mv_mup_func.h new file mode 100644 index 0000000000..0677a1d1c6 --- /dev/null +++ b/src/IJ_mv/IJ_mv_mup_func.h @@ -0,0 +1,162 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'IJ_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef IJ_MV_MUP_FUNC_HEADER +#define IJ_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_AuxParCSRMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParCSRMatrixCreate ) +#define hypre_AuxParCSRMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParCSRMatrixDestroy ) +#define hypre_AuxParCSRMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParCSRMatrixInitialize ) +#define hypre_AuxParCSRMatrixInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParCSRMatrixInitialize_v2 ) +#define hypre_AuxParCSRMatrixSetRownnz HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParCSRMatrixSetRownnz ) +#define hypre_AuxParVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParVectorCreate ) +#define hypre_AuxParVectorDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParVectorDestroy ) +#define hypre_AuxParVectorInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_AuxParVectorInitialize_v2 ) +#define hypre_ijmatrixaddtovalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixaddtovalues ) +#define hypre_ijmatrixassemble HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixassemble ) +#define hypre_ijmatrixcreate HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixcreate ) +#define hypre_ijmatrixdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixdestroy ) +#define hypre_ijmatrixgetlocalrange HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixgetlocalrange ) +#define hypre_ijmatrixgetobject HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixgetobject ) +#define hypre_ijmatrixgetobjecttype HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixgetobjecttype ) +#define hypre_ijmatrixgetrowcounts HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixgetrowcounts ) +#define hypre_ijmatrixgetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixgetvalues ) +#define hypre_ijmatrixinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixinitialize ) +#define hypre_ijmatrixprint HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixprint ) +#define hypre_ijmatrixread HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixread ) +#define hypre_ijmatrixsetconstantvalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetconstantvalues ) +#define hypre_ijmatrixsetdiagoffdsizes HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetdiagoffdsizes ) +#define hypre_ijmatrixsetmaxoffprocelmt HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetmaxoffprocelmt ) +#define hypre_ijmatrixsetobjecttype HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetobjecttype ) +#define hypre_ijmatrixsetrowsizes HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetrowsizes ) +#define hypre_ijmatrixsetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetvalues ) +#define hypre_ijvectoraddtovalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectoraddtovalues ) +#define hypre_ijvectorassemble HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorassemble ) +#define hypre_ijvectorcreate HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorcreate ) +#define hypre_ijvectordestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectordestroy ) +#define hypre_ijvectorgetlocalrange HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorgetlocalrange ) +#define hypre_ijvectorgetobject HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorgetobject ) +#define hypre_ijvectorgetobjecttype HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorgetobjecttype ) +#define hypre_ijvectorgetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorgetvalues ) +#define hypre_ijvectorinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorinitialize ) +#define hypre_ijvectorprint HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorprint ) +#define hypre_ijvectorread HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorread ) +#define hypre_ijvectorsetmaxoffprocelmt HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorsetmaxoffprocelmt ) +#define hypre_ijvectorsetobjecttype HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorsetobjecttype ) +#define hypre_ijvectorsetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_ijvectorsetvalues ) +#define hypre_ijmatrixsetobject HYPRE_MULTIPRECISION_FUNC ( hypre_ijmatrixsetobject ) +#define HYPRE_IJMatrixAdd HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixAdd ) +#define HYPRE_IJMatrixAddToValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixAddToValues ) +#define HYPRE_IJMatrixAddToValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixAddToValues2 ) +#define HYPRE_IJMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixAssemble ) +#define HYPRE_IJMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixCreate ) +#define HYPRE_IJMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixDestroy ) +#define HYPRE_IJMatrixGetLocalRange HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetLocalRange ) +#define HYPRE_IJMatrixGetObject HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetObject ) +#define HYPRE_IJMatrixGetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetObjectType ) +#define HYPRE_IJMatrixGetRowCounts HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetRowCounts ) +#define HYPRE_IJMatrixGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetValues ) +#define HYPRE_IJMatrixGetValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetValues2 ) +#define HYPRE_IJMatrixGetValuesAndZeroOut HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixGetValuesAndZeroOut ) +#define HYPRE_IJMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixInitialize ) +#define HYPRE_IJMatrixInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixInitialize_v2 ) +#define HYPRE_IJMatrixNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixNorm ) +#define HYPRE_IJMatrixPartialClone HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixPartialClone ) +#define HYPRE_IJMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixPrint ) +#define HYPRE_IJMatrixPrintBinary HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixPrintBinary ) +#define HYPRE_IJMatrixRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixRead ) +#define HYPRE_IJMatrixReadBinary HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixReadBinary ) +#define HYPRE_IJMatrixReadMM HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixReadMM ) +#define HYPRE_IJMatrixSetConstantValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetConstantValues ) +#define HYPRE_IJMatrixSetDiagOffdSizes HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetDiagOffdSizes ) +#define HYPRE_IJMatrixSetMaxOffProcElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetMaxOffProcElmts ) +#define HYPRE_IJMatrixSetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetObjectType ) +#define HYPRE_IJMatrixSetOMPFlag HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetOMPFlag ) +#define HYPRE_IJMatrixSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetPrintLevel ) +#define HYPRE_IJMatrixSetRowSizes HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetRowSizes ) +#define HYPRE_IJMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetValues ) +#define HYPRE_IJMatrixSetValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixSetValues2 ) +#define HYPRE_IJMatrixTranspose HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJMatrixTranspose ) +#define hypre_PrefixSumInt HYPRE_MULTIPRECISION_FUNC ( hypre_PrefixSumInt ) +#define HYPRE_IJVectorAddToValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorAddToValues ) +#define HYPRE_IJVectorAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorAssemble ) +#define HYPRE_IJVectorCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorCreate ) +#define HYPRE_IJVectorDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorDestroy ) +#define HYPRE_IJVectorGetLocalRange HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorGetLocalRange ) +#define HYPRE_IJVectorGetObject HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorGetObject ) +#define HYPRE_IJVectorGetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorGetObjectType ) +#define HYPRE_IJVectorGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorGetValues ) +#define HYPRE_IJVectorInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorInitialize ) +#define HYPRE_IJVectorInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorInitialize_v2 ) +#define HYPRE_IJVectorInnerProd HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorInnerProd ) +#define HYPRE_IJVectorPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorPrint ) +#define HYPRE_IJVectorPrintBinary HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorPrintBinary ) +#define HYPRE_IJVectorRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorRead ) +#define HYPRE_IJVectorReadBinary HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorReadBinary ) +#define HYPRE_IJVectorSetComponent HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorSetComponent ) +#define HYPRE_IJVectorSetMaxOffProcElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorSetMaxOffProcElmts ) +#define HYPRE_IJVectorSetNumComponents HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorSetNumComponents ) +#define HYPRE_IJVectorSetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorSetObjectType ) +#define HYPRE_IJVectorSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorSetPrintLevel ) +#define HYPRE_IJVectorSetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorSetValues ) +#define HYPRE_IJVectorUpdateValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_IJVectorUpdateValues ) +#define hypre_IJMatrixCreateAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixCreateAssumedPartition ) +#define hypre_IJVectorCreateAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorCreateAssumedPartition ) +#define hypre_IJMatrixGetColPartitioning HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixGetColPartitioning ) +#define hypre_IJMatrixGetRowPartitioning HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixGetRowPartitioning ) +#define hypre_IJMatrixRead HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixRead ) +#define hypre_IJMatrixReadBinary HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixReadBinary ) +#define hypre_IJMatrixSetObject HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetObject ) +#define hypre_FillResponseIJOffProcVals HYPRE_MULTIPRECISION_FUNC ( hypre_FillResponseIJOffProcVals ) +#define hypre_FindProc HYPRE_MULTIPRECISION_FUNC ( hypre_FindProc ) +#define hypre_IJMatrixAddParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixAddParCSR ) +#define hypre_IJMatrixAddToValuesOMPParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixAddToValuesOMPParCSR ) +#define hypre_IJMatrixAddToValuesParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixAddToValuesParCSR ) +#define hypre_IJMatrixAssembleOffProcValsParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixAssembleOffProcValsParCSR ) +#define hypre_IJMatrixAssembleParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixAssembleParCSR ) +#define hypre_IJMatrixCreateParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixCreateParCSR ) +#define hypre_IJMatrixDestroyParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixDestroyParCSR ) +#define hypre_IJMatrixGetRowCountsParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixGetRowCountsParCSR ) +#define hypre_IJMatrixGetValuesParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixGetValuesParCSR ) +#define hypre_IJMatrixInitializeParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixInitializeParCSR ) +#define hypre_IJMatrixInitializeParCSR_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixInitializeParCSR_v2 ) +#define hypre_IJMatrixNormParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixNormParCSR ) +#define hypre_IJMatrixSetConstantValuesParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetConstantValuesParCSR ) +#define hypre_IJMatrixSetConstantValuesParCSRHost HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetConstantValuesParCSRHost ) +#define hypre_IJMatrixSetDiagOffdSizesParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetDiagOffdSizesParCSR ) +#define hypre_IJMatrixSetMaxOffProcElmtsParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetMaxOffProcElmtsParCSR ) +#define hypre_IJMatrixSetMaxOnProcElmtsParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetMaxOnProcElmtsParCSR ) +#define hypre_IJMatrixSetRowSizesParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetRowSizesParCSR ) +#define hypre_IJMatrixSetValuesOMPParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetValuesOMPParCSR ) +#define hypre_IJMatrixSetValuesParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixSetValuesParCSR ) +#define hypre_IJMatrixTransposeParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_IJMatrixTransposeParCSR ) +#define hypre_IJVectorDistribute HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorDistribute ) +#define hypre_IJVectorReadBinary HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorReadBinary ) +#define hypre_IJVectorZeroValues HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorZeroValues ) +#define hypre_IJVectorAddToValuesPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorAddToValuesPar ) +#define hypre_IJVectorAssembleOffProcValsPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorAssembleOffProcValsPar ) +#define hypre_IJVectorAssemblePar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorAssemblePar ) +#define hypre_IJVectorCreatePar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorCreatePar ) +#define hypre_IJVectorDestroyPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorDestroyPar ) +#define hypre_IJVectorDistributePar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorDistributePar ) +#define hypre_IJVectorGetValuesPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorGetValuesPar ) +#define hypre_IJVectorInitializePar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorInitializePar ) +#define hypre_IJVectorInitializePar_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorInitializePar_v2 ) +#define hypre_IJVectorSetComponentPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorSetComponentPar ) +#define hypre_IJVectorSetMaxOffProcElmtsPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorSetMaxOffProcElmtsPar ) +#define hypre_IJVectorSetValuesPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorSetValuesPar ) +#define hypre_IJVectorZeroValuesPar HYPRE_MULTIPRECISION_FUNC ( hypre_IJVectorZeroValuesPar ) + +#endif diff --git a/src/IJ_mv/Makefile b/src/IJ_mv/Makefile index d2f0e68094..9fe91391ce 100644 --- a/src/IJ_mv/Makefile +++ b/src/IJ_mv/Makefile @@ -31,26 +31,36 @@ EXTRA_FILES =\ IJMatrix_petsc.c FILES =\ + +CUFILES =\ + IJMatrix_parcsr_device.c\ + IJVector_parcsr_device.c + +####################### +# Multiprecision files +####################### +MuP_FILES = \ aux_parcsr_matrix.c\ aux_par_vector.c\ F90_HYPRE_IJMatrix.c\ F90_HYPRE_IJVector.c\ F90_IJMatrix.c\ - HYPRE_IJMatrix.c\ - HYPRE_IJVector.c\ IJ_assumed_part.c\ IJMatrix.c\ IJMatrix_parcsr.c\ IJVector.c\ - IJVector_parcsr.c + IJVector_parcsr.c\ + HYPRE_IJMatrix.c\ + HYPRE_IJVector.c -CUFILES =\ - IJMatrix_parcsr_device.c\ - IJVector_parcsr_device.c - -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_IJ_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -61,23 +71,68 @@ SONAME = libHYPRE_IJ_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_IJ_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/IJ_mv_mup_func.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/hypre_IJ_mv_mup.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_IJ_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_IJ_mv.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/IJ_mv_mup_func.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/hypre_IJ_mv_mup.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_IJ_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/IJ_mv/_hypre_IJ_mv.h b/src/IJ_mv/_hypre_IJ_mv.h index a90dd340f2..b80268e940 100644 --- a/src/IJ_mv/_hypre_IJ_mv.h +++ b/src/IJ_mv/_hypre_IJ_mv.h @@ -9,6 +9,10 @@ #include "HYPRE_IJ_mv.h" #include "HYPRE.h" +#ifdef HYPRE_MIXED_PRECISION +#include "IJ_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -375,6 +379,10 @@ hypre_IJVectorMemoryLocation(hypre_IJVector *vector) * SPDX-License-Identifier: (Apache-2.0 OR MIT) ******************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "IJ_mv_mup_func.h" +#endif + /* aux_parcsr_matrix.c */ HYPRE_Int hypre_AuxParCSRMatrixCreate ( hypre_AuxParCSRMatrix **aux_matrix, HYPRE_Int local_num_rows, HYPRE_Int local_num_cols, HYPRE_Int *sizes ); diff --git a/src/IJ_mv/headers b/src/IJ_mv/headers index 7e3457612a..1a72f14ab4 100755 --- a/src/IJ_mv/headers +++ b/src/IJ_mv/headers @@ -22,6 +22,10 @@ cat > $INTERNAL_HEADER <<@ #include "HYPRE_IJ_mv.h" #include "HYPRE.h" +#ifdef HYPRE_MIXED_PRECISION +#include "IJ_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/IJ_mv/hypre_IJ_mv_mup.h b/src/IJ_mv/hypre_IJ_mv_mup.h new file mode 100644 index 0000000000..1da959ea06 --- /dev/null +++ b/src/IJ_mv/hypre_IJ_mv_mup.h @@ -0,0 +1,444 @@ + +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file of multiprecision function prototypes. + * This is needed for mixed-precision algorithm development. + *****************************************************************************/ + +#ifndef HYPRE_IJ_MV_MUP_HEADER +#define HYPRE_IJ_MV_MUP_HEADER + +#include "_hypre_IJ_mv.h" + +#if defined (HYPRE_MIXED_PRECISION) + +HYPRE_Int hypre_AuxParCSRMatrixCreate_flt ( hypre_AuxParCSRMatrix **aux_matrix, + HYPRE_Int local_num_rows, HYPRE_Int local_num_cols, HYPRE_Int *sizes ); +HYPRE_Int hypre_AuxParCSRMatrixCreate_dbl ( hypre_AuxParCSRMatrix **aux_matrix, + HYPRE_Int local_num_rows, HYPRE_Int local_num_cols, HYPRE_Int *sizes ); +HYPRE_Int hypre_AuxParCSRMatrixCreate_long_dbl ( hypre_AuxParCSRMatrix **aux_matrix, + HYPRE_Int local_num_rows, HYPRE_Int local_num_cols, HYPRE_Int *sizes ); +HYPRE_Int hypre_AuxParCSRMatrixDestroy_flt ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixDestroy_dbl ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixDestroy_long_dbl ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixInitialize_flt ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixInitialize_dbl ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixInitialize_long_dbl ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixInitialize_v2_flt ( hypre_AuxParCSRMatrix *matrix, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_AuxParCSRMatrixInitialize_v2_dbl ( hypre_AuxParCSRMatrix *matrix, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_AuxParCSRMatrixInitialize_v2_long_dbl ( hypre_AuxParCSRMatrix *matrix, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_AuxParCSRMatrixSetRownnz_flt ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixSetRownnz_dbl ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParCSRMatrixSetRownnz_long_dbl ( hypre_AuxParCSRMatrix *matrix ); +HYPRE_Int hypre_AuxParVectorCreate_flt ( hypre_AuxParVector **aux_vector ); +HYPRE_Int hypre_AuxParVectorCreate_dbl ( hypre_AuxParVector **aux_vector ); +HYPRE_Int hypre_AuxParVectorCreate_long_dbl ( hypre_AuxParVector **aux_vector ); +HYPRE_Int hypre_AuxParVectorDestroy_flt ( hypre_AuxParVector *vector ); +HYPRE_Int hypre_AuxParVectorDestroy_dbl ( hypre_AuxParVector *vector ); +HYPRE_Int hypre_AuxParVectorDestroy_long_dbl ( hypre_AuxParVector *vector ); +HYPRE_Int hypre_AuxParVectorInitialize_v2_flt ( hypre_AuxParVector *vector, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_AuxParVectorInitialize_v2_dbl ( hypre_AuxParVector *vector, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_AuxParVectorInitialize_v2_long_dbl ( hypre_AuxParVector *vector, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int HYPRE_IJMatrixAdd_flt ( hypre_float alpha, HYPRE_IJMatrix matrix_A, hypre_float beta, + HYPRE_IJMatrix matrix_B, HYPRE_IJMatrix *matrix_C ); +HYPRE_Int HYPRE_IJMatrixAdd_dbl ( hypre_double alpha, HYPRE_IJMatrix matrix_A, hypre_double beta, + HYPRE_IJMatrix matrix_B, HYPRE_IJMatrix *matrix_C ); +HYPRE_Int HYPRE_IJMatrixAdd_long_dbl ( hypre_long_double alpha, HYPRE_IJMatrix matrix_A, hypre_long_double beta, + HYPRE_IJMatrix matrix_B, HYPRE_IJMatrix *matrix_C ); +HYPRE_Int HYPRE_IJMatrixAddToValues_flt ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_BigInt *cols, const hypre_float *values ); +HYPRE_Int HYPRE_IJMatrixAddToValues_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_BigInt *cols, const hypre_double *values ); +HYPRE_Int HYPRE_IJMatrixAddToValues_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_BigInt *cols, const hypre_long_double *values ); +HYPRE_Int HYPRE_IJMatrixAssemble_flt ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixAssemble_dbl ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixAssemble_long_dbl ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixCreate_flt ( MPI_Comm comm, HYPRE_BigInt ilower, HYPRE_BigInt iupper, + HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_IJMatrix *matrix ); +HYPRE_Int HYPRE_IJMatrixCreate_dbl ( MPI_Comm comm, HYPRE_BigInt ilower, HYPRE_BigInt iupper, + HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_IJMatrix *matrix ); +HYPRE_Int HYPRE_IJMatrixCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt ilower, HYPRE_BigInt iupper, + HYPRE_BigInt jlower, HYPRE_BigInt jupper, HYPRE_IJMatrix *matrix ); +HYPRE_Int HYPRE_IJMatrixDestroy_flt ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixDestroy_dbl ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixDestroy_long_dbl ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixGetLocalRange_flt ( HYPRE_IJMatrix matrix, HYPRE_BigInt *ilower, + HYPRE_BigInt *iupper, HYPRE_BigInt *jlower, HYPRE_BigInt *jupper ); +HYPRE_Int HYPRE_IJMatrixGetLocalRange_dbl ( HYPRE_IJMatrix matrix, HYPRE_BigInt *ilower, + HYPRE_BigInt *iupper, HYPRE_BigInt *jlower, HYPRE_BigInt *jupper ); +HYPRE_Int HYPRE_IJMatrixGetLocalRange_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_BigInt *ilower, + HYPRE_BigInt *iupper, HYPRE_BigInt *jlower, HYPRE_BigInt *jupper ); +HYPRE_Int HYPRE_IJMatrixGetObject_flt ( HYPRE_IJMatrix matrix, void **object ); +HYPRE_Int HYPRE_IJMatrixGetObject_dbl ( HYPRE_IJMatrix matrix, void **object ); +HYPRE_Int HYPRE_IJMatrixGetObject_long_dbl ( HYPRE_IJMatrix matrix, void **object ); +HYPRE_Int HYPRE_IJMatrixGetObjectType_flt ( HYPRE_IJMatrix matrix, HYPRE_Int *type ); +HYPRE_Int HYPRE_IJMatrixGetObjectType_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int *type ); +HYPRE_Int HYPRE_IJMatrixGetObjectType_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int *type ); +HYPRE_Int HYPRE_IJMatrixGetRowCounts_flt ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_BigInt *rows, + HYPRE_Int *ncols ); +HYPRE_Int HYPRE_IJMatrixGetRowCounts_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_BigInt *rows, + HYPRE_Int *ncols ); +HYPRE_Int HYPRE_IJMatrixGetRowCounts_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_BigInt *rows, + HYPRE_Int *ncols ); +HYPRE_Int HYPRE_IJMatrixGetValues_flt ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, hypre_float *values ); +HYPRE_Int HYPRE_IJMatrixGetValues_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, hypre_double *values ); +HYPRE_Int HYPRE_IJMatrixGetValues_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, hypre_long_double *values ); +HYPRE_Int HYPRE_IJMatrixInitialize_flt ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixInitialize_dbl ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixInitialize_long_dbl ( HYPRE_IJMatrix matrix ); +HYPRE_Int HYPRE_IJMatrixNorm_flt ( HYPRE_IJMatrix matrix, hypre_float *norm ); +HYPRE_Int HYPRE_IJMatrixNorm_dbl ( HYPRE_IJMatrix matrix, hypre_double *norm ); +HYPRE_Int HYPRE_IJMatrixNorm_long_dbl ( HYPRE_IJMatrix matrix, hypre_long_double *norm ); +HYPRE_Int HYPRE_IJMatrixPrint_flt ( HYPRE_IJMatrix matrix, const char *filename ); +HYPRE_Int HYPRE_IJMatrixPrint_dbl ( HYPRE_IJMatrix matrix, const char *filename ); +HYPRE_Int HYPRE_IJMatrixPrint_long_dbl ( HYPRE_IJMatrix matrix, const char *filename ); +HYPRE_Int HYPRE_IJMatrixRead_flt ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr ); +HYPRE_Int HYPRE_IJMatrixRead_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr ); +HYPRE_Int HYPRE_IJMatrixRead_long_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr ); +HYPRE_Int HYPRE_IJMatrixReadMM_flt ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr ); +HYPRE_Int HYPRE_IJMatrixReadMM_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr ); +HYPRE_Int HYPRE_IJMatrixReadMM_long_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr ); +HYPRE_Int HYPRE_IJMatrixSetConstantValues_flt ( HYPRE_IJMatrix matrix, hypre_float value ); +HYPRE_Int HYPRE_IJMatrixSetConstantValues_dbl ( HYPRE_IJMatrix matrix, hypre_double value ); +HYPRE_Int HYPRE_IJMatrixSetConstantValues_long_dbl ( HYPRE_IJMatrix matrix, hypre_long_double value ); +HYPRE_Int HYPRE_IJMatrixSetDiagOffdSizes_flt ( HYPRE_IJMatrix matrix, const HYPRE_Int *diag_sizes, + const HYPRE_Int *offdiag_sizes ); +HYPRE_Int HYPRE_IJMatrixSetDiagOffdSizes_dbl ( HYPRE_IJMatrix matrix, const HYPRE_Int *diag_sizes, + const HYPRE_Int *offdiag_sizes ); +HYPRE_Int HYPRE_IJMatrixSetDiagOffdSizes_long_dbl ( HYPRE_IJMatrix matrix, const HYPRE_Int *diag_sizes, + const HYPRE_Int *offdiag_sizes ); +HYPRE_Int HYPRE_IJMatrixSetMaxOffProcElmts_flt ( HYPRE_IJMatrix matrix, HYPRE_Int max_off_proc_elmts ); +HYPRE_Int HYPRE_IJMatrixSetMaxOffProcElmts_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int max_off_proc_elmts ); +HYPRE_Int HYPRE_IJMatrixSetMaxOffProcElmts_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int max_off_proc_elmts ); +HYPRE_Int HYPRE_IJMatrixSetObjectType_flt ( HYPRE_IJMatrix matrix, HYPRE_Int type ); +HYPRE_Int HYPRE_IJMatrixSetObjectType_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int type ); +HYPRE_Int HYPRE_IJMatrixSetObjectType_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int type ); +HYPRE_Int HYPRE_IJMatrixSetOMPFlag_flt ( HYPRE_IJMatrix matrix, HYPRE_Int omp_flag ); +HYPRE_Int HYPRE_IJMatrixSetOMPFlag_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int omp_flag ); +HYPRE_Int HYPRE_IJMatrixSetOMPFlag_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int omp_flag ); +HYPRE_Int HYPRE_IJMatrixSetPrintLevel_flt ( HYPRE_IJMatrix matrix, HYPRE_Int print_level ); +HYPRE_Int HYPRE_IJMatrixSetPrintLevel_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int print_level ); +HYPRE_Int HYPRE_IJMatrixSetPrintLevel_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int print_level ); +HYPRE_Int HYPRE_IJMatrixSetRowSizes_flt ( HYPRE_IJMatrix matrix, const HYPRE_Int *sizes ); +HYPRE_Int HYPRE_IJMatrixSetRowSizes_dbl ( HYPRE_IJMatrix matrix, const HYPRE_Int *sizes ); +HYPRE_Int HYPRE_IJMatrixSetRowSizes_long_dbl ( HYPRE_IJMatrix matrix, const HYPRE_Int *sizes ); +HYPRE_Int HYPRE_IJMatrixSetValues_flt ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_BigInt *cols, const hypre_float *values ); +HYPRE_Int HYPRE_IJMatrixSetValues_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_BigInt *cols, const hypre_double *values ); +HYPRE_Int HYPRE_IJMatrixSetValues_long_dbl ( HYPRE_IJMatrix matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_BigInt *cols, const hypre_long_double *values ); +HYPRE_Int HYPRE_IJMatrixTranspose_flt ( HYPRE_IJMatrix matrix_A, HYPRE_IJMatrix *matrix_AT ); +HYPRE_Int HYPRE_IJMatrixTranspose_dbl ( HYPRE_IJMatrix matrix_A, HYPRE_IJMatrix *matrix_AT ); +HYPRE_Int HYPRE_IJMatrixTranspose_long_dbl ( HYPRE_IJMatrix matrix_A, HYPRE_IJMatrix *matrix_AT ); +HYPRE_Int HYPRE_IJVectorAddToValues_flt ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, const hypre_float *values ); +HYPRE_Int HYPRE_IJVectorAddToValues_dbl ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, const hypre_double *values ); +HYPRE_Int HYPRE_IJVectorAddToValues_long_dbl ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, const hypre_long_double *values ); +HYPRE_Int HYPRE_IJVectorAssemble_flt ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorAssemble_dbl ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorAssemble_long_dbl ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorCreate_flt ( MPI_Comm comm, HYPRE_BigInt jlower, HYPRE_BigInt jupper, + HYPRE_IJVector *vector ); +HYPRE_Int HYPRE_IJVectorCreate_dbl ( MPI_Comm comm, HYPRE_BigInt jlower, HYPRE_BigInt jupper, + HYPRE_IJVector *vector ); +HYPRE_Int HYPRE_IJVectorCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt jlower, HYPRE_BigInt jupper, + HYPRE_IJVector *vector ); +HYPRE_Int HYPRE_IJVectorDestroy_flt ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorDestroy_dbl ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorDestroy_long_dbl ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorGetLocalRange_flt ( HYPRE_IJVector vector, HYPRE_BigInt *jlower, + HYPRE_BigInt *jupper ); +HYPRE_Int HYPRE_IJVectorGetLocalRange_dbl ( HYPRE_IJVector vector, HYPRE_BigInt *jlower, + HYPRE_BigInt *jupper ); +HYPRE_Int HYPRE_IJVectorGetLocalRange_long_dbl ( HYPRE_IJVector vector, HYPRE_BigInt *jlower, + HYPRE_BigInt *jupper ); +HYPRE_Int HYPRE_IJVectorGetObject_flt ( HYPRE_IJVector vector, void **object ); +HYPRE_Int HYPRE_IJVectorGetObject_dbl ( HYPRE_IJVector vector, void **object ); +HYPRE_Int HYPRE_IJVectorGetObject_long_dbl ( HYPRE_IJVector vector, void **object ); +HYPRE_Int HYPRE_IJVectorGetObjectType_flt ( HYPRE_IJVector vector, HYPRE_Int *type ); +HYPRE_Int HYPRE_IJVectorGetObjectType_dbl ( HYPRE_IJVector vector, HYPRE_Int *type ); +HYPRE_Int HYPRE_IJVectorGetObjectType_long_dbl ( HYPRE_IJVector vector, HYPRE_Int *type ); +HYPRE_Int HYPRE_IJVectorGetValues_flt ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, hypre_float *values ); +HYPRE_Int HYPRE_IJVectorGetValues_dbl ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, hypre_double *values ); +HYPRE_Int HYPRE_IJVectorGetValues_long_dbl ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, hypre_long_double *values ); +HYPRE_Int HYPRE_IJVectorInitialize_flt ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorInitialize_dbl ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorInitialize_long_dbl ( HYPRE_IJVector vector ); +HYPRE_Int HYPRE_IJVectorInnerProd_flt ( HYPRE_IJVector x, HYPRE_IJVector y, hypre_float *prod ); +HYPRE_Int HYPRE_IJVectorInnerProd_dbl ( HYPRE_IJVector x, HYPRE_IJVector y, hypre_double *prod ); +HYPRE_Int HYPRE_IJVectorInnerProd_long_dbl ( HYPRE_IJVector x, HYPRE_IJVector y, hypre_long_double *prod ); +HYPRE_Int HYPRE_IJVectorPrint_flt ( HYPRE_IJVector vector, const char *filename ); +HYPRE_Int HYPRE_IJVectorPrint_dbl ( HYPRE_IJVector vector, const char *filename ); +HYPRE_Int HYPRE_IJVectorPrint_long_dbl ( HYPRE_IJVector vector, const char *filename ); +HYPRE_Int HYPRE_IJVectorRead_flt ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJVector *vector_ptr ); +HYPRE_Int HYPRE_IJVectorRead_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJVector *vector_ptr ); +HYPRE_Int HYPRE_IJVectorRead_long_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJVector *vector_ptr ); +HYPRE_Int HYPRE_IJVectorSetComponent_flt ( HYPRE_IJVector vector, HYPRE_Int component ); +HYPRE_Int HYPRE_IJVectorSetComponent_dbl ( HYPRE_IJVector vector, HYPRE_Int component ); +HYPRE_Int HYPRE_IJVectorSetComponent_long_dbl ( HYPRE_IJVector vector, HYPRE_Int component ); +HYPRE_Int HYPRE_IJVectorSetMaxOffProcElmts_flt ( HYPRE_IJVector vector, HYPRE_Int max_off_proc_elmts ); +HYPRE_Int HYPRE_IJVectorSetMaxOffProcElmts_dbl ( HYPRE_IJVector vector, HYPRE_Int max_off_proc_elmts ); +HYPRE_Int HYPRE_IJVectorSetMaxOffProcElmts_long_dbl ( HYPRE_IJVector vector, HYPRE_Int max_off_proc_elmts ); +HYPRE_Int HYPRE_IJVectorSetNumComponents_flt ( HYPRE_IJVector vector, HYPRE_Int num_components ); +HYPRE_Int HYPRE_IJVectorSetNumComponents_dbl ( HYPRE_IJVector vector, HYPRE_Int num_components ); +HYPRE_Int HYPRE_IJVectorSetNumComponents_long_dbl ( HYPRE_IJVector vector, HYPRE_Int num_components ); +HYPRE_Int HYPRE_IJVectorSetObjectType_flt ( HYPRE_IJVector vector, HYPRE_Int type ); +HYPRE_Int HYPRE_IJVectorSetObjectType_dbl ( HYPRE_IJVector vector, HYPRE_Int type ); +HYPRE_Int HYPRE_IJVectorSetObjectType_long_dbl ( HYPRE_IJVector vector, HYPRE_Int type ); +HYPRE_Int HYPRE_IJVectorSetPrintLevel_flt ( HYPRE_IJVector vector, HYPRE_Int print_level ); +HYPRE_Int HYPRE_IJVectorSetPrintLevel_dbl ( HYPRE_IJVector vector, HYPRE_Int print_level ); +HYPRE_Int HYPRE_IJVectorSetPrintLevel_long_dbl ( HYPRE_IJVector vector, HYPRE_Int print_level ); +HYPRE_Int HYPRE_IJVectorSetValues_flt ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, const hypre_float *values ); +HYPRE_Int HYPRE_IJVectorSetValues_dbl ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, const hypre_double *values ); +HYPRE_Int HYPRE_IJVectorSetValues_long_dbl ( HYPRE_IJVector vector, HYPRE_Int nvalues, + const HYPRE_BigInt *indices, const hypre_long_double *values ); +HYPRE_Int hypre_IJMatrixCreateAssumedPartition_flt ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixCreateAssumedPartition_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixCreateAssumedPartition_long_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJVectorCreateAssumedPartition_flt ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorCreateAssumedPartition_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorCreateAssumedPartition_long_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJMatrixGetColPartitioning_flt ( HYPRE_IJMatrix matrix, + HYPRE_BigInt **col_partitioning ); +HYPRE_Int hypre_IJMatrixGetColPartitioning_dbl ( HYPRE_IJMatrix matrix, + HYPRE_BigInt **col_partitioning ); +HYPRE_Int hypre_IJMatrixGetColPartitioning_long_dbl ( HYPRE_IJMatrix matrix, + HYPRE_BigInt **col_partitioning ); +HYPRE_Int hypre_IJMatrixGetRowPartitioning_flt ( HYPRE_IJMatrix matrix, + HYPRE_BigInt **row_partitioning ); +HYPRE_Int hypre_IJMatrixGetRowPartitioning_dbl ( HYPRE_IJMatrix matrix, + HYPRE_BigInt **row_partitioning ); +HYPRE_Int hypre_IJMatrixGetRowPartitioning_long_dbl ( HYPRE_IJMatrix matrix, + HYPRE_BigInt **row_partitioning ); +HYPRE_Int hypre_IJMatrixRead_flt ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr, HYPRE_Int is_mm ); +HYPRE_Int hypre_IJMatrixRead_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr, HYPRE_Int is_mm ); +HYPRE_Int hypre_IJMatrixRead_long_dbl ( const char *filename, MPI_Comm comm, HYPRE_Int type, + HYPRE_IJMatrix *matrix_ptr, HYPRE_Int is_mm ); +HYPRE_Int hypre_IJMatrixSetObject_flt ( HYPRE_IJMatrix matrix, void *object ); +HYPRE_Int hypre_IJMatrixSetObject_dbl ( HYPRE_IJMatrix matrix, void *object ); +HYPRE_Int hypre_IJMatrixSetObject_long_dbl ( HYPRE_IJMatrix matrix, void *object ); +HYPRE_Int hypre_FillResponseIJOffProcVals_flt ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseIJOffProcVals_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseIJOffProcVals_long_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FindProc_flt ( HYPRE_BigInt *list, HYPRE_BigInt value, HYPRE_Int list_length ); +HYPRE_Int hypre_FindProc_dbl ( HYPRE_BigInt *list, HYPRE_BigInt value, HYPRE_Int list_length ); +HYPRE_Int hypre_FindProc_long_dbl ( HYPRE_BigInt *list, HYPRE_BigInt value, HYPRE_Int list_length ); +HYPRE_Int hypre_IJMatrixAddParCSR_flt ( hypre_float alpha, hypre_IJMatrix *matrix_A, + hypre_float beta, hypre_IJMatrix *matrix_B, hypre_IJMatrix *matrix_C ); +HYPRE_Int hypre_IJMatrixAddParCSR_dbl ( hypre_double alpha, hypre_IJMatrix *matrix_A, + hypre_double beta, hypre_IJMatrix *matrix_B, hypre_IJMatrix *matrix_C ); +HYPRE_Int hypre_IJMatrixAddParCSR_long_dbl ( hypre_long_double alpha, hypre_IJMatrix *matrix_A, + hypre_long_double beta, hypre_IJMatrix *matrix_B, hypre_IJMatrix *matrix_C ); +HYPRE_Int hypre_IJMatrixAddToValuesOMPParCSR_flt ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_float *values ); +HYPRE_Int hypre_IJMatrixAddToValuesOMPParCSR_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_double *values ); +HYPRE_Int hypre_IJMatrixAddToValuesOMPParCSR_long_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_long_double *values ); +HYPRE_Int hypre_IJMatrixAddToValuesParCSR_flt ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_float *values ); +HYPRE_Int hypre_IJMatrixAddToValuesParCSR_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_double *values ); +HYPRE_Int hypre_IJMatrixAddToValuesParCSR_long_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_long_double *values ); +HYPRE_Int hypre_IJMatrixAssembleOffProcValsParCSR_flt ( hypre_IJMatrix *matrix, + HYPRE_Int off_proc_i_indx, HYPRE_Int max_off_proc_elmts, HYPRE_Int current_num_elmts, + HYPRE_MemoryLocation memory_location, HYPRE_BigInt *off_proc_i, HYPRE_BigInt *off_proc_j, + hypre_float *off_proc_data ); +HYPRE_Int hypre_IJMatrixAssembleOffProcValsParCSR_dbl ( hypre_IJMatrix *matrix, + HYPRE_Int off_proc_i_indx, HYPRE_Int max_off_proc_elmts, HYPRE_Int current_num_elmts, + HYPRE_MemoryLocation memory_location, HYPRE_BigInt *off_proc_i, HYPRE_BigInt *off_proc_j, + hypre_double *off_proc_data ); +HYPRE_Int hypre_IJMatrixAssembleOffProcValsParCSR_long_dbl ( hypre_IJMatrix *matrix, + HYPRE_Int off_proc_i_indx, HYPRE_Int max_off_proc_elmts, HYPRE_Int current_num_elmts, + HYPRE_MemoryLocation memory_location, HYPRE_BigInt *off_proc_i, HYPRE_BigInt *off_proc_j, + hypre_long_double *off_proc_data ); +HYPRE_Int hypre_IJMatrixAssembleParCSR_flt ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixAssembleParCSR_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixAssembleParCSR_long_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixCreateParCSR_flt ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixCreateParCSR_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixCreateParCSR_long_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixDestroyParCSR_flt ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixDestroyParCSR_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixDestroyParCSR_long_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixGetRowCountsParCSR_flt ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_BigInt *rows, HYPRE_Int *ncols ); +HYPRE_Int hypre_IJMatrixGetRowCountsParCSR_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_BigInt *rows, HYPRE_Int *ncols ); +HYPRE_Int hypre_IJMatrixGetRowCountsParCSR_long_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_BigInt *rows, HYPRE_Int *ncols ); +HYPRE_Int hypre_IJMatrixGetValuesParCSR_flt ( hypre_IJMatrix *matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, hypre_float *values ); +HYPRE_Int hypre_IJMatrixGetValuesParCSR_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, hypre_double *values ); +HYPRE_Int hypre_IJMatrixGetValuesParCSR_long_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + HYPRE_BigInt *rows, HYPRE_BigInt *cols, hypre_long_double *values ); +HYPRE_Int hypre_IJMatrixInitializeParCSR_flt ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixInitializeParCSR_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixInitializeParCSR_long_dbl ( hypre_IJMatrix *matrix ); +HYPRE_Int hypre_IJMatrixInitializeParCSR_v2_flt (hypre_IJMatrix *matrix, + HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_IJMatrixInitializeParCSR_v2_dbl (hypre_IJMatrix *matrix, + HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_IJMatrixInitializeParCSR_v2_long_dbl (hypre_IJMatrix *matrix, + HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_IJMatrixNormParCSR_flt ( hypre_IJMatrix *matrix, hypre_float *norm ); +HYPRE_Int hypre_IJMatrixNormParCSR_dbl ( hypre_IJMatrix *matrix, hypre_double *norm ); +HYPRE_Int hypre_IJMatrixNormParCSR_long_dbl ( hypre_IJMatrix *matrix, hypre_long_double *norm ); +HYPRE_Int hypre_IJMatrixSetConstantValuesParCSR_flt ( hypre_IJMatrix *matrix, hypre_float value ); +HYPRE_Int hypre_IJMatrixSetConstantValuesParCSR_dbl ( hypre_IJMatrix *matrix, hypre_double value ); +HYPRE_Int hypre_IJMatrixSetConstantValuesParCSR_long_dbl ( hypre_IJMatrix *matrix, hypre_long_double value ); +HYPRE_Int hypre_IJMatrixSetDiagOffdSizesParCSR_flt ( hypre_IJMatrix *matrix, + const HYPRE_Int *diag_sizes, const HYPRE_Int *offdiag_sizes ); +HYPRE_Int hypre_IJMatrixSetDiagOffdSizesParCSR_dbl ( hypre_IJMatrix *matrix, + const HYPRE_Int *diag_sizes, const HYPRE_Int *offdiag_sizes ); +HYPRE_Int hypre_IJMatrixSetDiagOffdSizesParCSR_long_dbl ( hypre_IJMatrix *matrix, + const HYPRE_Int *diag_sizes, const HYPRE_Int *offdiag_sizes ); +HYPRE_Int hypre_IJMatrixSetMaxOffProcElmtsParCSR_flt ( hypre_IJMatrix *matrix, + HYPRE_Int max_off_proc_elmts ); +HYPRE_Int hypre_IJMatrixSetMaxOffProcElmtsParCSR_dbl ( hypre_IJMatrix *matrix, + HYPRE_Int max_off_proc_elmts ); +HYPRE_Int hypre_IJMatrixSetMaxOffProcElmtsParCSR_long_dbl ( hypre_IJMatrix *matrix, + HYPRE_Int max_off_proc_elmts ); +HYPRE_Int hypre_IJMatrixSetRowSizesParCSR_flt ( hypre_IJMatrix *matrix, const HYPRE_Int *sizes ); +HYPRE_Int hypre_IJMatrixSetRowSizesParCSR_dbl ( hypre_IJMatrix *matrix, const HYPRE_Int *sizes ); +HYPRE_Int hypre_IJMatrixSetRowSizesParCSR_long_dbl ( hypre_IJMatrix *matrix, const HYPRE_Int *sizes ); +HYPRE_Int hypre_IJMatrixSetValuesOMPParCSR_flt ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_float *values ); +HYPRE_Int hypre_IJMatrixSetValuesOMPParCSR_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_double *values ); +HYPRE_Int hypre_IJMatrixSetValuesOMPParCSR_long_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, + HYPRE_Int *ncols, const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_long_double *values ); +HYPRE_Int hypre_IJMatrixSetValuesParCSR_flt ( hypre_IJMatrix *matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_float *values ); +HYPRE_Int hypre_IJMatrixSetValuesParCSR_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_double *values ); +HYPRE_Int hypre_IJMatrixSetValuesParCSR_long_dbl ( hypre_IJMatrix *matrix, HYPRE_Int nrows, HYPRE_Int *ncols, + const HYPRE_BigInt *rows, const HYPRE_Int *row_indexes, const HYPRE_BigInt *cols, + const hypre_long_double *values ); +HYPRE_Int hypre_IJMatrixTransposeParCSR_flt ( hypre_IJMatrix *matrix_A, hypre_IJMatrix *matrix_AT ); +HYPRE_Int hypre_IJMatrixTransposeParCSR_dbl ( hypre_IJMatrix *matrix_A, hypre_IJMatrix *matrix_AT ); +HYPRE_Int hypre_IJMatrixTransposeParCSR_long_dbl ( hypre_IJMatrix *matrix_A, hypre_IJMatrix *matrix_AT ); +HYPRE_Int hypre_IJVectorDistribute_flt ( HYPRE_IJVector vector, const HYPRE_Int *vec_starts ); +HYPRE_Int hypre_IJVectorDistribute_dbl ( HYPRE_IJVector vector, const HYPRE_Int *vec_starts ); +HYPRE_Int hypre_IJVectorDistribute_long_dbl ( HYPRE_IJVector vector, const HYPRE_Int *vec_starts ); +HYPRE_Int hypre_IJVectorZeroValues_flt ( HYPRE_IJVector vector ); +HYPRE_Int hypre_IJVectorZeroValues_dbl ( HYPRE_IJVector vector ); +HYPRE_Int hypre_IJVectorZeroValues_long_dbl ( HYPRE_IJVector vector ); +HYPRE_Int hypre_IJVectorAddToValuesPar_flt ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, const hypre_float *values ); +HYPRE_Int hypre_IJVectorAddToValuesPar_dbl ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, const hypre_double *values ); +HYPRE_Int hypre_IJVectorAddToValuesPar_long_dbl ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, const hypre_long_double *values ); +HYPRE_Int hypre_IJVectorAssembleOffProcValsPar_flt ( hypre_IJVector *vector, + HYPRE_Int max_off_proc_elmts, HYPRE_Int current_num_elmts, HYPRE_MemoryLocation memory_location, + HYPRE_BigInt *off_proc_i, hypre_float *off_proc_data ); +HYPRE_Int hypre_IJVectorAssembleOffProcValsPar_dbl ( hypre_IJVector *vector, + HYPRE_Int max_off_proc_elmts, HYPRE_Int current_num_elmts, HYPRE_MemoryLocation memory_location, + HYPRE_BigInt *off_proc_i, hypre_double *off_proc_data ); +HYPRE_Int hypre_IJVectorAssembleOffProcValsPar_long_dbl ( hypre_IJVector *vector, + HYPRE_Int max_off_proc_elmts, HYPRE_Int current_num_elmts, HYPRE_MemoryLocation memory_location, + HYPRE_BigInt *off_proc_i, hypre_long_double *off_proc_data ); +HYPRE_Int hypre_IJVectorAssemblePar_flt ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorAssemblePar_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorAssemblePar_long_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorCreatePar_flt ( hypre_IJVector *vector, HYPRE_BigInt *IJpartitioning ); +HYPRE_Int hypre_IJVectorCreatePar_dbl ( hypre_IJVector *vector, HYPRE_BigInt *IJpartitioning ); +HYPRE_Int hypre_IJVectorCreatePar_long_dbl ( hypre_IJVector *vector, HYPRE_BigInt *IJpartitioning ); +HYPRE_Int hypre_IJVectorDestroyPar_flt ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorDestroyPar_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorDestroyPar_long_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorDistributePar_flt ( hypre_IJVector *vector, const HYPRE_Int *vec_starts ); +HYPRE_Int hypre_IJVectorDistributePar_dbl ( hypre_IJVector *vector, const HYPRE_Int *vec_starts ); +HYPRE_Int hypre_IJVectorDistributePar_long_dbl ( hypre_IJVector *vector, const HYPRE_Int *vec_starts ); +HYPRE_Int hypre_IJVectorGetValuesPar_flt ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, hypre_float *values ); +HYPRE_Int hypre_IJVectorGetValuesPar_dbl ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, hypre_double *values ); +HYPRE_Int hypre_IJVectorGetValuesPar_long_dbl ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, hypre_long_double *values ); +HYPRE_Int hypre_IJVectorInitializePar_flt ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorInitializePar_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorInitializePar_long_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorInitializePar_v2_flt (hypre_IJVector *vector, + HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_IJVectorInitializePar_v2_dbl (hypre_IJVector *vector, + HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_IJVectorInitializePar_v2_long_dbl (hypre_IJVector *vector, + HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_IJVectorSetComponentPar_flt ( hypre_IJVector *vector, HYPRE_Int component); +HYPRE_Int hypre_IJVectorSetComponentPar_dbl ( hypre_IJVector *vector, HYPRE_Int component); +HYPRE_Int hypre_IJVectorSetComponentPar_long_dbl ( hypre_IJVector *vector, HYPRE_Int component); +HYPRE_Int hypre_IJVectorSetMaxOffProcElmtsPar_flt ( hypre_IJVector *vector, + HYPRE_Int max_off_proc_elmts ); +HYPRE_Int hypre_IJVectorSetMaxOffProcElmtsPar_dbl ( hypre_IJVector *vector, + HYPRE_Int max_off_proc_elmts ); +HYPRE_Int hypre_IJVectorSetMaxOffProcElmtsPar_long_dbl ( hypre_IJVector *vector, + HYPRE_Int max_off_proc_elmts ); +HYPRE_Int hypre_IJVectorSetValuesPar_flt ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, const hypre_float *values ); +HYPRE_Int hypre_IJVectorSetValuesPar_dbl ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, const hypre_double *values ); +HYPRE_Int hypre_IJVectorSetValuesPar_long_dbl ( hypre_IJVector *vector, HYPRE_Int num_values, + const HYPRE_BigInt *indices, const hypre_long_double *values ); +HYPRE_Int hypre_IJVectorZeroValuesPar_flt ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorZeroValuesPar_dbl ( hypre_IJVector *vector ); +HYPRE_Int hypre_IJVectorZeroValuesPar_long_dbl ( hypre_IJVector *vector ); + +#endif + +#endif diff --git a/src/IJ_mv/protos.h b/src/IJ_mv/protos.h index d1baa59d8f..6f30d9d7ff 100644 --- a/src/IJ_mv/protos.h +++ b/src/IJ_mv/protos.h @@ -5,6 +5,10 @@ * SPDX-License-Identifier: (Apache-2.0 OR MIT) ******************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "IJ_mv_mup_func.h" +#endif + /* aux_parcsr_matrix.c */ HYPRE_Int hypre_AuxParCSRMatrixCreate ( hypre_AuxParCSRMatrix **aux_matrix, HYPRE_Int local_num_rows, HYPRE_Int local_num_cols, HYPRE_Int *sizes ); diff --git a/src/blas/Makefile b/src/blas/Makefile index 76f8ac29ad..f2a0fc11df 100644 --- a/src/blas/Makefile +++ b/src/blas/Makefile @@ -45,18 +45,67 @@ OBJS = ${BLAS_FILES:.c=.o} # Targets ################################################################## -all: ${OBJS} +#all: ${OBJS} + +all: blas_OBJS install: all cp -fR $(srcdir)/_hypre_blas.h $(HYPRE_INC_INSTALL) -clean: +clean: clean_mup rm -rf *.o distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +#MKDIR_P = mkdir -p +#mkmpdir: +# ${MKDIR_P} ${MuP_OBJDIR} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${OBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c ${BLAS_HEADERS} +# @echo "MuP_OBJDIR is ${ADD_OBJS_single} ... $%" + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${OBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c ${BLAS_HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${OBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c ${BLAS_HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +# multiprecision object files +blas_OBJS: ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} +# +else ${OBJS}: ${BLAS_HEADERS} +blas_OBJS: ${OBJS} +endif + diff --git a/src/blas/_hypre_blas.h b/src/blas/_hypre_blas.h index 04aa431a79..7bfd1688ae 100644 --- a/src/blas/_hypre_blas.h +++ b/src/blas/_hypre_blas.h @@ -19,6 +19,10 @@ #include +#ifdef HYPRE_MIXED_PRECISION +#include "blas_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/blas/blas_func_header b/src/blas/blas_func_header new file mode 100755 index 0000000000..683628d6b8 --- /dev/null +++ b/src/blas/blas_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=blas_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'blas_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef BLAS_MUP_FUNC_HEADER +#define BLAS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=blas_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/blas/blas_functions.saved b/src/blas/blas_functions.saved new file mode 100644 index 0000000000..5fdfb11c01 --- /dev/null +++ b/src/blas/blas_functions.saved @@ -0,0 +1,30 @@ +hypre_dasum +hypre_daxpy +hypre_dcopy +hypre_ddot +hypre_dgemm +hypre_dgemv +hypre_dger +hypre_dnrm2 +hypre_drot +hypre_dscal +hypre_dswap +hypre_dsymm +hypre_dsymv +hypre_dsyr2k +hypre_dsyr2 +hypre_dsyrk +hypre_dtrmm +hypre_dtrmv +hypre_dtrsm +hypre_dtrsv +hypre_d_lg10 +hypre_d_sign +hypre_pow_dd +hypre_pow_di +hypre_s_cat +hypre_s_cmp +hypre_s_copy +hypre_idamax +hypre_blas_lsame +hypre_blas_xerbla diff --git a/src/blas/blas_mup_func.h b/src/blas/blas_mup_func.h new file mode 100644 index 0000000000..0f8b357482 --- /dev/null +++ b/src/blas/blas_mup_func.h @@ -0,0 +1,50 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'blas_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef BLAS_MUP_FUNC_HEADER +#define BLAS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_dasum HYPRE_MULTIPRECISION_FUNC ( hypre_dasum ) +#define hypre_daxpy HYPRE_MULTIPRECISION_FUNC ( hypre_daxpy ) +#define hypre_dcopy HYPRE_MULTIPRECISION_FUNC ( hypre_dcopy ) +#define hypre_ddot HYPRE_MULTIPRECISION_FUNC ( hypre_ddot ) +#define hypre_dgemm HYPRE_MULTIPRECISION_FUNC ( hypre_dgemm ) +#define hypre_dgemv HYPRE_MULTIPRECISION_FUNC ( hypre_dgemv ) +#define hypre_dger HYPRE_MULTIPRECISION_FUNC ( hypre_dger ) +#define hypre_dnrm2 HYPRE_MULTIPRECISION_FUNC ( hypre_dnrm2 ) +#define hypre_drot HYPRE_MULTIPRECISION_FUNC ( hypre_drot ) +#define hypre_dscal HYPRE_MULTIPRECISION_FUNC ( hypre_dscal ) +#define hypre_dswap HYPRE_MULTIPRECISION_FUNC ( hypre_dswap ) +#define hypre_dsymm HYPRE_MULTIPRECISION_FUNC ( hypre_dsymm ) +#define hypre_dsymv HYPRE_MULTIPRECISION_FUNC ( hypre_dsymv ) +#define hypre_dsyr2 HYPRE_MULTIPRECISION_FUNC ( hypre_dsyr2 ) +#define hypre_dsyr2k HYPRE_MULTIPRECISION_FUNC ( hypre_dsyr2k ) +#define hypre_dsyrk HYPRE_MULTIPRECISION_FUNC ( hypre_dsyrk ) +#define hypre_dtrmm HYPRE_MULTIPRECISION_FUNC ( hypre_dtrmm ) +#define hypre_dtrmv HYPRE_MULTIPRECISION_FUNC ( hypre_dtrmv ) +#define hypre_dtrsm HYPRE_MULTIPRECISION_FUNC ( hypre_dtrsm ) +#define hypre_dtrsv HYPRE_MULTIPRECISION_FUNC ( hypre_dtrsv ) +#define hypre_d_lg10 HYPRE_MULTIPRECISION_FUNC ( hypre_d_lg10 ) +#define hypre_d_sign HYPRE_MULTIPRECISION_FUNC ( hypre_d_sign ) +#define hypre_pow_dd HYPRE_MULTIPRECISION_FUNC ( hypre_pow_dd ) +#define hypre_pow_di HYPRE_MULTIPRECISION_FUNC ( hypre_pow_di ) +#define hypre_s_cat HYPRE_MULTIPRECISION_FUNC ( hypre_s_cat ) +#define hypre_s_cmp HYPRE_MULTIPRECISION_FUNC ( hypre_s_cmp ) +#define hypre_s_copy HYPRE_MULTIPRECISION_FUNC ( hypre_s_copy ) +#define hypre_idamax HYPRE_MULTIPRECISION_FUNC ( hypre_idamax ) +#define hypre_blas_lsame HYPRE_MULTIPRECISION_FUNC ( hypre_blas_lsame ) +#define hypre_blas_xerbla HYPRE_MULTIPRECISION_FUNC ( hypre_blas_xerbla ) + +#endif diff --git a/src/blas/hypre_blas.h b/src/blas/hypre_blas.h index 61604c9d19..a230677d36 100644 --- a/src/blas/hypre_blas.h +++ b/src/blas/hypre_blas.h @@ -11,6 +11,11 @@ * This header renames the functions in BLAS to avoid conflicts *--------------------------------------------------------------------------*/ +#ifdef HYPRE_MIXED_PRECISION +#include "blas_mup_func.h" +#endif + + /* blas */ #define dasum_ hypre_dasum #define daxpy_ hypre_daxpy diff --git a/src/config/HYPRE_config.h.in b/src/config/HYPRE_config.h.in index 5596be29ff..524d48c0e7 100644 --- a/src/config/HYPRE_config.h.in +++ b/src/config/HYPRE_config.h.in @@ -121,6 +121,9 @@ /* Define to 1 if using long long int for HYPRE_BigInt */ #undef HYPRE_MIXEDINT +/* Define to 1 if using mixed-precision for HYPRE_Real type */ +#undef HYPRE_MIXED_PRECISION + /* Print HYPRE errors */ #undef HYPRE_PRINT_ERRORS diff --git a/src/config/Makefile.config.in b/src/config/Makefile.config.in index 1bb6b7e919..51950860aa 100644 --- a/src/config/Makefile.config.in +++ b/src/config/Makefile.config.in @@ -78,6 +78,8 @@ SHARED_BUILD_FLAG = @SHARED_BUILD_FLAG@ SHARED_SET_SONAME = @SHARED_SET_SONAME@ SHARED_OPTIONS = @SHARED_OPTIONS@ +MP_BUILD = @MP_BUILD@ + BUILD_PYTHON = @BUILD_PYTHON@ PYTHON = @PYTHON@ diff --git a/src/config/check_mup.sh b/src/config/check_mup.sh new file mode 100755 index 0000000000..b40b1c62e9 --- /dev/null +++ b/src/config/check_mup.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# 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) + +## Call from directory where multiprecision functions are. +# Check that current multiprecision functions are up to date. +# It will also be useful for regression testing for the multiprecision build. +# +# NOTE: It must be run on symbols generated from the +# non-multiprecision build of hypre. + +# Assumes hypre has been built (non-multiprecision) to generate object files +### +# * make distclean +# * ./configure –enable-debug +# * make -s +### + +# extract directory rootname +rootdir=$PWD +rootdir="${rootdir%/}" +rootname="${rootdir##*/}" + +# this directory +BASEDIR=$(dirname $0) + +# 1. Generate current list of function names +$BASEDIR/generate_function_list.sh +# 2. Compare against saved multiprecision object names +#diff -wc ${rootname}_functions.saved ${rootname}_functions.new > ${rootname}_functions.err +## diff on sorted lists +bash -c 'diff -wc <(sort '${rootname}'_functions.saved) <(sort '${rootname}'_functions.new) > '${rootname}'_functions.err' + +## overwrite saved file with new file +#cp ${rootname}'_functions.new' ${rootname}'_functions.saved' diff --git a/src/config/check_mup_build.sh b/src/config/check_mup_build.sh new file mode 100755 index 0000000000..bbf793c618 --- /dev/null +++ b/src/config/check_mup_build.sh @@ -0,0 +1,77 @@ +#!/bin/sh +# 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) + +## Should be run from src directory +# Loops over directories with multiprecision files and checks for changes in +# saved multiprecision function objects. +# NOTE: It must be run on symbols generated from the +# non-multiprecision build of hypre. + +# Assumes hypre has been built (non-multiprecision) to generate object files +### +# * make distclean +# * ./configure --enable-debug --enable-complex --with-timing +# * make -s +### + +# output: prints out directories whose saved files need updating +# Suggested next steps: +# 1. Inspect .saved and .new files in directories that need updating. +# For convenience a .err file is generated from diff. +# Alternatively, it helps if the files are sorted first. So do: +# sort -o new.srt _functions.new +# sort -o sav.srt _functions.saved +# sav.srt new.srt (eg. meld sav.srt new.srt) +# 2. If new changes are all acceptable, you can do: +# cp _functions.new to _functions.saved +# 3. Otherwise make edits as needed to new functions added then repeat check or +# directly modify .saved file. + +SRCDIR=$PWD + +MUP_DIRS="blas + lapack + utilities + multivector + krylov + seq_mv + seq_block_mv + parcsr_mv + parcsr_block_mv + distributed_matrix + matrix_matrix + IJ_mv + parcsr_ls + struct_mv + struct_ls + sstruct_mv + sstruct_ls + " +for i in $MUP_DIRS; do +# echo "checking $i ..." + cd $i + rm -rf *.err *.new + $SRCDIR/config/check_mup.sh + ls -lt *.err | awk -v x=$i '$5 != 0 {print x" needs updating"}' + cd $SRCDIR +done + +DIST_MUP_DIRS=" + distributed_ls/pilut + distributed_ls/ParaSails + distributed_ls/Euclid + " +for i in $DIST_MUP_DIRS; do +# echo "checking $i ..." + cd $i + rm -rf *.err *.new + $SRCDIR/config/check_mup.sh + ls -lt *.err | awk -v x=$i '$5 != 0 {print x" needs updating"}' + cd $SRCDIR +done + + + diff --git a/src/config/configure.in b/src/config/configure.in index a58fcc2f61..f27e28dc99 100644 --- a/src/config/configure.in +++ b/src/config/configure.in @@ -362,6 +362,25 @@ then AC_DEFINE(HYPRE_COMPLEX, 1, [Define to 1 if using complex values]) fi +dnl *** Mixed-precision support build option +AC_ARG_ENABLE(mixed-precision, +AS_HELP_STRING([--enable-mixed-precision], + [Enable mixed-precision build (default is NO).]), +[case "${enableval}" in + yes) hypre_using_fei=no + hypre_using_mixed_precision=yes ;; + no) hypre_using_mixed_precision=no ;; + *) AC_MSG_ERROR([Bad value ${enableval} for --enable-mixed-precision]) ;; + esac], +[hypre_using_mixed_precision=no] +) +MP_BUILD=0 +if test "$hypre_using_mixed_precision" = "yes" +then + AC_DEFINE(HYPRE_MIXED_PRECISION, 1, [Define to 1 if using mixed-precision for HYPRE_Real type]) + MP_BUILD=1 +fi + AC_ARG_ENABLE(maxdim, AS_HELP_STRING([--enable-maxdim=MAXDIM], [Change max dimension size to MAXDIM (default is 3). @@ -3048,6 +3067,11 @@ dnl ********************************************************************* AC_SUBST(DSUPERLU_INCLUDE) AC_SUBST(DSUPERLU_LIBS) +dnl ********************************************************************* +dnl * Mixed precision build +dnl ********************************************************************* +AC_SUBST(MP_BUILD) + dnl ********************************************************************* dnl * ar & ranlib substitution dnl ********************************************************************* diff --git a/src/config/genMPHeader.sh b/src/config/genMPHeader.sh new file mode 100755 index 0000000000..6d84a552da --- /dev/null +++ b/src/config/genMPHeader.sh @@ -0,0 +1,100 @@ +#!/bin/sh +# 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) + +# Generate multiprecision type protos +# Run from folder where multiprecision functions reside. +# Usage: ../config/genMPHeader.sh +# Example (struct_ls): ../config/genMPHeader.sh protos.h hypre_struct_ls_mup.h struct_mv_functions.saved + +FNAME=$1 +FOUT=$2 +FLIST=$3 + +rm -f $FOUT +rm -f $FOUT.int + + +MUP_HEADER=$FOUT + +HEADER_GUARD="${FOUT%.*}_HEADER" +HEADER_GUARD=${HEADER_GUARD^^} + +#cat > $MUP_HEADER <<@ +#/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_mv_func_header' to generate) ***/ +#@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file of multiprecision function prototypes. + * This is needed for mixed-precision algorithm development. + *****************************************************************************/ + +#ifndef $HEADER_GUARD +#define $HEADER_GUARD + +#if defined (HYPRE_MIXED_PRECISION) + +@ + +while read -r func_name +do +# sed -n -e "/^.*\b$func_name\b/ {p "$func_name"}" $FNAME >> $FOUT.int +# grep -wo $func_name $FNAME >> $FOUT.int + + sed -n -e "/^.*\b$func_name\b/{:continue {s/[[:blank:]]*$//}; {s/ \*[[:space:]]*/ \*/}; p; /).*;/q; n; b continue }" $FNAME >> $FOUT.int + +done < $FLIST + +# loop over lines and generate code for each function +FIN=$FOUT.int +cat>> $MUP_HEADER <<@ +$( +awk -v filename="$FIN" 'BEGIN{ + FS="[( ]"; + RS=";\n"; + # Read saved file data into array + while (getline < filename) + { +# remove leading and trailing white space + gsub(/^[ \t]+/,"",$0); + gsub(/[ \t]+$/,"",$0); + + f_str=$2; + + # float + p_str=$0; + sub($2, f_str"_flt ", p_str); + p_str=sprintf("%s%s",p_str,";"); + gsub(/HYPRE_Real|HYPRE_Complex/,"hypre_float",p_str); + print p_str; + + # double + p_str=$0; + sub($2, f_str"_dbl ", p_str); + p_str=sprintf("%s%s",p_str,";"); + gsub(/HYPRE_Real|HYPRE_Complex/,"hypre_double",p_str); + print p_str; + + # long double + p_str=$0; + sub($2, f_str"_long_dbl ", p_str); + p_str=sprintf("%s%s",p_str,";"); + gsub(/HYPRE_Real|HYPRE_Complex/,"hypre_long_double",p_str); + print p_str; + } + close(filename); +}') + +#endif + +#endif +@ + +# remove intermediate file +rm -f $FOUT.int diff --git a/src/config/generate_function_list.sh b/src/config/generate_function_list.sh new file mode 100755 index 0000000000..566cefb1fb --- /dev/null +++ b/src/config/generate_function_list.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# 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) + +## Call from directory where multiprecision functions are. +# Generate file containing function names in current folder. +# This will be used to generate a header file for transforming +# multiprecision function names. It will also be useful for +# regression testing for the multiprecision build. +# +# NOTE: It must be run on symbols generated from the +# non-multiprecision build of hypre. + +# Assumes hypre has been built (non-multiprecision) to generate object files +### +# * make distclean +# * ./configure –enable-debug +# * make -s +### + +# extract directory rootname +rootdir=$PWD +rootdir="${rootdir%/}" +rootname="${rootdir##*/}" + +## extract function names and **remove** leading and trailing underscores, if any +## To include local functions (static functions) test on $2=="t" as well (use: $2=="t|T"{print $3}) +#if [ ${rootname} == "utilities" ] +#then +# nm -A --defined-only *.o* | awk -F'[ ]' '$2=="T"{print $3}' | sed 's/_*//;s/_*$//' > ${rootname}_functions.new +#else +## NOTE: This will exclude functions beginning with HYPRE_ +# nm -A --defined-only *.o* | awk -F'[ ]' '$2=="T"{print $3}' | sed 's/_*//;s/_*$//' | sed -n '/^HYPRE_/ !p' > ${rootname}_functions.new +#fi + +## extract function names and **remove** trailing underscores, if any +## To include local functions (static functions) test on $2=="t" as well (use: $2=="t|T"{print $3}) +#if [ ${rootname} == "utilities" ] +#then + nm -A --defined-only *.o* | awk -F'[ ]' '$2=="T"{print $3}' | sed 's/_*$//' > ${rootname}_functions.new +#else +## NOTE: This will exclude functions beginning with HYPRE_ +# nm -A --defined-only *.o* | awk -F'[ ]' '$2=="T"{print $3}' | sed 's/_*$//' | sed -n '/^HYPRE_/ !p' > ${rootname}_functions.new +#fi diff --git a/src/config/writeHeader.sh b/src/config/writeHeader.sh new file mode 100755 index 0000000000..4e5d179045 --- /dev/null +++ b/src/config/writeHeader.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# 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) + +# Write hypre copyright header to file "filename" +# Usage: writeHeader.sh + +FNAME=$1 +cat >> $FNAME <<@ + +/****************************************************************************** + * 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) + ******************************************************************************/ +@ + diff --git a/src/configure b/src/configure index b3e8d54444..a563aa6d44 100755 --- a/src/configure +++ b/src/configure @@ -654,6 +654,7 @@ ac_header_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS AR +MP_BUILD DSUPERLU_LIBS DSUPERLU_INCLUDE SUPERLU_LIBS @@ -808,6 +809,7 @@ enable_bigint enable_single enable_longdouble enable_complex +enable_mixed_precision enable_maxdim enable_persistent enable_hopscotch @@ -1557,6 +1559,8 @@ Optional Features: --enable-single Use single precision values (default is NO). --enable-longdouble Use long double precision values (default is NO). --enable-complex Use complex values (default is NO). + --enable-mixed-precision + Enable mixed-precision build (default is NO). --enable-maxdim=MAXDIM Change max dimension size to MAXDIM (default is 3). Currently must be at least 3. --enable-persistent Uses persistent communication (default is NO). @@ -3622,6 +3626,29 @@ printf "%s\n" "#define HYPRE_COMPLEX 1" >>confdefs.h fi +# Check whether --enable-mixed-precision was given. +if test ${enable_mixed_precision+y} +then : + enableval=$enable_mixed_precision; case "${enableval}" in + yes) hypre_using_fei=no + hypre_using_mixed_precision=yes ;; + no) hypre_using_mixed_precision=no ;; + *) as_fn_error $? "Bad value ${enableval} for --enable-mixed-precision" "$LINENO" 5 ;; + esac +else $as_nop + hypre_using_mixed_precision=no + +fi + +MP_BUILD=0 +if test "$hypre_using_mixed_precision" = "yes" +then + +printf "%s\n" "#define HYPRE_MIXED_PRECISION 1" >>confdefs.h + + MP_BUILD=1 +fi + # Check whether --enable-maxdim was given. if test ${enable_maxdim+y} then : @@ -11345,8 +11372,6 @@ printf "%s\n" "#define HYPRE_LINUX 1" >>confdefs.h - - diff --git a/src/distributed_ls/Euclid/Euclid_func_header b/src/distributed_ls/Euclid/Euclid_func_header new file mode 100755 index 0000000000..313b607cd8 --- /dev/null +++ b/src/distributed_ls/Euclid/Euclid_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=Euclid_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'Euclid_func_header' to generate) ***/ +@ +# Generate copyright header +../../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef EUCLID_MUP_FUNC_HEADER +#define EUCLID_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=Euclid_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/distributed_ls/Euclid/Euclid_functions.saved b/src/distributed_ls/Euclid/Euclid_functions.saved new file mode 100644 index 0000000000..f564e69285 --- /dev/null +++ b/src/distributed_ls/Euclid/Euclid_functions.saved @@ -0,0 +1,226 @@ +Axpy +CopyVec +InnerProd +matvec_euclid_seq +Norm2 +ScaleVec +Euclid_dhApply +Euclid_dhCreate +Euclid_dhDestroy +Euclid_dhPrintHypreReport +Euclid_dhPrintScaling +Euclid_dhPrintStats +Euclid_dhPrintStatsShort +Euclid_dhPrintStatsShorter +Euclid_dhPrintTestData +Euclid_dhSetup +Euclid_dhSolve +ExternalRows_dhCreate +ExternalRows_dhDestroy +ExternalRows_dhGetRow +ExternalRows_dhInit +ExternalRows_dhRecvRows +ExternalRows_dhSendRows +Factor_dhCondEst +Factor_dhCreate +Factor_dhDestroy +Factor_dhInit +Factor_dh_junk +Factor_dhMaxPivotInverse +Factor_dhMaxValue +Factor_dhPrintDiags +Factor_dhPrintGraph +Factor_dhPrintRows +Factor_dhPrintTriples +Factor_dhReadNz +Factor_dhReallocate +Factor_dhSolve +Factor_dhSolveSeq +Factor_dhSolveSetup +Factor_dhTranspose +Euclid_dhInputHypreMat +EuclidGetDimensions +EuclidGetRow +EuclidRestoreRow +PrintMatUsingGetRow +closeLogfile_dh +dh_EndFunc +dh_StartFunc +echoInvocation_dh +Error_dhEndFunc +Error_dhStartFunc +EuclidFinalize +EuclidInitialize +EuclidIsInitialized +fprintf_dh +openLogfile_dh +printErrorMsg +printf_dh +printFunctionStack +setError_dh +setInfo_dh +Hash_dhCreate +Hash_dhDestroy +Hash_dhInsert +Hash_dhLookup +Hash_dhPrint +Hash_dhReset +Hash_i_dhCreate +Hash_i_dhDestroy +Hash_i_dhInsert +Hash_i_dhLookup +Hash_i_dhReset +iluk_mpi_bj +symbolic_row_private +iluk_mpi_pilu +compute_scaling_private +iluk_seq +iluk_seq_block +ilut_row_private +ilut_seq +closeFile_dh +io_dh_print_ebin_mat_private +io_dh_print_ebin_vec_private +io_dh_read_ebin_mat_private +io_dh_read_ebin_vec_private +openFile_dh +bicgstab_euclid +cg_euclid +build_adj_lists_private +insert_diags_private +Mat_dhCreate +Mat_dhDestroy +Mat_dhFixDiags +Mat_dhGetRow +Mat_dhMakeStructurallySymmetric +Mat_dhMatVec +Mat_dhMatVec_omp +Mat_dhMatVecSetdown +Mat_dhMatVecSetup +Mat_dhMatVec_uni +Mat_dhMatVec_uni_omp +Mat_dhPartition +Mat_dhPermute +Mat_dhPrintBIN +Mat_dhPrintCSR +Mat_dhPrintDiags +Mat_dhPrintGraph +Mat_dhPrintRows +Mat_dhPrintTriples +Mat_dhReadBIN +Mat_dhReadCSR +Mat_dhReadNz +Mat_dhReadTriples +Mat_dhReduceTiming +Mat_dhRestoreRow +Mat_dhRowPermute +Mat_dhTranspose +Mat_dhZeroTiming +create_nat_ordering_private +destroy_nat_ordering_private +fix_diags_private +insert_missing_diags_private +invert_perm +make_full_private +make_symmetric_private +mat_dh_print_csr_private +mat_dh_print_graph_private +mat_dh_read_csr_private +mat_dh_read_triples_private +mat_dh_transpose_private +mat_dh_transpose_reuse_private +mat_find_owner +mat_partition_private +partition_and_distribute_metis_private +partition_and_distribute_private +profileMat +readMat +readMat_par +readVec +writeMat +writeVec +box_1 +box_2 +boxThreeD +e2_xy +konstant +MatGenFD_Create +MatGenFD_Destroy +MatGenFD_Run +rownum +Mem_dhCreate +Mem_dhDestroy +Mem_dhFree +Mem_dhMalloc +Mem_dhPrint +Numbering_dhCreate +Numbering_dhDestroy +Numbering_dhGlobalToLocal +Numbering_dhSetup +Parser_dhCreate +Parser_dhDestroy +Parser_dhHasSwitch +Parser_dhInit +Parser_dhInsert +Parser_dhPrint +Parser_dhReadDouble +Parser_dhReadInt +Parser_dhReadString +Parser_dhUpdateFromFile +shellSort_float +shellSort_int +sigHandler_dh +sigRegister_dh +delete_private +SortedList_dhCreate +SortedList_dhDestroy +SortedList_dhEnforceConstraint +SortedList_dhFind +SortedList_dhGetSmallest +SortedList_dhGetSmallestLowerTri +SortedList_dhInit +SortedList_dhInsert +SortedList_dhInsertOrUpdate +SortedList_dhPermuteAndInsert +SortedList_dhReadCount +SortedList_dhReset +SortedList_dhResetGetSmallest +SortedSet_dhCreate +SortedSet_dhDestroy +SortedSet_dhGetList +SortedSet_dhInsert +SubdomainGraph_dhCreate +SubdomainGraph_dhDestroy +SubdomainGraph_dhDump +SubdomainGraph_dhExchangePerms +SubdomainGraph_dhFindOwner +SubdomainGraph_dhInit +SubdomainGraph_dhPrintRatios +SubdomainGraph_dhPrintStats +SubdomainGraph_dhPrintStatsLong +SubdomainGraph_dhPrintSubdomainGraph +TimeLog_dhCreate +TimeLog_dhDestroy +TimeLog_dhMark +TimeLog_dhPrint +TimeLog_dhReset +TimeLog_dhStart +TimeLog_dhStop +Timer_dhCreate +Timer_dhDestroy +Timer_dhReadCPU +Timer_dhReadUsage +Timer_dhReadWall +Timer_dhStart +Timer_dhStop +Vec_dhCopy +Vec_dhCreate +Vec_dhDestroy +Vec_dhDuplicate +Vec_dhInit +Vec_dhPrint +Vec_dhPrintBIN +Vec_dhRead +Vec_dhReadBIN +Vec_dhSet +Vec_dhSetRand diff --git a/src/distributed_ls/Euclid/Euclid_mup_func.h b/src/distributed_ls/Euclid/Euclid_mup_func.h new file mode 100644 index 0000000000..a4e5a16ff0 --- /dev/null +++ b/src/distributed_ls/Euclid/Euclid_mup_func.h @@ -0,0 +1,246 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'Euclid_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef EUCLID_MUP_FUNC_HEADER +#define EUCLID_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define Euclid_dhApply HYPRE_MULTIPRECISION_FUNC ( Euclid_dhApply ) +#define Euclid_dhCreate HYPRE_MULTIPRECISION_FUNC ( Euclid_dhCreate ) +#define Euclid_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Euclid_dhDestroy ) +#define Euclid_dhPrintHypreReport HYPRE_MULTIPRECISION_FUNC ( Euclid_dhPrintHypreReport ) +#define Euclid_dhPrintScaling HYPRE_MULTIPRECISION_FUNC ( Euclid_dhPrintScaling ) +#define Euclid_dhPrintStats HYPRE_MULTIPRECISION_FUNC ( Euclid_dhPrintStats ) +#define Euclid_dhPrintStatsShort HYPRE_MULTIPRECISION_FUNC ( Euclid_dhPrintStatsShort ) +#define Euclid_dhPrintStatsShorter HYPRE_MULTIPRECISION_FUNC ( Euclid_dhPrintStatsShorter ) +#define Euclid_dhPrintTestData HYPRE_MULTIPRECISION_FUNC ( Euclid_dhPrintTestData ) +#define Euclid_dhSetup HYPRE_MULTIPRECISION_FUNC ( Euclid_dhSetup ) +#define Euclid_dhSolve HYPRE_MULTIPRECISION_FUNC ( Euclid_dhSolve ) +#define ExternalRows_dhCreate HYPRE_MULTIPRECISION_FUNC ( ExternalRows_dhCreate ) +#define ExternalRows_dhDestroy HYPRE_MULTIPRECISION_FUNC ( ExternalRows_dhDestroy ) +#define ExternalRows_dhGetRow HYPRE_MULTIPRECISION_FUNC ( ExternalRows_dhGetRow ) +#define ExternalRows_dhInit HYPRE_MULTIPRECISION_FUNC ( ExternalRows_dhInit ) +#define ExternalRows_dhRecvRows HYPRE_MULTIPRECISION_FUNC ( ExternalRows_dhRecvRows ) +#define ExternalRows_dhSendRows HYPRE_MULTIPRECISION_FUNC ( ExternalRows_dhSendRows ) +#define Factor_dhCondEst HYPRE_MULTIPRECISION_FUNC ( Factor_dhCondEst ) +#define Factor_dhCreate HYPRE_MULTIPRECISION_FUNC ( Factor_dhCreate ) +#define Factor_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Factor_dhDestroy ) +#define Factor_dhInit HYPRE_MULTIPRECISION_FUNC ( Factor_dhInit ) +#define Factor_dhMaxPivotInverse HYPRE_MULTIPRECISION_FUNC ( Factor_dhMaxPivotInverse ) +#define Factor_dhMaxValue HYPRE_MULTIPRECISION_FUNC ( Factor_dhMaxValue ) +#define Factor_dhPrintDiags HYPRE_MULTIPRECISION_FUNC ( Factor_dhPrintDiags ) +#define Factor_dhPrintGraph HYPRE_MULTIPRECISION_FUNC ( Factor_dhPrintGraph ) +#define Factor_dhPrintRows HYPRE_MULTIPRECISION_FUNC ( Factor_dhPrintRows ) +#define Factor_dhPrintTriples HYPRE_MULTIPRECISION_FUNC ( Factor_dhPrintTriples ) +#define Factor_dhReadNz HYPRE_MULTIPRECISION_FUNC ( Factor_dhReadNz ) +#define Factor_dhReallocate HYPRE_MULTIPRECISION_FUNC ( Factor_dhReallocate ) +#define Factor_dhSolve HYPRE_MULTIPRECISION_FUNC ( Factor_dhSolve ) +#define Factor_dhSolveSeq HYPRE_MULTIPRECISION_FUNC ( Factor_dhSolveSeq ) +#define Factor_dhSolveSetup HYPRE_MULTIPRECISION_FUNC ( Factor_dhSolveSetup ) +#define Factor_dhTranspose HYPRE_MULTIPRECISION_FUNC ( Factor_dhTranspose ) +#define Factor_dh_junk HYPRE_MULTIPRECISION_FUNC ( Factor_dh_junk ) +#define Hash_dhCreate HYPRE_MULTIPRECISION_FUNC ( Hash_dhCreate ) +#define Hash_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Hash_dhDestroy ) +#define Hash_dhInsert HYPRE_MULTIPRECISION_FUNC ( Hash_dhInsert ) +#define Hash_dhLookup HYPRE_MULTIPRECISION_FUNC ( Hash_dhLookup ) +#define Hash_dhPrint HYPRE_MULTIPRECISION_FUNC ( Hash_dhPrint ) +#define Hash_dhReset HYPRE_MULTIPRECISION_FUNC ( Hash_dhReset ) +#define Hash_i_dhCreate HYPRE_MULTIPRECISION_FUNC ( Hash_i_dhCreate ) +#define Hash_i_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Hash_i_dhDestroy ) +#define Hash_i_dhInsert HYPRE_MULTIPRECISION_FUNC ( Hash_i_dhInsert ) +#define Hash_i_dhLookup HYPRE_MULTIPRECISION_FUNC ( Hash_i_dhLookup ) +#define Hash_i_dhReset HYPRE_MULTIPRECISION_FUNC ( Hash_i_dhReset ) +#define MatGenFD_Create HYPRE_MULTIPRECISION_FUNC ( MatGenFD_Create ) +#define MatGenFD_Destroy HYPRE_MULTIPRECISION_FUNC ( MatGenFD_Destroy ) +#define MatGenFD_Run HYPRE_MULTIPRECISION_FUNC ( MatGenFD_Run ) +#define boxThreeD HYPRE_MULTIPRECISION_FUNC ( boxThreeD ) +#define box_1 HYPRE_MULTIPRECISION_FUNC ( box_1 ) +#define box_2 HYPRE_MULTIPRECISION_FUNC ( box_2 ) +#define e2_xy HYPRE_MULTIPRECISION_FUNC ( e2_xy ) +#define konstant HYPRE_MULTIPRECISION_FUNC ( konstant ) +#define rownum HYPRE_MULTIPRECISION_FUNC ( rownum ) +#define Mat_dhCreate HYPRE_MULTIPRECISION_FUNC ( Mat_dhCreate ) +#define Mat_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Mat_dhDestroy ) +#define Mat_dhFixDiags HYPRE_MULTIPRECISION_FUNC ( Mat_dhFixDiags ) +#define Mat_dhGetRow HYPRE_MULTIPRECISION_FUNC ( Mat_dhGetRow ) +#define Mat_dhMakeStructurallySymmetric HYPRE_MULTIPRECISION_FUNC ( Mat_dhMakeStructurallySymmetric ) +#define Mat_dhMatVec HYPRE_MULTIPRECISION_FUNC ( Mat_dhMatVec ) +#define Mat_dhMatVecSetdown HYPRE_MULTIPRECISION_FUNC ( Mat_dhMatVecSetdown ) +#define Mat_dhMatVecSetup HYPRE_MULTIPRECISION_FUNC ( Mat_dhMatVecSetup ) +#define Mat_dhMatVec_omp HYPRE_MULTIPRECISION_FUNC ( Mat_dhMatVec_omp ) +#define Mat_dhMatVec_uni HYPRE_MULTIPRECISION_FUNC ( Mat_dhMatVec_uni ) +#define Mat_dhMatVec_uni_omp HYPRE_MULTIPRECISION_FUNC ( Mat_dhMatVec_uni_omp ) +#define Mat_dhPartition HYPRE_MULTIPRECISION_FUNC ( Mat_dhPartition ) +#define Mat_dhPermute HYPRE_MULTIPRECISION_FUNC ( Mat_dhPermute ) +#define Mat_dhPrintBIN HYPRE_MULTIPRECISION_FUNC ( Mat_dhPrintBIN ) +#define Mat_dhPrintCSR HYPRE_MULTIPRECISION_FUNC ( Mat_dhPrintCSR ) +#define Mat_dhPrintDiags HYPRE_MULTIPRECISION_FUNC ( Mat_dhPrintDiags ) +#define Mat_dhPrintGraph HYPRE_MULTIPRECISION_FUNC ( Mat_dhPrintGraph ) +#define Mat_dhPrintRows HYPRE_MULTIPRECISION_FUNC ( Mat_dhPrintRows ) +#define Mat_dhPrintTriples HYPRE_MULTIPRECISION_FUNC ( Mat_dhPrintTriples ) +#define Mat_dhReadBIN HYPRE_MULTIPRECISION_FUNC ( Mat_dhReadBIN ) +#define Mat_dhReadCSR HYPRE_MULTIPRECISION_FUNC ( Mat_dhReadCSR ) +#define Mat_dhReadNz HYPRE_MULTIPRECISION_FUNC ( Mat_dhReadNz ) +#define Mat_dhReadTriples HYPRE_MULTIPRECISION_FUNC ( Mat_dhReadTriples ) +#define Mat_dhReduceTiming HYPRE_MULTIPRECISION_FUNC ( Mat_dhReduceTiming ) +#define Mat_dhRestoreRow HYPRE_MULTIPRECISION_FUNC ( Mat_dhRestoreRow ) +#define Mat_dhRowPermute HYPRE_MULTIPRECISION_FUNC ( Mat_dhRowPermute ) +#define Mat_dhTranspose HYPRE_MULTIPRECISION_FUNC ( Mat_dhTranspose ) +#define Mat_dhZeroTiming HYPRE_MULTIPRECISION_FUNC ( Mat_dhZeroTiming ) +#define build_adj_lists_private HYPRE_MULTIPRECISION_FUNC ( build_adj_lists_private ) +#define insert_diags_private HYPRE_MULTIPRECISION_FUNC ( insert_diags_private ) +#define Mem_dhCreate HYPRE_MULTIPRECISION_FUNC ( Mem_dhCreate ) +#define Mem_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Mem_dhDestroy ) +#define Mem_dhFree HYPRE_MULTIPRECISION_FUNC ( Mem_dhFree ) +#define Mem_dhMalloc HYPRE_MULTIPRECISION_FUNC ( Mem_dhMalloc ) +#define Mem_dhPrint HYPRE_MULTIPRECISION_FUNC ( Mem_dhPrint ) +#define Numbering_dhCreate HYPRE_MULTIPRECISION_FUNC ( Numbering_dhCreate ) +#define Numbering_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Numbering_dhDestroy ) +#define Numbering_dhGlobalToLocal HYPRE_MULTIPRECISION_FUNC ( Numbering_dhGlobalToLocal ) +#define Numbering_dhSetup HYPRE_MULTIPRECISION_FUNC ( Numbering_dhSetup ) +#define Parser_dhCreate HYPRE_MULTIPRECISION_FUNC ( Parser_dhCreate ) +#define Parser_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Parser_dhDestroy ) +#define Parser_dhHasSwitch HYPRE_MULTIPRECISION_FUNC ( Parser_dhHasSwitch ) +#define Parser_dhInit HYPRE_MULTIPRECISION_FUNC ( Parser_dhInit ) +#define Parser_dhInsert HYPRE_MULTIPRECISION_FUNC ( Parser_dhInsert ) +#define Parser_dhPrint HYPRE_MULTIPRECISION_FUNC ( Parser_dhPrint ) +#define Parser_dhReadDouble HYPRE_MULTIPRECISION_FUNC ( Parser_dhReadDouble ) +#define Parser_dhReadInt HYPRE_MULTIPRECISION_FUNC ( Parser_dhReadInt ) +#define Parser_dhReadString HYPRE_MULTIPRECISION_FUNC ( Parser_dhReadString ) +#define Parser_dhUpdateFromFile HYPRE_MULTIPRECISION_FUNC ( Parser_dhUpdateFromFile ) +#define SortedList_dhCreate HYPRE_MULTIPRECISION_FUNC ( SortedList_dhCreate ) +#define SortedList_dhDestroy HYPRE_MULTIPRECISION_FUNC ( SortedList_dhDestroy ) +#define SortedList_dhEnforceConstraint HYPRE_MULTIPRECISION_FUNC ( SortedList_dhEnforceConstraint ) +#define SortedList_dhFind HYPRE_MULTIPRECISION_FUNC ( SortedList_dhFind ) +#define SortedList_dhGetSmallest HYPRE_MULTIPRECISION_FUNC ( SortedList_dhGetSmallest ) +#define SortedList_dhGetSmallestLowerTri HYPRE_MULTIPRECISION_FUNC ( SortedList_dhGetSmallestLowerTri ) +#define SortedList_dhInit HYPRE_MULTIPRECISION_FUNC ( SortedList_dhInit ) +#define SortedList_dhInsert HYPRE_MULTIPRECISION_FUNC ( SortedList_dhInsert ) +#define SortedList_dhInsertOrUpdate HYPRE_MULTIPRECISION_FUNC ( SortedList_dhInsertOrUpdate ) +#define SortedList_dhPermuteAndInsert HYPRE_MULTIPRECISION_FUNC ( SortedList_dhPermuteAndInsert ) +#define SortedList_dhReadCount HYPRE_MULTIPRECISION_FUNC ( SortedList_dhReadCount ) +#define SortedList_dhReset HYPRE_MULTIPRECISION_FUNC ( SortedList_dhReset ) +#define SortedList_dhResetGetSmallest HYPRE_MULTIPRECISION_FUNC ( SortedList_dhResetGetSmallest ) +#define delete_private HYPRE_MULTIPRECISION_FUNC ( delete_private ) +#define SortedSet_dhCreate HYPRE_MULTIPRECISION_FUNC ( SortedSet_dhCreate ) +#define SortedSet_dhDestroy HYPRE_MULTIPRECISION_FUNC ( SortedSet_dhDestroy ) +#define SortedSet_dhGetList HYPRE_MULTIPRECISION_FUNC ( SortedSet_dhGetList ) +#define SortedSet_dhInsert HYPRE_MULTIPRECISION_FUNC ( SortedSet_dhInsert ) +#define SubdomainGraph_dhCreate HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhCreate ) +#define SubdomainGraph_dhDestroy HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhDestroy ) +#define SubdomainGraph_dhDump HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhDump ) +#define SubdomainGraph_dhExchangePerms HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhExchangePerms ) +#define SubdomainGraph_dhFindOwner HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhFindOwner ) +#define SubdomainGraph_dhInit HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhInit ) +#define SubdomainGraph_dhPrintRatios HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhPrintRatios ) +#define SubdomainGraph_dhPrintStats HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhPrintStats ) +#define SubdomainGraph_dhPrintStatsLong HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhPrintStatsLong ) +#define SubdomainGraph_dhPrintSubdomainGraph HYPRE_MULTIPRECISION_FUNC ( SubdomainGraph_dhPrintSubdomainGraph ) +#define TimeLog_dhCreate HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhCreate ) +#define TimeLog_dhDestroy HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhDestroy ) +#define TimeLog_dhMark HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhMark ) +#define TimeLog_dhPrint HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhPrint ) +#define TimeLog_dhReset HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhReset ) +#define TimeLog_dhStart HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhStart ) +#define TimeLog_dhStop HYPRE_MULTIPRECISION_FUNC ( TimeLog_dhStop ) +#define Timer_dhCreate HYPRE_MULTIPRECISION_FUNC ( Timer_dhCreate ) +#define Timer_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Timer_dhDestroy ) +#define Timer_dhReadCPU HYPRE_MULTIPRECISION_FUNC ( Timer_dhReadCPU ) +#define Timer_dhReadUsage HYPRE_MULTIPRECISION_FUNC ( Timer_dhReadUsage ) +#define Timer_dhReadWall HYPRE_MULTIPRECISION_FUNC ( Timer_dhReadWall ) +#define Timer_dhStart HYPRE_MULTIPRECISION_FUNC ( Timer_dhStart ) +#define Timer_dhStop HYPRE_MULTIPRECISION_FUNC ( Timer_dhStop ) +#define Vec_dhCopy HYPRE_MULTIPRECISION_FUNC ( Vec_dhCopy ) +#define Vec_dhCreate HYPRE_MULTIPRECISION_FUNC ( Vec_dhCreate ) +#define Vec_dhDestroy HYPRE_MULTIPRECISION_FUNC ( Vec_dhDestroy ) +#define Vec_dhDuplicate HYPRE_MULTIPRECISION_FUNC ( Vec_dhDuplicate ) +#define Vec_dhInit HYPRE_MULTIPRECISION_FUNC ( Vec_dhInit ) +#define Vec_dhPrint HYPRE_MULTIPRECISION_FUNC ( Vec_dhPrint ) +#define Vec_dhPrintBIN HYPRE_MULTIPRECISION_FUNC ( Vec_dhPrintBIN ) +#define Vec_dhRead HYPRE_MULTIPRECISION_FUNC ( Vec_dhRead ) +#define Vec_dhReadBIN HYPRE_MULTIPRECISION_FUNC ( Vec_dhReadBIN ) +#define Vec_dhSet HYPRE_MULTIPRECISION_FUNC ( Vec_dhSet ) +#define Vec_dhSetRand HYPRE_MULTIPRECISION_FUNC ( Vec_dhSetRand ) +#define Axpy HYPRE_MULTIPRECISION_FUNC ( Axpy ) +#define CopyVec HYPRE_MULTIPRECISION_FUNC ( CopyVec ) +#define InnerProd HYPRE_MULTIPRECISION_FUNC ( InnerProd ) +#define Norm2 HYPRE_MULTIPRECISION_FUNC ( Norm2 ) +#define ScaleVec HYPRE_MULTIPRECISION_FUNC ( ScaleVec ) +#define matvec_euclid_seq HYPRE_MULTIPRECISION_FUNC ( matvec_euclid_seq ) +#define EuclidGetDimensions HYPRE_MULTIPRECISION_FUNC ( EuclidGetDimensions ) +#define EuclidGetRow HYPRE_MULTIPRECISION_FUNC ( EuclidGetRow ) +#define EuclidRestoreRow HYPRE_MULTIPRECISION_FUNC ( EuclidRestoreRow ) +#define Euclid_dhInputHypreMat HYPRE_MULTIPRECISION_FUNC ( Euclid_dhInputHypreMat ) +#define PrintMatUsingGetRow HYPRE_MULTIPRECISION_FUNC ( PrintMatUsingGetRow ) +#define Error_dhEndFunc HYPRE_MULTIPRECISION_FUNC ( Error_dhEndFunc ) +#define Error_dhStartFunc HYPRE_MULTIPRECISION_FUNC ( Error_dhStartFunc ) +#define EuclidFinalize HYPRE_MULTIPRECISION_FUNC ( EuclidFinalize ) +#define EuclidInitialize HYPRE_MULTIPRECISION_FUNC ( EuclidInitialize ) +#define EuclidIsInitialized HYPRE_MULTIPRECISION_FUNC ( EuclidIsInitialized ) +#define closeLogfile_dh HYPRE_MULTIPRECISION_FUNC ( closeLogfile_dh ) +#define dh_EndFunc HYPRE_MULTIPRECISION_FUNC ( dh_EndFunc ) +#define dh_StartFunc HYPRE_MULTIPRECISION_FUNC ( dh_StartFunc ) +#define echoInvocation_dh HYPRE_MULTIPRECISION_FUNC ( echoInvocation_dh ) +#define fprintf_dh HYPRE_MULTIPRECISION_FUNC ( fprintf_dh ) +#define openLogfile_dh HYPRE_MULTIPRECISION_FUNC ( openLogfile_dh ) +#define printErrorMsg HYPRE_MULTIPRECISION_FUNC ( printErrorMsg ) +#define printFunctionStack HYPRE_MULTIPRECISION_FUNC ( printFunctionStack ) +#define printf_dh HYPRE_MULTIPRECISION_FUNC ( printf_dh ) +#define setError_dh HYPRE_MULTIPRECISION_FUNC ( setError_dh ) +#define setInfo_dh HYPRE_MULTIPRECISION_FUNC ( setInfo_dh ) +#define iluk_mpi_bj HYPRE_MULTIPRECISION_FUNC ( iluk_mpi_bj ) +#define symbolic_row_private HYPRE_MULTIPRECISION_FUNC ( symbolic_row_private ) +#define iluk_mpi_pilu HYPRE_MULTIPRECISION_FUNC ( iluk_mpi_pilu ) +#define compute_scaling_private HYPRE_MULTIPRECISION_FUNC ( compute_scaling_private ) +#define iluk_seq HYPRE_MULTIPRECISION_FUNC ( iluk_seq ) +#define iluk_seq_block HYPRE_MULTIPRECISION_FUNC ( iluk_seq_block ) +#define ilut_row_private HYPRE_MULTIPRECISION_FUNC ( ilut_row_private ) +#define ilut_seq HYPRE_MULTIPRECISION_FUNC ( ilut_seq ) +#define closeFile_dh HYPRE_MULTIPRECISION_FUNC ( closeFile_dh ) +#define io_dh_print_ebin_mat_private HYPRE_MULTIPRECISION_FUNC ( io_dh_print_ebin_mat_private ) +#define io_dh_print_ebin_vec_private HYPRE_MULTIPRECISION_FUNC ( io_dh_print_ebin_vec_private ) +#define io_dh_read_ebin_mat_private HYPRE_MULTIPRECISION_FUNC ( io_dh_read_ebin_mat_private ) +#define io_dh_read_ebin_vec_private HYPRE_MULTIPRECISION_FUNC ( io_dh_read_ebin_vec_private ) +#define openFile_dh HYPRE_MULTIPRECISION_FUNC ( openFile_dh ) +#define bicgstab_euclid HYPRE_MULTIPRECISION_FUNC ( bicgstab_euclid ) +#define cg_euclid HYPRE_MULTIPRECISION_FUNC ( cg_euclid ) +#define create_nat_ordering_private HYPRE_MULTIPRECISION_FUNC ( create_nat_ordering_private ) +#define destroy_nat_ordering_private HYPRE_MULTIPRECISION_FUNC ( destroy_nat_ordering_private ) +#define fix_diags_private HYPRE_MULTIPRECISION_FUNC ( fix_diags_private ) +#define insert_missing_diags_private HYPRE_MULTIPRECISION_FUNC ( insert_missing_diags_private ) +#define invert_perm HYPRE_MULTIPRECISION_FUNC ( invert_perm ) +#define make_full_private HYPRE_MULTIPRECISION_FUNC ( make_full_private ) +#define make_symmetric_private HYPRE_MULTIPRECISION_FUNC ( make_symmetric_private ) +#define mat_dh_print_csr_private HYPRE_MULTIPRECISION_FUNC ( mat_dh_print_csr_private ) +#define mat_dh_print_graph_private HYPRE_MULTIPRECISION_FUNC ( mat_dh_print_graph_private ) +#define mat_dh_read_csr_private HYPRE_MULTIPRECISION_FUNC ( mat_dh_read_csr_private ) +#define mat_dh_read_triples_private HYPRE_MULTIPRECISION_FUNC ( mat_dh_read_triples_private ) +#define mat_dh_transpose_private HYPRE_MULTIPRECISION_FUNC ( mat_dh_transpose_private ) +#define mat_dh_transpose_reuse_private HYPRE_MULTIPRECISION_FUNC ( mat_dh_transpose_reuse_private ) +#define mat_find_owner HYPRE_MULTIPRECISION_FUNC ( mat_find_owner ) +#define mat_partition_private HYPRE_MULTIPRECISION_FUNC ( mat_partition_private ) +#define partition_and_distribute_metis_private HYPRE_MULTIPRECISION_FUNC ( partition_and_distribute_metis_private ) +#define partition_and_distribute_private HYPRE_MULTIPRECISION_FUNC ( partition_and_distribute_private ) +#define profileMat HYPRE_MULTIPRECISION_FUNC ( profileMat ) +#define readMat HYPRE_MULTIPRECISION_FUNC ( readMat ) +#define readMat_par HYPRE_MULTIPRECISION_FUNC ( readMat_par ) +#define readVec HYPRE_MULTIPRECISION_FUNC ( readVec ) +#define writeMat HYPRE_MULTIPRECISION_FUNC ( writeMat ) +#define writeVec HYPRE_MULTIPRECISION_FUNC ( writeVec ) +#define shellSort_float HYPRE_MULTIPRECISION_FUNC ( shellSort_float ) +#define shellSort_int HYPRE_MULTIPRECISION_FUNC ( shellSort_int ) +#define sigHandler_dh HYPRE_MULTIPRECISION_FUNC ( sigHandler_dh ) +#define sigRegister_dh HYPRE_MULTIPRECISION_FUNC ( sigRegister_dh ) + +#endif diff --git a/src/distributed_ls/Euclid/Makefile b/src/distributed_ls/Euclid/Makefile index 4c424b7b4a..52438e79fc 100644 --- a/src/distributed_ls/Euclid/Makefile +++ b/src/distributed_ls/Euclid/Makefile @@ -78,7 +78,7 @@ FILES =\ Timer_dh.c\ Vec_dh.c -OBJS = ${FILES:.c=.o} +COBJS = ${FILES:.c=.o} SONAME = libHYPRE_Euclid-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -92,16 +92,56 @@ all: libHYPRE_Euclid${HYPRE_LIB_SUFFIX} install: libHYPRE_Euclid${HYPRE_LIB_SUFFIX} # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} +else +OBJS = ${COBJS} +endif +# libHYPRE_Euclid.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/distributed_ls/Euclid/_hypre_Euclid.h b/src/distributed_ls/Euclid/_hypre_Euclid.h index 6566d503d2..e2a8ae4ca4 100644 --- a/src/distributed_ls/Euclid/_hypre_Euclid.h +++ b/src/distributed_ls/Euclid/_hypre_Euclid.h @@ -15,6 +15,10 @@ #include "HYPRE_distributed_matrix_mv.h" #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "Euclid_mup_func.h" +#endif + #elif defined(PETSC_MODE) #include "petsc_config.h" #endif diff --git a/src/distributed_ls/Euclid/globalObjects.c b/src/distributed_ls/Euclid/globalObjects.c index c92a5c5c6b..96832517f2 100644 --- a/src/distributed_ls/Euclid/globalObjects.c +++ b/src/distributed_ls/Euclid/globalObjects.c @@ -17,6 +17,8 @@ /* #include "TimeLog_dh.h" */ extern void sigRegister_dh(void); /* use sig_dh.h if not for euclid_signals_len */ +/* guard definition of global variables to avoid linker errors for multiprecision build */ +#if defined (DEFINE_GLOBAL_VARIABLE) /*------------------------------------------------------------------------- * Globally scoped variables, flags, and objects *-------------------------------------------------------------------------*/ @@ -47,6 +49,7 @@ bool logFuncsToFile = false; bool ignoreMe = true; HYPRE_Int ref_counter = 0; +#endif /*------------------------------------------------------------------------- * End of global definitions. diff --git a/src/distributed_ls/Euclid/headers b/src/distributed_ls/Euclid/headers index 38b3959606..a3ad2498df 100755 --- a/src/distributed_ls/Euclid/headers +++ b/src/distributed_ls/Euclid/headers @@ -28,6 +28,10 @@ cat > $INTERNAL_HEADER <<@ #include "HYPRE_distributed_matrix_mv.h" #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "Euclid_mup_func.h" +#endif + #elif defined(PETSC_MODE) #include "petsc_config.h" #endif diff --git a/src/distributed_ls/Euclid/sig_dh.c b/src/distributed_ls/Euclid/sig_dh.c index 1841061efa..eafd584251 100644 --- a/src/distributed_ls/Euclid/sig_dh.c +++ b/src/distributed_ls/Euclid/sig_dh.c @@ -24,11 +24,11 @@ extern void sigHandler_dh(hypre_int sig); list of signals the Euclid will handle */ #ifdef WIN32 -hypre_int euclid_signals_len = 2; -hypre_int euclid_signals[] = { SIGSEGV, SIGFPE }; +static hypre_int euclid_signals_len = 2; +static hypre_int euclid_signals[] = { SIGSEGV, SIGFPE }; #else -hypre_int euclid_signals_len = 3; -hypre_int euclid_signals[] = { SIGSEGV, SIGFPE, SIGBUS }; +static hypre_int euclid_signals_len = 3; +static hypre_int euclid_signals[] = { SIGSEGV, SIGFPE, SIGBUS }; #endif /* diff --git a/src/distributed_ls/Euclid/sig_dh.h b/src/distributed_ls/Euclid/sig_dh.h index ba10f69cd8..3b6c5cd282 100644 --- a/src/distributed_ls/Euclid/sig_dh.h +++ b/src/distributed_ls/Euclid/sig_dh.h @@ -17,6 +17,7 @@ extern void sigHandler_dh(hypre_int sig); /* list of signals the Euclid will handle */ +/* #ifdef WIN32 hypre_int euclid_signals_len = 2; hypre_int euclid_signals[] = { SIGSEGV, SIGFPE }; @@ -24,7 +25,7 @@ hypre_int euclid_signals[] = { SIGSEGV, SIGFPE }; hypre_int euclid_signals_len = 3; hypre_int euclid_signals[] = { SIGSEGV, SIGFPE, SIGBUS }; #endif - +*/ /* signal names and explanatory messages */ diff --git a/src/distributed_ls/ParaSails/ConjGrad.h b/src/distributed_ls/ParaSails/ConjGrad.h index 990f84c97d..bc63ab5fbb 100644 --- a/src/distributed_ls/ParaSails/ConjGrad.h +++ b/src/distributed_ls/ParaSails/ConjGrad.h @@ -14,6 +14,10 @@ #ifndef _CONJGRAD_H #define _CONJGRAD_H +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + void PCG_ParaSails(Matrix *mat, ParaSails *ps, HYPRE_Real *b, HYPRE_Real *x, HYPRE_Real tol, HYPRE_Int max_iter); void FGMRES_ParaSails(Matrix *mat, ParaSails *ps, HYPRE_Real *b, HYPRE_Real *x, diff --git a/src/distributed_ls/ParaSails/DiagScale.h b/src/distributed_ls/ParaSails/DiagScale.h index da7d7a1b4d..a06168d761 100644 --- a/src/distributed_ls/ParaSails/DiagScale.h +++ b/src/distributed_ls/ParaSails/DiagScale.h @@ -16,6 +16,10 @@ #include "Matrix.h" #include "Numbering.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _DIAGSCALE_H #define _DIAGSCALE_H diff --git a/src/distributed_ls/ParaSails/Hash.h b/src/distributed_ls/ParaSails/Hash.h index 116f494d55..a411d11b50 100644 --- a/src/distributed_ls/ParaSails/Hash.h +++ b/src/distributed_ls/ParaSails/Hash.h @@ -12,6 +12,9 @@ *****************************************************************************/ #include +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif #ifndef _HASH_H #define _HASH_H diff --git a/src/distributed_ls/ParaSails/LoadBal.h b/src/distributed_ls/ParaSails/LoadBal.h index 066ba0be80..83e1898f14 100644 --- a/src/distributed_ls/ParaSails/LoadBal.h +++ b/src/distributed_ls/ParaSails/LoadBal.h @@ -11,6 +11,10 @@ * *****************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _LOADBAL_H #define _LOADBAL_H diff --git a/src/distributed_ls/ParaSails/Makefile b/src/distributed_ls/ParaSails/Makefile index e56452cde1..f9257fa212 100644 --- a/src/distributed_ls/ParaSails/Makefile +++ b/src/distributed_ls/ParaSails/Makefile @@ -49,7 +49,7 @@ FILES =\ RowPatt.c\ StoredRows.c -OBJS = ${FILES:.c=.o} +COBJS = ${FILES:.c=.o} SONAME = libHYPRE_ParaSails-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -63,16 +63,56 @@ all: libHYPRE_ParaSails${HYPRE_LIB_SUFFIX} install: libHYPRE_ParaSails${HYPRE_LIB_SUFFIX} # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} +else +OBJS = ${COBJS} +endif +# libHYPRE_ParaSails.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/distributed_ls/ParaSails/Matrix.h b/src/distributed_ls/ParaSails/Matrix.h index c754be09be..6dbdcec1da 100644 --- a/src/distributed_ls/ParaSails/Matrix.h +++ b/src/distributed_ls/ParaSails/Matrix.h @@ -15,6 +15,10 @@ #include "Common.h" #include "Mem.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _MATRIX_H #define _MATRIX_H diff --git a/src/distributed_ls/ParaSails/Mem.h b/src/distributed_ls/ParaSails/Mem.h index 2092ae1556..3c4b14c307 100644 --- a/src/distributed_ls/ParaSails/Mem.h +++ b/src/distributed_ls/ParaSails/Mem.h @@ -13,6 +13,10 @@ #include +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _MEM_H #define _MEM_H diff --git a/src/distributed_ls/ParaSails/Numbering.h b/src/distributed_ls/ParaSails/Numbering.h index 1ed2317edc..805a068f33 100644 --- a/src/distributed_ls/ParaSails/Numbering.h +++ b/src/distributed_ls/ParaSails/Numbering.h @@ -16,6 +16,10 @@ #include "Matrix.h" #include "Hash.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _NUMBERING_H #define _NUMBERING_H diff --git a/src/distributed_ls/ParaSails/OrderStat.h b/src/distributed_ls/ParaSails/OrderStat.h index b1703b5c1f..3d7107c4b1 100644 --- a/src/distributed_ls/ParaSails/OrderStat.h +++ b/src/distributed_ls/ParaSails/OrderStat.h @@ -16,6 +16,10 @@ #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + HYPRE_Real randomized_select(HYPRE_Real *a, HYPRE_Int p, HYPRE_Int r, HYPRE_Int i); void hypre_shell_sort(const HYPRE_Int n, HYPRE_Int x[]); diff --git a/src/distributed_ls/ParaSails/ParaSails.h b/src/distributed_ls/ParaSails/ParaSails.h index 79911eca89..e1be345155 100644 --- a/src/distributed_ls/ParaSails/ParaSails.h +++ b/src/distributed_ls/ParaSails/ParaSails.h @@ -18,6 +18,10 @@ #include "RowPatt.h" #include "LoadBal.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _PARASAILS_H #define _PARASAILS_H diff --git a/src/distributed_ls/ParaSails/ParaSails_func_header b/src/distributed_ls/ParaSails/ParaSails_func_header new file mode 100755 index 0000000000..6afc03de08 --- /dev/null +++ b/src/distributed_ls/ParaSails/ParaSails_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=ParaSails_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'ParaSails_func_header' to generate) ***/ +@ +# Generate copyright header +../../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARASAILS_MUP_FUNC_HEADER +#define PARASAILS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=ParaSails_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/distributed_ls/ParaSails/ParaSails_functions.saved b/src/distributed_ls/ParaSails/ParaSails_functions.saved new file mode 100644 index 0000000000..a5456f45d9 --- /dev/null +++ b/src/distributed_ls/ParaSails/ParaSails_functions.saved @@ -0,0 +1,80 @@ +PCG_ParaSails +DiagScaleCreate +DiagScaleDestroy +DiagScaleGet +FGMRES_ParaSails +HashCreate +HashDestroy +HashInsert +HashLookup +HashPrint +HashRehash +HashReset +hypre_ParaSailsApply +hypre_ParaSailsApplyTrans +hypre_ParaSailsBuildIJMatrix +hypre_ParaSailsCreate +hypre_ParaSailsDestroy +hypre_ParaSailsSetup +hypre_ParaSailsSetupPattern +hypre_ParaSailsSetupValues +LoadBalDonate +LoadBalDonorRecv +LoadBalDonorSend +LoadBalInit +LoadBalRecipRecv +LoadBalRecipSend +LoadBalReturn +MatrixComplete +MatrixCreate +MatrixCreateLocal +MatrixDestroy +MatrixGetRow +MatrixMatvec +MatrixMatvecSerial +MatrixMatvecTrans +MatrixNnz +MatrixPrint +MatrixRead +MatrixRowPe +MatrixSetRow +RhsRead +MemAlloc +MemCreate +MemDestroy +MemStat +NumberingCreate +NumberingCreateCopy +NumberingDestroy +NumberingGlobalToLocal +NumberingLocalToGlobal +hypre_shell_sort +randomized_select +FindNumReplies +ParaSailsApply +ParaSailsApplyTrans +ParaSailsCreate +ParaSailsDestroy +ParaSailsSetupPattern +ParaSailsSetupPatternExt +ParaSailsSetupValues +ParaSailsStatsPattern +ParaSailsStatsValues +PrunedRowsAlloc +PrunedRowsCreate +PrunedRowsDestroy +PrunedRowsGet +PrunedRowsPut +RowPattCreate +RowPattDestroy +RowPattGet +RowPattMerge +RowPattMergeExt +RowPattPrevLevel +RowPattReset +StoredRowsAllocInd +StoredRowsAllocVal +StoredRowsCreate +StoredRowsDestroy +StoredRowsGet +StoredRowsPut diff --git a/src/distributed_ls/ParaSails/ParaSails_mup_func.h b/src/distributed_ls/ParaSails/ParaSails_mup_func.h new file mode 100644 index 0000000000..beafd1a964 --- /dev/null +++ b/src/distributed_ls/ParaSails/ParaSails_mup_func.h @@ -0,0 +1,100 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'ParaSails_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARASAILS_MUP_FUNC_HEADER +#define PARASAILS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define PCG_ParaSails HYPRE_MULTIPRECISION_FUNC ( PCG_ParaSails ) +#define DiagScaleCreate HYPRE_MULTIPRECISION_FUNC ( DiagScaleCreate ) +#define DiagScaleDestroy HYPRE_MULTIPRECISION_FUNC ( DiagScaleDestroy ) +#define DiagScaleGet HYPRE_MULTIPRECISION_FUNC ( DiagScaleGet ) +#define FGMRES_ParaSails HYPRE_MULTIPRECISION_FUNC ( FGMRES_ParaSails ) +#define HashCreate HYPRE_MULTIPRECISION_FUNC ( HashCreate ) +#define HashDestroy HYPRE_MULTIPRECISION_FUNC ( HashDestroy ) +#define HashInsert HYPRE_MULTIPRECISION_FUNC ( HashInsert ) +#define HashLookup HYPRE_MULTIPRECISION_FUNC ( HashLookup ) +#define HashPrint HYPRE_MULTIPRECISION_FUNC ( HashPrint ) +#define HashRehash HYPRE_MULTIPRECISION_FUNC ( HashRehash ) +#define HashReset HYPRE_MULTIPRECISION_FUNC ( HashReset ) +#define LoadBalDonate HYPRE_MULTIPRECISION_FUNC ( LoadBalDonate ) +#define LoadBalDonorRecv HYPRE_MULTIPRECISION_FUNC ( LoadBalDonorRecv ) +#define LoadBalDonorSend HYPRE_MULTIPRECISION_FUNC ( LoadBalDonorSend ) +#define LoadBalInit HYPRE_MULTIPRECISION_FUNC ( LoadBalInit ) +#define LoadBalRecipRecv HYPRE_MULTIPRECISION_FUNC ( LoadBalRecipRecv ) +#define LoadBalRecipSend HYPRE_MULTIPRECISION_FUNC ( LoadBalRecipSend ) +#define LoadBalReturn HYPRE_MULTIPRECISION_FUNC ( LoadBalReturn ) +#define MatrixComplete HYPRE_MULTIPRECISION_FUNC ( MatrixComplete ) +#define MatrixCreate HYPRE_MULTIPRECISION_FUNC ( MatrixCreate ) +#define MatrixCreateLocal HYPRE_MULTIPRECISION_FUNC ( MatrixCreateLocal ) +#define MatrixDestroy HYPRE_MULTIPRECISION_FUNC ( MatrixDestroy ) +#define MatrixGetRow HYPRE_MULTIPRECISION_FUNC ( MatrixGetRow ) +#define MatrixMatvec HYPRE_MULTIPRECISION_FUNC ( MatrixMatvec ) +#define MatrixMatvecSerial HYPRE_MULTIPRECISION_FUNC ( MatrixMatvecSerial ) +#define MatrixMatvecTrans HYPRE_MULTIPRECISION_FUNC ( MatrixMatvecTrans ) +#define MatrixNnz HYPRE_MULTIPRECISION_FUNC ( MatrixNnz ) +#define MatrixPrint HYPRE_MULTIPRECISION_FUNC ( MatrixPrint ) +#define MatrixRead HYPRE_MULTIPRECISION_FUNC ( MatrixRead ) +#define MatrixRowPe HYPRE_MULTIPRECISION_FUNC ( MatrixRowPe ) +#define MatrixSetRow HYPRE_MULTIPRECISION_FUNC ( MatrixSetRow ) +#define RhsRead HYPRE_MULTIPRECISION_FUNC ( RhsRead ) +#define MemAlloc HYPRE_MULTIPRECISION_FUNC ( MemAlloc ) +#define MemCreate HYPRE_MULTIPRECISION_FUNC ( MemCreate ) +#define MemDestroy HYPRE_MULTIPRECISION_FUNC ( MemDestroy ) +#define MemStat HYPRE_MULTIPRECISION_FUNC ( MemStat ) +#define NumberingCreate HYPRE_MULTIPRECISION_FUNC ( NumberingCreate ) +#define NumberingCreateCopy HYPRE_MULTIPRECISION_FUNC ( NumberingCreateCopy ) +#define NumberingDestroy HYPRE_MULTIPRECISION_FUNC ( NumberingDestroy ) +#define NumberingGlobalToLocal HYPRE_MULTIPRECISION_FUNC ( NumberingGlobalToLocal ) +#define NumberingLocalToGlobal HYPRE_MULTIPRECISION_FUNC ( NumberingLocalToGlobal ) +#define hypre_shell_sort HYPRE_MULTIPRECISION_FUNC ( hypre_shell_sort ) +#define randomized_select HYPRE_MULTIPRECISION_FUNC ( randomized_select ) +#define FindNumReplies HYPRE_MULTIPRECISION_FUNC ( FindNumReplies ) +#define ParaSailsApply HYPRE_MULTIPRECISION_FUNC ( ParaSailsApply ) +#define ParaSailsApplyTrans HYPRE_MULTIPRECISION_FUNC ( ParaSailsApplyTrans ) +#define ParaSailsCreate HYPRE_MULTIPRECISION_FUNC ( ParaSailsCreate ) +#define ParaSailsDestroy HYPRE_MULTIPRECISION_FUNC ( ParaSailsDestroy ) +#define ParaSailsSetupPattern HYPRE_MULTIPRECISION_FUNC ( ParaSailsSetupPattern ) +#define ParaSailsSetupPatternExt HYPRE_MULTIPRECISION_FUNC ( ParaSailsSetupPatternExt ) +#define ParaSailsSetupValues HYPRE_MULTIPRECISION_FUNC ( ParaSailsSetupValues ) +#define ParaSailsStatsPattern HYPRE_MULTIPRECISION_FUNC ( ParaSailsStatsPattern ) +#define ParaSailsStatsValues HYPRE_MULTIPRECISION_FUNC ( ParaSailsStatsValues ) +#define PrunedRowsAlloc HYPRE_MULTIPRECISION_FUNC ( PrunedRowsAlloc ) +#define PrunedRowsCreate HYPRE_MULTIPRECISION_FUNC ( PrunedRowsCreate ) +#define PrunedRowsDestroy HYPRE_MULTIPRECISION_FUNC ( PrunedRowsDestroy ) +#define PrunedRowsGet HYPRE_MULTIPRECISION_FUNC ( PrunedRowsGet ) +#define PrunedRowsPut HYPRE_MULTIPRECISION_FUNC ( PrunedRowsPut ) +#define RowPattCreate HYPRE_MULTIPRECISION_FUNC ( RowPattCreate ) +#define RowPattDestroy HYPRE_MULTIPRECISION_FUNC ( RowPattDestroy ) +#define RowPattGet HYPRE_MULTIPRECISION_FUNC ( RowPattGet ) +#define RowPattMerge HYPRE_MULTIPRECISION_FUNC ( RowPattMerge ) +#define RowPattMergeExt HYPRE_MULTIPRECISION_FUNC ( RowPattMergeExt ) +#define RowPattPrevLevel HYPRE_MULTIPRECISION_FUNC ( RowPattPrevLevel ) +#define RowPattReset HYPRE_MULTIPRECISION_FUNC ( RowPattReset ) +#define StoredRowsAllocInd HYPRE_MULTIPRECISION_FUNC ( StoredRowsAllocInd ) +#define StoredRowsAllocVal HYPRE_MULTIPRECISION_FUNC ( StoredRowsAllocVal ) +#define StoredRowsCreate HYPRE_MULTIPRECISION_FUNC ( StoredRowsCreate ) +#define StoredRowsDestroy HYPRE_MULTIPRECISION_FUNC ( StoredRowsDestroy ) +#define StoredRowsGet HYPRE_MULTIPRECISION_FUNC ( StoredRowsGet ) +#define StoredRowsPut HYPRE_MULTIPRECISION_FUNC ( StoredRowsPut ) +#define hypre_ParaSailsApply HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsApply ) +#define hypre_ParaSailsApplyTrans HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsApplyTrans ) +#define hypre_ParaSailsBuildIJMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsBuildIJMatrix ) +#define hypre_ParaSailsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsCreate ) +#define hypre_ParaSailsDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsDestroy ) +#define hypre_ParaSailsSetup HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsSetup ) +#define hypre_ParaSailsSetupPattern HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsSetupPattern ) +#define hypre_ParaSailsSetupValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParaSailsSetupValues ) + +#endif diff --git a/src/distributed_ls/ParaSails/PrunedRows.h b/src/distributed_ls/ParaSails/PrunedRows.h index b6b8447e05..3e97583b30 100644 --- a/src/distributed_ls/ParaSails/PrunedRows.h +++ b/src/distributed_ls/ParaSails/PrunedRows.h @@ -15,6 +15,10 @@ #include "Mem.h" #include "DiagScale.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _PRUNEDROWS_H #define _PRUNEDROWS_H diff --git a/src/distributed_ls/ParaSails/RowPatt.h b/src/distributed_ls/ParaSails/RowPatt.h index 6793c90dc4..3ded928cd9 100644 --- a/src/distributed_ls/ParaSails/RowPatt.h +++ b/src/distributed_ls/ParaSails/RowPatt.h @@ -13,6 +13,10 @@ #include +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _ROWPATT_H #define _ROWPATT_H diff --git a/src/distributed_ls/ParaSails/StoredRows.h b/src/distributed_ls/ParaSails/StoredRows.h index 2de6dcf902..419885199c 100644 --- a/src/distributed_ls/ParaSails/StoredRows.h +++ b/src/distributed_ls/ParaSails/StoredRows.h @@ -15,6 +15,10 @@ #include "Mem.h" #include "Matrix.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + #ifndef _STOREDROWS_H #define _STOREDROWS_H diff --git a/src/distributed_ls/ParaSails/hypre_ParaSails.h b/src/distributed_ls/ParaSails/hypre_ParaSails.h index 892acfedf5..a632f3f27d 100644 --- a/src/distributed_ls/ParaSails/hypre_ParaSails.h +++ b/src/distributed_ls/ParaSails/hypre_ParaSails.h @@ -14,6 +14,10 @@ #include "HYPRE_distributed_matrix_protos.h" #include "../../IJ_mv/HYPRE_IJ_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "ParaSails_mup_func.h" +#endif + typedef void *hypre_ParaSails; HYPRE_Int hypre_ParaSailsCreate(MPI_Comm comm, hypre_ParaSails *obj); diff --git a/src/distributed_ls/pilut/HYPRE_DistributedMatrixPilutSolver_protos.h b/src/distributed_ls/pilut/HYPRE_DistributedMatrixPilutSolver_protos.h index 29810a0af5..431a75038f 100644 --- a/src/distributed_ls/pilut/HYPRE_DistributedMatrixPilutSolver_protos.h +++ b/src/distributed_ls/pilut/HYPRE_DistributedMatrixPilutSolver_protos.h @@ -5,6 +5,10 @@ * SPDX-License-Identifier: (Apache-2.0 OR MIT) ******************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "pilut_mup_func.h" +#endif + /* HYPRE_DistributedMatrixPilutSolver.c */ HYPRE_Int HYPRE_NewDistributedMatrixPilutSolver (MPI_Comm comm , HYPRE_DistributedMatrix matrix, HYPRE_DistributedMatrixPilutSolver *solver ); HYPRE_Int HYPRE_FreeDistributedMatrixPilutSolver (HYPRE_DistributedMatrixPilutSolver in_ptr ); diff --git a/src/distributed_ls/pilut/Makefile b/src/distributed_ls/pilut/Makefile index dc13c30d73..7f6de6af88 100644 --- a/src/distributed_ls/pilut/Makefile +++ b/src/distributed_ls/pilut/Makefile @@ -27,20 +27,30 @@ HEADERS = \ struct.h FILES =\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ comm.c\ debug.c\ distributed_qsort.c\ distributed_qsort_si.c\ - HYPRE_DistributedMatrixPilutSolver.c\ ilut.c\ parilut.c\ parutil.c\ pblas1.c\ serilut.c\ trifactor.c\ - util.c + util.c\ + HYPRE_DistributedMatrixPilutSolver.c -OBJS = ${FILES:.c=.o} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} +endif SONAME = libHYPRE_DistributedMatrixPilutSolver-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -56,16 +66,58 @@ install: libHYPRE_DistributedMatrixPilutSolver${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Main rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} +endif +# + libHYPRE_DistributedMatrixPilutSolver.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/distributed_ls/pilut/distributed_qsort.c b/src/distributed_ls/pilut/distributed_qsort.c index 26da4c8457..5c41d4cc54 100644 --- a/src/distributed_ls/pilut/distributed_qsort.c +++ b/src/distributed_ls/pilut/distributed_qsort.c @@ -21,7 +21,7 @@ */ #include /* only for type declarations */ -#include "_hypre_utilities.h" +#include "DistributedMatrixPilutSolver.h" #define THRESH 4 /* threshold for insertion */ #define MTHRESH 6 /* threshold for median */ diff --git a/src/distributed_ls/pilut/ilu.h b/src/distributed_ls/pilut/ilu.h index d925afcb9f..4f75b7ec19 100644 --- a/src/distributed_ls/pilut/ilu.h +++ b/src/distributed_ls/pilut/ilu.h @@ -33,6 +33,9 @@ #include "struct.h" #include "const.h" +#ifdef HYPRE_MIXED_PRECISION +#include "pilut_mup_func.h" +#endif #endif diff --git a/src/distributed_ls/pilut/internal_protos.h b/src/distributed_ls/pilut/internal_protos.h index 83f113054f..0f0b926c04 100644 --- a/src/distributed_ls/pilut/internal_protos.h +++ b/src/distributed_ls/pilut/internal_protos.h @@ -5,6 +5,10 @@ * SPDX-License-Identifier: (Apache-2.0 OR MIT) ******************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "pilut_mup_func.h" +#endif + /* HYPRE_DistributedMatrixPilutSolver.c */ HYPRE_Int HYPRE_NewDistributedMatrixPilutSolver( MPI_Comm comm , HYPRE_DistributedMatrix matrix , HYPRE_DistributedMatrixPilutSolver *new_solver ); HYPRE_Int HYPRE_FreeDistributedMatrixPilutSolver( HYPRE_DistributedMatrixPilutSolver in_ptr ); diff --git a/src/distributed_ls/pilut/pilut_func_header b/src/distributed_ls/pilut/pilut_func_header new file mode 100755 index 0000000000..64da13c553 --- /dev/null +++ b/src/distributed_ls/pilut/pilut_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=pilut_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'pilut_func_header' to generate) ***/ +@ +# Generate copyright header +../../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PILUT_MUP_FUNC_HEADER +#define PILUT_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=pilut_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/distributed_ls/pilut/pilut_functions.saved b/src/distributed_ls/pilut/pilut_functions.saved new file mode 100644 index 0000000000..89472564df --- /dev/null +++ b/src/distributed_ls/pilut/pilut_functions.saved @@ -0,0 +1,81 @@ +hypre_GlobalSEMax +hypre_GlobalSEMaxDouble +hypre_GlobalSEMin +hypre_GlobalSEMinDouble +hypre_GlobalSESum +hypre_GlobalSESumDouble +hypre_CheckBounds +hypre_FP_Checksum +hypre_IDX_Checksum +hypre_INT_Checksum +hypre_LDU_Checksum +hypre_PrintLine +hypre_PrintVector +hypre_RMat_Checksum +hypre_tex_qsort +hypre_sdecsort_fast +hypre_sincsort_fast +HYPRE_DistributedMatrixPilutSolverGetMatrix +HYPRE_DistributedMatrixPilutSolverInitialize +HYPRE_DistributedMatrixPilutSolverSetDropTolerance +HYPRE_DistributedMatrixPilutSolverSetFactorRowSize +HYPRE_DistributedMatrixPilutSolverSetLogging +HYPRE_DistributedMatrixPilutSolverSetMatrix +HYPRE_DistributedMatrixPilutSolverSetMaxIts +HYPRE_DistributedMatrixPilutSolverSetNumLocalRow +HYPRE_DistributedMatrixPilutSolverSetup +HYPRE_DistributedMatrixPilutSolverSolve +HYPRE_FreeDistributedMatrixPilutSolver +HYPRE_NewDistributedMatrixPilutSolver +hypre_ComputeAdd2Nrms +hypre_ILUT +hypre_ComputeCommInfo +hypre_ComputeRmat +hypre_EraseMap +hypre_FactorLocal +hypre_FormDU +hypre_FormNRmat +hypre_Idx2PE +hypre_ParILUT +hypre_ParINIT +hypre_SecondDropSmall +hypre_SelectSet +hypre_SendFactoredRows +hypre_SeperateLU_byDIAG +hypre_SeperateLU_byMIS +hypre_UpdateL +hypre_errexit +hypre_fp_malloc +hypre_fp_malloc_init +hypre_idx_malloc +hypre_idx_malloc_init +hypre_memcpy_fp +hypre_memcpy_idx +hypre_memcpy_int +hypre_my_abort +hypre_mymalloc +hypre_p_daxbyz +hypre_p_daxpy +hypre_p_daxy +hypre_p_ddot +hypre_p_dnrm2 +hypre_p_vprintf +hypre_ExchangeStructuralUnions +hypre_FindStructuralUnion +hypre_SecondDrop +hypre_SecondDropUpdate +hypre_SelectInterior +hypre_SerILUT +hypre_LDUSolve +hypre_SetUpFactor +hypre_SetUpLUFactor +hypre_CompactIdx +hypre_DecKeyValueCmp +hypre_ExtractMinLR +hypre_IdxIncSort +hypre_PrintIdxVal +hypre_sasum +hypre_sdecsort +hypre_sincsort +hypre_SortKeyValueNodesDec +hypre_ValDecSort diff --git a/src/distributed_ls/pilut/pilut_mup_func.h b/src/distributed_ls/pilut/pilut_mup_func.h new file mode 100644 index 0000000000..28d1c4abff --- /dev/null +++ b/src/distributed_ls/pilut/pilut_mup_func.h @@ -0,0 +1,101 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'pilut_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PILUT_MUP_FUNC_HEADER +#define PILUT_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_GlobalSEMax HYPRE_MULTIPRECISION_FUNC ( hypre_GlobalSEMax ) +#define hypre_GlobalSEMaxDouble HYPRE_MULTIPRECISION_FUNC ( hypre_GlobalSEMaxDouble ) +#define hypre_GlobalSEMin HYPRE_MULTIPRECISION_FUNC ( hypre_GlobalSEMin ) +#define hypre_GlobalSEMinDouble HYPRE_MULTIPRECISION_FUNC ( hypre_GlobalSEMinDouble ) +#define hypre_GlobalSESum HYPRE_MULTIPRECISION_FUNC ( hypre_GlobalSESum ) +#define hypre_GlobalSESumDouble HYPRE_MULTIPRECISION_FUNC ( hypre_GlobalSESumDouble ) +#define hypre_CheckBounds HYPRE_MULTIPRECISION_FUNC ( hypre_CheckBounds ) +#define hypre_FP_Checksum HYPRE_MULTIPRECISION_FUNC ( hypre_FP_Checksum ) +#define hypre_IDX_Checksum HYPRE_MULTIPRECISION_FUNC ( hypre_IDX_Checksum ) +#define hypre_INT_Checksum HYPRE_MULTIPRECISION_FUNC ( hypre_INT_Checksum ) +#define hypre_LDU_Checksum HYPRE_MULTIPRECISION_FUNC ( hypre_LDU_Checksum ) +#define hypre_PrintLine HYPRE_MULTIPRECISION_FUNC ( hypre_PrintLine ) +#define hypre_PrintVector HYPRE_MULTIPRECISION_FUNC ( hypre_PrintVector ) +#define hypre_RMat_Checksum HYPRE_MULTIPRECISION_FUNC ( hypre_RMat_Checksum ) +#define hypre_tex_qsort HYPRE_MULTIPRECISION_FUNC ( hypre_tex_qsort ) +#define hypre_sdecsort_fast HYPRE_MULTIPRECISION_FUNC ( hypre_sdecsort_fast ) +#define hypre_sincsort_fast HYPRE_MULTIPRECISION_FUNC ( hypre_sincsort_fast ) +#define HYPRE_DistributedMatrixPilutSolverGetMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverGetMatrix ) +#define HYPRE_DistributedMatrixPilutSolverInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverInitialize ) +#define HYPRE_DistributedMatrixPilutSolverSetDropTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetDropTolerance ) +#define HYPRE_DistributedMatrixPilutSolverSetFactorRowSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetFactorRowSize ) +#define HYPRE_DistributedMatrixPilutSolverSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetLogging ) +#define HYPRE_DistributedMatrixPilutSolverSetMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetMatrix ) +#define HYPRE_DistributedMatrixPilutSolverSetMaxIts HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetMaxIts ) +#define HYPRE_DistributedMatrixPilutSolverSetNumLocalRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetNumLocalRow ) +#define HYPRE_DistributedMatrixPilutSolverSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSetup ) +#define HYPRE_DistributedMatrixPilutSolverSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPilutSolverSolve ) +#define HYPRE_FreeDistributedMatrixPilutSolver HYPRE_MULTIPRECISION_FUNC ( HYPRE_FreeDistributedMatrixPilutSolver ) +#define HYPRE_NewDistributedMatrixPilutSolver HYPRE_MULTIPRECISION_FUNC ( HYPRE_NewDistributedMatrixPilutSolver ) +#define hypre_ComputeAdd2Nrms HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeAdd2Nrms ) +#define hypre_ILUT HYPRE_MULTIPRECISION_FUNC ( hypre_ILUT ) +#define hypre_ComputeCommInfo HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeCommInfo ) +#define hypre_ComputeRmat HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeRmat ) +#define hypre_EraseMap HYPRE_MULTIPRECISION_FUNC ( hypre_EraseMap ) +#define hypre_FactorLocal HYPRE_MULTIPRECISION_FUNC ( hypre_FactorLocal ) +#define hypre_FormDU HYPRE_MULTIPRECISION_FUNC ( hypre_FormDU ) +#define hypre_FormNRmat HYPRE_MULTIPRECISION_FUNC ( hypre_FormNRmat ) +#define hypre_Idx2PE HYPRE_MULTIPRECISION_FUNC ( hypre_Idx2PE ) +#define hypre_ParILUT HYPRE_MULTIPRECISION_FUNC ( hypre_ParILUT ) +#define hypre_ParINIT HYPRE_MULTIPRECISION_FUNC ( hypre_ParINIT ) +#define hypre_SecondDropSmall HYPRE_MULTIPRECISION_FUNC ( hypre_SecondDropSmall ) +#define hypre_SelectSet HYPRE_MULTIPRECISION_FUNC ( hypre_SelectSet ) +#define hypre_SendFactoredRows HYPRE_MULTIPRECISION_FUNC ( hypre_SendFactoredRows ) +#define hypre_SeperateLU_byDIAG HYPRE_MULTIPRECISION_FUNC ( hypre_SeperateLU_byDIAG ) +#define hypre_SeperateLU_byMIS HYPRE_MULTIPRECISION_FUNC ( hypre_SeperateLU_byMIS ) +#define hypre_UpdateL HYPRE_MULTIPRECISION_FUNC ( hypre_UpdateL ) +#define hypre_errexit HYPRE_MULTIPRECISION_FUNC ( hypre_errexit ) +#define hypre_fp_malloc HYPRE_MULTIPRECISION_FUNC ( hypre_fp_malloc ) +#define hypre_fp_malloc_init HYPRE_MULTIPRECISION_FUNC ( hypre_fp_malloc_init ) +#define hypre_idx_malloc HYPRE_MULTIPRECISION_FUNC ( hypre_idx_malloc ) +#define hypre_idx_malloc_init HYPRE_MULTIPRECISION_FUNC ( hypre_idx_malloc_init ) +#define hypre_memcpy_fp HYPRE_MULTIPRECISION_FUNC ( hypre_memcpy_fp ) +#define hypre_memcpy_idx HYPRE_MULTIPRECISION_FUNC ( hypre_memcpy_idx ) +#define hypre_memcpy_int HYPRE_MULTIPRECISION_FUNC ( hypre_memcpy_int ) +#define hypre_my_abort HYPRE_MULTIPRECISION_FUNC ( hypre_my_abort ) +#define hypre_mymalloc HYPRE_MULTIPRECISION_FUNC ( hypre_mymalloc ) +#define hypre_p_daxbyz HYPRE_MULTIPRECISION_FUNC ( hypre_p_daxbyz ) +#define hypre_p_daxpy HYPRE_MULTIPRECISION_FUNC ( hypre_p_daxpy ) +#define hypre_p_daxy HYPRE_MULTIPRECISION_FUNC ( hypre_p_daxy ) +#define hypre_p_ddot HYPRE_MULTIPRECISION_FUNC ( hypre_p_ddot ) +#define hypre_p_dnrm2 HYPRE_MULTIPRECISION_FUNC ( hypre_p_dnrm2 ) +#define hypre_p_vprintf HYPRE_MULTIPRECISION_FUNC ( hypre_p_vprintf ) +#define hypre_ExchangeStructuralUnions HYPRE_MULTIPRECISION_FUNC ( hypre_ExchangeStructuralUnions ) +#define hypre_FindStructuralUnion HYPRE_MULTIPRECISION_FUNC ( hypre_FindStructuralUnion ) +#define hypre_SecondDrop HYPRE_MULTIPRECISION_FUNC ( hypre_SecondDrop ) +#define hypre_SecondDropUpdate HYPRE_MULTIPRECISION_FUNC ( hypre_SecondDropUpdate ) +#define hypre_SelectInterior HYPRE_MULTIPRECISION_FUNC ( hypre_SelectInterior ) +#define hypre_SerILUT HYPRE_MULTIPRECISION_FUNC ( hypre_SerILUT ) +#define hypre_LDUSolve HYPRE_MULTIPRECISION_FUNC ( hypre_LDUSolve ) +#define hypre_SetUpFactor HYPRE_MULTIPRECISION_FUNC ( hypre_SetUpFactor ) +#define hypre_SetUpLUFactor HYPRE_MULTIPRECISION_FUNC ( hypre_SetUpLUFactor ) +#define hypre_CompactIdx HYPRE_MULTIPRECISION_FUNC ( hypre_CompactIdx ) +#define hypre_DecKeyValueCmp HYPRE_MULTIPRECISION_FUNC ( hypre_DecKeyValueCmp ) +#define hypre_ExtractMinLR HYPRE_MULTIPRECISION_FUNC ( hypre_ExtractMinLR ) +#define hypre_IdxIncSort HYPRE_MULTIPRECISION_FUNC ( hypre_IdxIncSort ) +#define hypre_PrintIdxVal HYPRE_MULTIPRECISION_FUNC ( hypre_PrintIdxVal ) +#define hypre_sasum HYPRE_MULTIPRECISION_FUNC ( hypre_sasum ) +#define hypre_sdecsort HYPRE_MULTIPRECISION_FUNC ( hypre_sdecsort ) +#define hypre_sincsort HYPRE_MULTIPRECISION_FUNC ( hypre_sincsort ) +#define hypre_SortKeyValueNodesDec HYPRE_MULTIPRECISION_FUNC ( hypre_SortKeyValueNodesDec ) +#define hypre_ValDecSort HYPRE_MULTIPRECISION_FUNC ( hypre_ValDecSort ) + +#endif diff --git a/src/distributed_matrix/HYPRE_distributed_matrix_mv.h b/src/distributed_matrix/HYPRE_distributed_matrix_mv.h index bca2f96857..1f38570f72 100644 --- a/src/distributed_matrix/HYPRE_distributed_matrix_mv.h +++ b/src/distributed_matrix/HYPRE_distributed_matrix_mv.h @@ -17,6 +17,10 @@ typedef void *HYPRE_DistributedMatrix; +#ifdef HYPRE_MIXED_PRECISION +#include "distributed_matrix_mup_func.h" +#endif + /* HYPRE_distributed_matrix.c */ HYPRE_Int HYPRE_DistributedMatrixCreate (MPI_Comm context, HYPRE_DistributedMatrix *matrix ); HYPRE_Int HYPRE_DistributedMatrixDestroy (HYPRE_DistributedMatrix matrix ); diff --git a/src/distributed_matrix/Makefile b/src/distributed_matrix/Makefile index 7a16d60f10..ceea927863 100644 --- a/src/distributed_matrix/Makefile +++ b/src/distributed_matrix/Makefile @@ -24,13 +24,23 @@ HEADERS =\ HYPRE_distributed_matrix_types.h FILES =\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ distributed_matrix.c\ - HYPRE_distributed_matrix.c\ distributed_matrix_ISIS.c\ distributed_matrix_PETSc.c\ - distributed_matrix_parcsr.c - -OBJS = ${FILES:.c=.o} + distributed_matrix_parcsr.c\ + HYPRE_distributed_matrix.c + +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} +endif SONAME = libHYPRE_DistributedMatrix-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -40,22 +50,64 @@ SONAME = libHYPRE_DistributedMatrix-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_DistributedMatrix${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/distributed_matrix.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/distributed_matrix_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_DistributedMatrix${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/distributed_matrix.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/distributed_matrix_mup_func.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} +endif +# libHYPRE_DistributedMatrix.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/distributed_matrix/distributed_matrix_func_header b/src/distributed_matrix/distributed_matrix_func_header new file mode 100755 index 0000000000..32fced631b --- /dev/null +++ b/src/distributed_matrix/distributed_matrix_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=distributed_matrix_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'distributed_matrix_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef DISTRIBUTED_MATRIX_MUP_FUNC_HEADER +#define DISTRIBUTED_MATRIX_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=distributed_matrix_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/distributed_matrix/distributed_matrix_functions.saved b/src/distributed_matrix/distributed_matrix_functions.saved new file mode 100644 index 0000000000..804796ef88 --- /dev/null +++ b/src/distributed_matrix/distributed_matrix_functions.saved @@ -0,0 +1,54 @@ +hypre_FreeDistributedMatrixISIS +hypre_GetDistributedMatrixLocalRangeISIS +hypre_GetDistributedMatrixRowISIS +hypre_InitializeDistributedMatrixISIS +hypre_PrintDistributedMatrixISIS +hypre_RestoreDistributedMatrixRowISIS +hypre_DistributedMatrixAssemble +hypre_DistributedMatrixCreate +hypre_DistributedMatrixDestroy +hypre_DistributedMatrixGetAuxiliaryData +hypre_DistributedMatrixGetLocalRange +hypre_DistributedMatrixGetLocalStorage +hypre_DistributedMatrixGetLocalStorageType +hypre_DistributedMatrixGetRow +hypre_DistributedMatrixGetTranslator +hypre_DistributedMatrixInitialize +hypre_DistributedMatrixLimitedDestroy +hypre_DistributedMatrixPrint +hypre_DistributedMatrixRestoreRow +hypre_DistributedMatrixSetAuxiliaryData +hypre_DistributedMatrixSetLocalStorage +hypre_DistributedMatrixSetLocalStorageType +hypre_DistributedMatrixSetTranslator +hypre_DistributedMatrixDestroyParCSR +hypre_DistributedMatrixGetLocalRangeParCSR +hypre_DistributedMatrixGetRowParCSR +hypre_DistributedMatrixInitializeParCSR +hypre_DistributedMatrixPrintParCSR +hypre_DistributedMatrixRestoreRowParCSR +hypre_DistributedMatrixDestroyPETSc +hypre_DistributedMatrixGetLocalRangePETSc +hypre_DistributedMatrixGetRowPETSc +hypre_DistributedMatrixPrintPETSc +hypre_DistributedMatrixRestoreRowPETSc +HYPRE_DistributedMatrixAssemble +HYPRE_DistributedMatrixCreate +HYPRE_DistributedMatrixDestroy +HYPRE_DistributedMatrixGetAuxiliaryData +HYPRE_DistributedMatrixGetContext +HYPRE_DistributedMatrixGetDims +HYPRE_DistributedMatrixGetLocalRange +HYPRE_DistributedMatrixGetLocalStorage +HYPRE_DistributedMatrixGetLocalStorageType +HYPRE_DistributedMatrixGetRow +HYPRE_DistributedMatrixGetTranslator +HYPRE_DistributedMatrixInitialize +HYPRE_DistributedMatrixLimitedDestroy +HYPRE_DistributedMatrixPrint +HYPRE_DistributedMatrixRestoreRow +HYPRE_DistributedMatrixSetAuxiliaryData +HYPRE_DistributedMatrixSetDims +HYPRE_DistributedMatrixSetLocalStorage +HYPRE_DistributedMatrixSetLocalStorageType +HYPRE_DistributedMatrixSetTranslator diff --git a/src/distributed_matrix/distributed_matrix_mup_func.h b/src/distributed_matrix/distributed_matrix_mup_func.h new file mode 100644 index 0000000000..d8eff3fd34 --- /dev/null +++ b/src/distributed_matrix/distributed_matrix_mup_func.h @@ -0,0 +1,74 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'distributed_matrix_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef DISTRIBUTED_MATRIX_MUP_FUNC_HEADER +#define DISTRIBUTED_MATRIX_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_FreeDistributedMatrixISIS HYPRE_MULTIPRECISION_FUNC ( hypre_FreeDistributedMatrixISIS ) +#define hypre_GetDistributedMatrixLocalRangeISIS HYPRE_MULTIPRECISION_FUNC ( hypre_GetDistributedMatrixLocalRangeISIS ) +#define hypre_GetDistributedMatrixRowISIS HYPRE_MULTIPRECISION_FUNC ( hypre_GetDistributedMatrixRowISIS ) +#define hypre_InitializeDistributedMatrixISIS HYPRE_MULTIPRECISION_FUNC ( hypre_InitializeDistributedMatrixISIS ) +#define hypre_PrintDistributedMatrixISIS HYPRE_MULTIPRECISION_FUNC ( hypre_PrintDistributedMatrixISIS ) +#define hypre_RestoreDistributedMatrixRowISIS HYPRE_MULTIPRECISION_FUNC ( hypre_RestoreDistributedMatrixRowISIS ) +#define hypre_DistributedMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixAssemble ) +#define hypre_DistributedMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixCreate ) +#define hypre_DistributedMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixDestroy ) +#define hypre_DistributedMatrixGetAuxiliaryData HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetAuxiliaryData ) +#define hypre_DistributedMatrixGetLocalRange HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetLocalRange ) +#define hypre_DistributedMatrixGetLocalStorage HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetLocalStorage ) +#define hypre_DistributedMatrixGetLocalStorageType HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetLocalStorageType ) +#define hypre_DistributedMatrixGetRow HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetRow ) +#define hypre_DistributedMatrixGetTranslator HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetTranslator ) +#define hypre_DistributedMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixInitialize ) +#define hypre_DistributedMatrixLimitedDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixLimitedDestroy ) +#define hypre_DistributedMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixPrint ) +#define hypre_DistributedMatrixRestoreRow HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixRestoreRow ) +#define hypre_DistributedMatrixSetAuxiliaryData HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixSetAuxiliaryData ) +#define hypre_DistributedMatrixSetLocalStorage HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixSetLocalStorage ) +#define hypre_DistributedMatrixSetLocalStorageType HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixSetLocalStorageType ) +#define hypre_DistributedMatrixSetTranslator HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixSetTranslator ) +#define hypre_DistributedMatrixDestroyParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixDestroyParCSR ) +#define hypre_DistributedMatrixGetLocalRangeParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetLocalRangeParCSR ) +#define hypre_DistributedMatrixGetRowParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetRowParCSR ) +#define hypre_DistributedMatrixInitializeParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixInitializeParCSR ) +#define hypre_DistributedMatrixPrintParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixPrintParCSR ) +#define hypre_DistributedMatrixRestoreRowParCSR HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixRestoreRowParCSR ) +#define hypre_DistributedMatrixDestroyPETSc HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixDestroyPETSc ) +#define hypre_DistributedMatrixGetLocalRangePETSc HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetLocalRangePETSc ) +#define hypre_DistributedMatrixGetRowPETSc HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixGetRowPETSc ) +#define hypre_DistributedMatrixPrintPETSc HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixPrintPETSc ) +#define hypre_DistributedMatrixRestoreRowPETSc HYPRE_MULTIPRECISION_FUNC ( hypre_DistributedMatrixRestoreRowPETSc ) +#define HYPRE_DistributedMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixAssemble ) +#define HYPRE_DistributedMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixCreate ) +#define HYPRE_DistributedMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixDestroy ) +#define HYPRE_DistributedMatrixGetAuxiliaryData HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetAuxiliaryData ) +#define HYPRE_DistributedMatrixGetContext HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetContext ) +#define HYPRE_DistributedMatrixGetDims HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetDims ) +#define HYPRE_DistributedMatrixGetLocalRange HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetLocalRange ) +#define HYPRE_DistributedMatrixGetLocalStorage HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetLocalStorage ) +#define HYPRE_DistributedMatrixGetLocalStorageType HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetLocalStorageType ) +#define HYPRE_DistributedMatrixGetRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetRow ) +#define HYPRE_DistributedMatrixGetTranslator HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixGetTranslator ) +#define HYPRE_DistributedMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixInitialize ) +#define HYPRE_DistributedMatrixLimitedDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixLimitedDestroy ) +#define HYPRE_DistributedMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixPrint ) +#define HYPRE_DistributedMatrixRestoreRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixRestoreRow ) +#define HYPRE_DistributedMatrixSetAuxiliaryData HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixSetAuxiliaryData ) +#define HYPRE_DistributedMatrixSetDims HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixSetDims ) +#define HYPRE_DistributedMatrixSetLocalStorage HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixSetLocalStorage ) +#define HYPRE_DistributedMatrixSetLocalStorageType HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixSetLocalStorageType ) +#define HYPRE_DistributedMatrixSetTranslator HYPRE_MULTIPRECISION_FUNC ( HYPRE_DistributedMatrixSetTranslator ) + +#endif diff --git a/src/distributed_matrix/internal_protos.h b/src/distributed_matrix/internal_protos.h index 2ec5e20d99..ef77ae46e6 100644 --- a/src/distributed_matrix/internal_protos.h +++ b/src/distributed_matrix/internal_protos.h @@ -5,6 +5,10 @@ * SPDX-License-Identifier: (Apache-2.0 OR MIT) ******************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "distributed_matrix_mup_func.h" +#endif + /* HYPRE_distributed_matrix.c */ HYPRE_Int HYPRE_DistributedMatrixCreate (MPI_Comm context, HYPRE_DistributedMatrix *matrix ); HYPRE_Int HYPRE_DistributedMatrixDestroy (HYPRE_DistributedMatrix matrix ); diff --git a/src/krylov/HYPRE_bicgstab.c b/src/krylov/HYPRE_bicgstab.c index 923271fc86..0ea04472fd 100644 --- a/src/krylov/HYPRE_bicgstab.c +++ b/src/krylov/HYPRE_bicgstab.c @@ -145,6 +145,31 @@ HYPRE_BiCGSTABGetPrecond( HYPRE_Solver solver, (HYPRE_Solver *) precond_data_ptr ) ); } +/*-------------------------------------------------------------------------- + * HYPRE_BiCGSTABSetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_BiCGSTABSetPrecondMatrix( HYPRE_Solver solver, + HYPRE_Matrix precond_matrix) +{ + return( hypre_BiCGSTABSetPrecondMatrix( (void *) solver, + (void *) precond_matrix) ); +} + +/*-------------------------------------------------------------------------- + * HYPRE_BiCGSTABetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_BiCGSTABGetPrecondMatrix( HYPRE_Solver solver, + HYPRE_Matrix *precond_matrix_ptr ) +{ + return( hypre_BiCGSTABGetPrecondMatrix( (void *) solver, + (HYPRE_Matrix *) precond_matrix_ptr ) ); +} + + /*-------------------------------------------------------------------------- * HYPRE_BiCGSTABSetLogging *--------------------------------------------------------------------------*/ diff --git a/src/krylov/HYPRE_gmres.c b/src/krylov/HYPRE_gmres.c index 9612e466eb..7b8de6243b 100644 --- a/src/krylov/HYPRE_gmres.c +++ b/src/krylov/HYPRE_gmres.c @@ -239,6 +239,30 @@ HYPRE_GMRESGetPrecond( HYPRE_Solver solver, (HYPRE_Solver *) precond_data_ptr ) ); } +/*-------------------------------------------------------------------------- + * HYPRE_GMRESSetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_GMRESSetPrecondMatrix( HYPRE_Solver solver, + HYPRE_Matrix precond_matrix) +{ + return( hypre_GMRESSetPrecondMatrix( (void *) solver, + (void *) precond_matrix) ); +} + +/*-------------------------------------------------------------------------- + * HYPRE_GMRESGetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_GMRESGetPrecondMatrix( HYPRE_Solver solver, + HYPRE_Matrix *precond_matrix_ptr ) +{ + return( hypre_GMRESGetPrecondMatrix( (void *) solver, + (HYPRE_Matrix *) precond_matrix_ptr ) ); +} + /*-------------------------------------------------------------------------- * HYPRE_GMRESSetPrintLevel, HYPRE_GMRESGetPrintLevel *--------------------------------------------------------------------------*/ diff --git a/src/krylov/HYPRE_krylov.h b/src/krylov/HYPRE_krylov.h index 9b7cc3a2ed..9ad6fa9630 100644 --- a/src/krylov/HYPRE_krylov.h +++ b/src/krylov/HYPRE_krylov.h @@ -10,6 +10,10 @@ #include "HYPRE_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "krylov_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/krylov/HYPRE_lobpcg.c b/src/krylov/HYPRE_lobpcg.c index 870cdde309..223d257581 100644 --- a/src/krylov/HYPRE_lobpcg.c +++ b/src/krylov/HYPRE_lobpcg.c @@ -12,493 +12,11 @@ *****************************************************************************/ #include "_hypre_utilities.h" - #include "HYPRE_config.h" #include "HYPRE_lobpcg.h" #include "lobpcg.h" - #include "interpreter.h" -#include "HYPRE_MatvecFunctions.h" - -#include "_hypre_lapack.h" - -typedef struct -{ - HYPRE_Int (*Precond)(void*, void*, void*, void*); - HYPRE_Int (*PrecondSetup)(void*, void*, void*, void*); - -} hypre_LOBPCGPrecond; - -typedef struct -{ - lobpcg_Tolerance tolerance; - HYPRE_Int maxIterations; - HYPRE_Int verbosityLevel; - HYPRE_Int precondUsageMode; - HYPRE_Int iterationNumber; - utilities_FortranMatrix* eigenvaluesHistory; - utilities_FortranMatrix* residualNorms; - utilities_FortranMatrix* residualNormsHistory; - -} lobpcg_Data; - -#define lobpcg_tolerance(data) ((data).tolerance) -#define lobpcg_absoluteTolerance(data) ((data).tolerance.absolute) -#define lobpcg_relativeTolerance(data) ((data).tolerance.relative) -#define lobpcg_maxIterations(data) ((data).maxIterations) -#define lobpcg_verbosityLevel(data) ((data).verbosityLevel) -#define lobpcg_precondUsageMode(data) ((data).precondUsageMode) -#define lobpcg_iterationNumber(data) ((data).iterationNumber) -#define lobpcg_eigenvaluesHistory(data) ((data).eigenvaluesHistory) -#define lobpcg_residualNorms(data) ((data).residualNorms) -#define lobpcg_residualNormsHistory(data) ((data).residualNormsHistory) - -typedef struct -{ - - lobpcg_Data lobpcgData; - - mv_InterfaceInterpreter* interpreter; - - void* A; - void* matvecData; - void* precondData; - - void* B; - void* matvecDataB; - void* T; - void* matvecDataT; - - hypre_LOBPCGPrecond precondFunctions; - - HYPRE_MatvecFunctions* matvecFunctions; - -} hypre_LOBPCGData; - -static HYPRE_Int dsygv_interface (HYPRE_Int *itype, char *jobz, char *uplo, HYPRE_Int * - n, HYPRE_Real *a, HYPRE_Int *lda, HYPRE_Real *b, HYPRE_Int *ldb, - HYPRE_Real *w, HYPRE_Real *work, HYPRE_Int *lwork, HYPRE_Int *info) -{ - hypre_dsygv(itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, info); - return 0; -} - -static HYPRE_Int dpotrf_interface (const char *uplo, HYPRE_Int *n, HYPRE_Real *a, HYPRE_Int * - lda, HYPRE_Int *info) -{ - hypre_dpotrf(uplo, n, a, lda, info); - return 0; -} - - -HYPRE_Int -lobpcg_initialize( lobpcg_Data* data ) -{ - (data->tolerance).absolute = 1.0e-06; - (data->tolerance).relative = 1.0e-06; - (data->maxIterations) = 500; - (data->precondUsageMode) = 0; - (data->verbosityLevel) = 0; - (data->eigenvaluesHistory) = utilities_FortranMatrixCreate(); - (data->residualNorms) = utilities_FortranMatrixCreate(); - (data->residualNormsHistory) = utilities_FortranMatrixCreate(); - - return 0; -} - -HYPRE_Int -lobpcg_clean( lobpcg_Data* data ) -{ - utilities_FortranMatrixDestroy( data->eigenvaluesHistory ); - utilities_FortranMatrixDestroy( data->residualNorms ); - utilities_FortranMatrixDestroy( data->residualNormsHistory ); - - return 0; -} - -HYPRE_Int -hypre_LOBPCGDestroy( void *pcg_vdata ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - if (pcg_data) - { - HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; - if ( pcg_data->matvecData != NULL ) - { - (*(mv->MatvecDestroy))(pcg_data->matvecData); - pcg_data->matvecData = NULL; - } - if ( pcg_data->matvecDataB != NULL ) - { - (*(mv->MatvecDestroy))(pcg_data->matvecDataB); - pcg_data->matvecDataB = NULL; - } - if ( pcg_data->matvecDataT != NULL ) - { - (*(mv->MatvecDestroy))(pcg_data->matvecDataT); - pcg_data->matvecDataT = NULL; - } - - lobpcg_clean( &(pcg_data->lobpcgData) ); - - hypre_TFree( pcg_vdata, HYPRE_MEMORY_HOST); - } - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetup( void *pcg_vdata, void *A, void *b, void *x ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; - HYPRE_Int (*precond_setup)(void*, void*, void*, void*) = (pcg_data->precondFunctions).PrecondSetup; - void *precond_data = (pcg_data->precondData); - - (pcg_data->A) = A; - - if ( pcg_data->matvecData != NULL ) - { - (*(mv->MatvecDestroy))(pcg_data->matvecData); - } - (pcg_data->matvecData) = (*(mv->MatvecCreate))(A, x); - - if ( precond_setup != NULL ) - { - if ( pcg_data->T == NULL ) - { - precond_setup(precond_data, A, b, x); - } - else - { - precond_setup(precond_data, pcg_data->T, b, x); - } - } - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetupB( void *pcg_vdata, void *B, void *x ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; - - (pcg_data->B) = B; - - if ( pcg_data->matvecDataB != NULL ) - { - (*(mv->MatvecDestroy))(pcg_data -> matvecDataB); - } - (pcg_data->matvecDataB) = (*(mv->MatvecCreate))(B, x); - if ( B != NULL ) - { - (pcg_data->matvecDataB) = (*(mv->MatvecCreate))(B, x); - } - else - { - (pcg_data->matvecDataB) = NULL; - } - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetupT( void *pcg_vdata, void *T, void *x ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; - - (pcg_data -> T) = T; - - if ( pcg_data->matvecDataT != NULL ) - { - (*(mv->MatvecDestroy))(pcg_data->matvecDataT); - } - if ( T != NULL ) - { - (pcg_data->matvecDataT) = (*(mv->MatvecCreate))(T, x); - } - else - { - (pcg_data->matvecDataT) = NULL; - } - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetTol( void* pcg_vdata, HYPRE_Real tol ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - lobpcg_absoluteTolerance(pcg_data->lobpcgData) = tol; - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetRTol( void* pcg_vdata, HYPRE_Real tol ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*) pcg_vdata; - - lobpcg_relativeTolerance(pcg_data->lobpcgData) = tol; - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetMaxIter( void* pcg_vdata, HYPRE_Int max_iter ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - lobpcg_maxIterations(pcg_data->lobpcgData) = max_iter; - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetPrecondUsageMode( void* pcg_vdata, HYPRE_Int mode ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - lobpcg_precondUsageMode(pcg_data->lobpcgData) = mode; - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGGetPrecond( void *pcg_vdata, - HYPRE_Solver *precond_data_ptr ) -{ - hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - *precond_data_ptr = (HYPRE_Solver)(pcg_data -> precondData); - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetPrecond( void *pcg_vdata, - HYPRE_Int (*precond)(void*, void*, void*, void*), - HYPRE_Int (*precond_setup)(void*, void*, void*, void*), - void *precond_data ) -{ - hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - (pcg_data->precondFunctions).Precond = precond; - (pcg_data->precondFunctions).PrecondSetup = precond_setup; - (pcg_data->precondData) = precond_data; - - return hypre_error_flag; -} - -HYPRE_Int -hypre_LOBPCGSetPrintLevel( void *pcg_vdata, HYPRE_Int level ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; - - lobpcg_verbosityLevel(pcg_data->lobpcgData) = level; - - return hypre_error_flag; -} - -void -hypre_LOBPCGPreconditioner( void *vdata, void* x, void* y ) -{ - hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; - mv_InterfaceInterpreter* ii = data->interpreter; - HYPRE_Int (*precond)(void*, void*, void*, void*) = (data->precondFunctions).Precond; - - if ( precond == NULL ) - { - (*(ii->CopyVector))(x, y); - return; - } - - if ( lobpcg_precondUsageMode(data->lobpcgData) == 0 ) - { - (*(ii->ClearVector))(y); - } - else - { - (*(ii->CopyVector))(x, y); - } - - if ( data->T == NULL ) - { - precond(data->precondData, data->A, x, y); - } - else - { - precond(data->precondData, data->T, x, y); - } -} - -void -hypre_LOBPCGOperatorA( void *pcg_vdata, void* x, void* y ) -{ - hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; - HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; - void* matvec_data = (pcg_data -> matvecData); - - (*(mv->Matvec))(matvec_data, 1.0, pcg_data->A, x, 0.0, y); -} - -void -hypre_LOBPCGOperatorB( void *pcg_vdata, void* x, void* y ) -{ - hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; - mv_InterfaceInterpreter* ii = pcg_data->interpreter; - HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; - void* matvec_data = (pcg_data -> matvecDataB); - - if ( pcg_data->B == NULL ) - { - (*(ii->CopyVector))(x, y); - - /* a test */ - /* - (*(ii->ScaleVector))(2.0, y); - */ - - return; - } - - (*(mv->Matvec))(matvec_data, 1.0, pcg_data->B, x, 0.0, y); -} - -void -hypre_LOBPCGMultiPreconditioner( void *data, void * x, void* y ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)data; - mv_InterfaceInterpreter* ii = pcg_data->interpreter; - - ii->Eval( hypre_LOBPCGPreconditioner, data, x, y ); -} - -void -hypre_LOBPCGMultiOperatorA( void *data, void * x, void* y ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)data; - mv_InterfaceInterpreter* ii = pcg_data->interpreter; - - ii->Eval( hypre_LOBPCGOperatorA, data, x, y ); -} - -void -hypre_LOBPCGMultiOperatorB( void *data, void * x, void* y ) -{ - hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)data; - mv_InterfaceInterpreter* ii = pcg_data->interpreter; - - ii->Eval( hypre_LOBPCGOperatorB, data, x, y ); -} - -HYPRE_Int -hypre_LOBPCGSolve( void *vdata, - mv_MultiVectorPtr con, - mv_MultiVectorPtr vec, - HYPRE_Real* val ) -{ - hypre_LOBPCGData* data = (hypre_LOBPCGData*)vdata; - HYPRE_Int (*precond)(void*, void*, void*, void*) = (data->precondFunctions).Precond; - void* opB = data->B; - - void (*prec)( void*, void*, void* ); - void (*operatorA)( void*, void*, void* ); - void (*operatorB)( void*, void*, void* ); - - HYPRE_Int maxit = lobpcg_maxIterations(data->lobpcgData); - HYPRE_Int verb = lobpcg_verbosityLevel(data->lobpcgData); - - HYPRE_Int n = mv_MultiVectorWidth( vec ); - lobpcg_BLASLAPACKFunctions blap_fn; - - utilities_FortranMatrix* lambdaHistory; - utilities_FortranMatrix* residuals; - utilities_FortranMatrix* residualsHistory; - - lambdaHistory = lobpcg_eigenvaluesHistory(data->lobpcgData); - residuals = lobpcg_residualNorms(data->lobpcgData); - residualsHistory = lobpcg_residualNormsHistory(data->lobpcgData); - - utilities_FortranMatrixAllocateData( n, maxit + 1, lambdaHistory ); - utilities_FortranMatrixAllocateData( n, 1, residuals ); - utilities_FortranMatrixAllocateData( n, maxit + 1, residualsHistory ); - - if ( precond != NULL ) - { - prec = hypre_LOBPCGMultiPreconditioner; - } - else - { - prec = NULL; - } - - operatorA = hypre_LOBPCGMultiOperatorA; - - if ( opB != NULL ) - { - operatorB = hypre_LOBPCGMultiOperatorB; - } - else - { - operatorB = NULL; - } - - blap_fn.dsygv = dsygv_interface; - blap_fn.dpotrf = dpotrf_interface; - - lobpcg_solve( vec, - vdata, operatorA, - vdata, operatorB, - vdata, prec, - con, - blap_fn, - lobpcg_tolerance(data->lobpcgData), maxit, verb, - &(lobpcg_iterationNumber(data->lobpcgData)), - val, - utilities_FortranMatrixValues(lambdaHistory), - utilities_FortranMatrixGlobalHeight(lambdaHistory), - utilities_FortranMatrixValues(residuals), - utilities_FortranMatrixValues(residualsHistory), - utilities_FortranMatrixGlobalHeight(residualsHistory) - ); - - return hypre_error_flag; -} - -utilities_FortranMatrix* -hypre_LOBPCGResidualNorms( void *vdata ) -{ - hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; - return (lobpcg_residualNorms(data->lobpcgData)); -} - -utilities_FortranMatrix* -hypre_LOBPCGResidualNormsHistory( void *vdata ) -{ - hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; - return (lobpcg_residualNormsHistory(data->lobpcgData)); -} - -utilities_FortranMatrix* -hypre_LOBPCGEigenvaluesHistory( void *vdata ) -{ - hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; - return (lobpcg_eigenvaluesHistory(data->lobpcgData)); -} - -HYPRE_Int -hypre_LOBPCGIterations( void* vdata ) -{ - hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; - return (lobpcg_iterationNumber(data->lobpcgData)); -} - HYPRE_Int HYPRE_LOBPCGCreate( mv_InterfaceInterpreter* ii, HYPRE_MatvecFunctions* mv, @@ -641,16 +159,3 @@ HYPRE_LOBPCGIterations( HYPRE_Solver solver ) { return ( hypre_LOBPCGIterations( (void*)solver ) ); } - -void -lobpcg_MultiVectorByMultiVector( mv_MultiVectorPtr x, - mv_MultiVectorPtr y, - utilities_FortranMatrix* xy ) -{ - mv_MultiVectorByMultiVector( x, y, - utilities_FortranMatrixGlobalHeight( xy ), - utilities_FortranMatrixHeight( xy ), - utilities_FortranMatrixWidth( xy ), - utilities_FortranMatrixValues( xy ) ); -} - diff --git a/src/krylov/HYPRE_lobpcg.h b/src/krylov/HYPRE_lobpcg.h index fd70c3bdd3..8122ba69f8 100644 --- a/src/krylov/HYPRE_lobpcg.h +++ b/src/krylov/HYPRE_lobpcg.h @@ -155,14 +155,6 @@ HYPRE_LOBPCGEigenvaluesHistory(HYPRE_Solver solver); /* Returns the number of iterations performed by LOBPCG */ HYPRE_Int HYPRE_LOBPCGIterations(HYPRE_Solver solver); -void hypre_LOBPCGMultiOperatorB(void *data, - void *x, - void *y); - -void lobpcg_MultiVectorByMultiVector(mv_MultiVectorPtr x, - mv_MultiVectorPtr y, - utilities_FortranMatrix *xy); - /**@}*/ /*-------------------------------------------------------------------------- diff --git a/src/krylov/HYPRE_pcg.c b/src/krylov/HYPRE_pcg.c index 02b7e4b166..35d46b84d4 100644 --- a/src/krylov/HYPRE_pcg.c +++ b/src/krylov/HYPRE_pcg.c @@ -322,6 +322,30 @@ HYPRE_PCGGetPrecond( HYPRE_Solver solver, (HYPRE_Solver *) precond_data_ptr ) ); } +/*-------------------------------------------------------------------------- + * HYPRE_PCGSetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_PCGSetPrecondMatrix( HYPRE_Solver solver, + HYPRE_Matrix precond_matrix) +{ + return( hypre_PCGSetPrecondMatrix( (void *) solver, + (void *) precond_matrix) ); +} + +/*-------------------------------------------------------------------------- + * HYPRE_PCGetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_PCGGetPrecondMatrix( HYPRE_Solver solver, + HYPRE_Matrix *precond_matrix_ptr ) +{ + return( hypre_PCGGetPrecondMatrix( (void *) solver, + (HYPRE_Matrix *) precond_matrix_ptr ) ); +} + /*-------------------------------------------------------------------------- * HYPRE_PCGSetLogging, HYPRE_PCGGetLogging * SetLogging sets both the print and log level, for backwards compatibility. diff --git a/src/krylov/Makefile b/src/krylov/Makefile index d0847e21a0..27602e96f2 100644 --- a/src/krylov/Makefile +++ b/src/krylov/Makefile @@ -31,12 +31,19 @@ HEADERS =\ lobpcg.h FILES =\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ bicgstab.c\ cgnr.c\ gmres.c\ cogmres.c\ flexgmres.c\ lgmres.c\ + pcg.c\ + lobpcg.c\ HYPRE_bicgstab.c\ HYPRE_cgnr.c\ HYPRE_gmres.c\ @@ -44,11 +51,14 @@ FILES =\ HYPRE_lgmres.c\ HYPRE_flexgmres.c\ HYPRE_pcg.c\ - pcg.c\ - HYPRE_lobpcg.c\ - lobpcg.c + HYPRE_lobpcg.c -OBJS = ${FILES:.c=.o} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} +endif SONAME = libHYPRE_krylov-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -60,24 +70,69 @@ all: libHYPRE_krylov${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/krylov.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/lobpcg.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/krylov_mup_func.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/hypre_krylov_mup.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: all cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/krylov.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/lobpcg.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/krylov_mup_func.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/hypre_krylov_mup.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} +endif +# libHYPRE_krylov.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/krylov/bicgstab.c b/src/krylov/bicgstab.c index 42c5efc71e..b1fa9d9cff 100644 --- a/src/krylov/bicgstab.c +++ b/src/krylov/bicgstab.c @@ -79,6 +79,7 @@ hypre_BiCGSTABCreate( hypre_BiCGSTABFunctions * bicgstab_functions ) (bicgstab_data -> stop_crit) = 0; /* rel. residual norm */ (bicgstab_data -> a_tol) = 0.0; (bicgstab_data -> precond_data) = NULL; + (bicgstab_data -> precond_Mat) = NULL; (bicgstab_data -> logging) = 0; (bicgstab_data -> print_level) = 0; (bicgstab_data -> hybrid) = 0; @@ -151,9 +152,17 @@ hypre_BiCGSTABSetup( void *bicgstab_vdata, HYPRE_Int (*precond_setup)(void*, void*, void*, void*) = (bicgstab_functions -> precond_setup); void *precond_data = (bicgstab_data -> precond_data); + void *precond_Mat = (bicgstab_data -> precond_Mat); HYPRE_ANNOTATE_FUNC_BEGIN; + //set preconditioning matrix + if((bicgstab_data -> precond_Mat) == NULL) + { + (bicgstab_data -> precond_Mat) = A; + precond_Mat = (bicgstab_data -> precond_Mat) ; + } + (bicgstab_data -> A) = A; /*-------------------------------------------------- @@ -191,7 +200,7 @@ hypre_BiCGSTABSetup( void *bicgstab_vdata, (bicgstab_data -> matvec_data) = (*(bicgstab_functions->MatvecCreate))(A, x); - precond_setup(precond_data, A, b, x); + precond_setup(precond_data, precond_Mat, b, x); /*----------------------------------------------------- * Allocate space for log info @@ -231,12 +240,12 @@ hypre_BiCGSTABSolve(void *bicgstab_vdata, hypre_BiCGSTABData *bicgstab_data = (hypre_BiCGSTABData*)bicgstab_vdata; hypre_BiCGSTABFunctions *bicgstab_functions = bicgstab_data->functions; - HYPRE_Int min_iter = (bicgstab_data -> min_iter); - HYPRE_Int max_iter = (bicgstab_data -> max_iter); - HYPRE_Int stop_crit = (bicgstab_data -> stop_crit); - HYPRE_Int hybrid = (bicgstab_data -> hybrid); - HYPRE_Real r_tol = (bicgstab_data -> tol); - HYPRE_Real cf_tol = (bicgstab_data -> cf_tol); + HYPRE_Int min_iter = (bicgstab_data -> min_iter); + HYPRE_Int max_iter = (bicgstab_data -> max_iter); + HYPRE_Int stop_crit = (bicgstab_data -> stop_crit); + HYPRE_Int hybrid = (bicgstab_data -> hybrid); + HYPRE_Real r_tol = (bicgstab_data -> tol); + HYPRE_Real cf_tol = (bicgstab_data -> cf_tol); void *matvec_data = (bicgstab_data -> matvec_data); HYPRE_Real a_tol = (bicgstab_data -> a_tol); @@ -251,6 +260,8 @@ hypre_BiCGSTABSolve(void *bicgstab_vdata, HYPRE_Int (*precond)(void*, void*, void*, void*) = (bicgstab_functions -> precond); HYPRE_Int *precond_data = (HYPRE_Int*)(bicgstab_data -> precond_data); + // preconditioning matrix + void *precond_Mat = (bicgstab_data -> precond_Mat) ; /* logging variables */ HYPRE_Int logging = (bicgstab_data -> logging); @@ -450,7 +461,7 @@ hypre_BiCGSTABSolve(void *bicgstab_vdata, iter++; (*(bicgstab_functions->ClearVector))(v); - precond(precond_data, A, p, v); + precond(precond_data, precond_Mat, p, v); (*(bicgstab_functions->Matvec))(matvec_data, 1.0, A, v, 0.0, q); temp = (*(bicgstab_functions->InnerProd))(r0, q); if (hypre_abs(temp) >= epsmac) @@ -467,7 +478,7 @@ hypre_BiCGSTABSolve(void *bicgstab_vdata, (*(bicgstab_functions->Axpy))(alpha, v, x); (*(bicgstab_functions->Axpy))(-alpha, q, r); (*(bicgstab_functions->ClearVector))(v); - precond(precond_data, A, r, v); + precond(precond_data, precond_Mat, r, v); (*(bicgstab_functions->Matvec))(matvec_data, 1.0, A, v, 0.0, s); /* Handle case when gamma = 0.0/0.0 as 0.0 and not NAN */ gamma_numer = (*(bicgstab_functions->InnerProd))(r, s); @@ -702,6 +713,30 @@ hypre_BiCGSTABGetPrecond( void *bicgstab_vdata, return hypre_error_flag; } +/*-------------------------------------------------------------------------- + * hypre_BiCGSTABSetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_BiCGSTABSetPrecondMatrix( void *bicgstab_vdata, void *precond_matrix ) +{ + hypre_BiCGSTABData *bicgstab_data = (hypre_BiCGSTABData *)bicgstab_vdata; + (bicgstab_data -> precond_Mat) = precond_matrix; + return hypre_error_flag; +} + +/*-------------------------------------------------------------------------- + * hypre_BiCGSTABGetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_BiCGSTABGetPrecondMatrix( void *bicgstab_vdata, HYPRE_Matrix *precond_matrix_ptr ) +{ + hypre_BiCGSTABData *bicgstab_data = (hypre_BiCGSTABData *)bicgstab_vdata; + *precond_matrix_ptr = (HYPRE_Matrix)(bicgstab_data -> precond_Mat) ; + return hypre_error_flag; +} + /*-------------------------------------------------------------------------- * hypre_BiCGSTABSetLogging *--------------------------------------------------------------------------*/ diff --git a/src/krylov/bicgstab.h b/src/krylov/bicgstab.h index 4b0c07ce07..aeb6da8769 100644 --- a/src/krylov/bicgstab.h +++ b/src/krylov/bicgstab.h @@ -98,10 +98,10 @@ typedef struct HYPRE_Int stop_crit; HYPRE_Int converged; HYPRE_Int hybrid; - HYPRE_Real tol; - HYPRE_Real cf_tol; - HYPRE_Real rel_residual_norm; - HYPRE_Real a_tol; + HYPRE_Real tol; + HYPRE_Real cf_tol; + HYPRE_Real rel_residual_norm; + HYPRE_Real a_tol; void *A; @@ -112,8 +112,10 @@ typedef struct void *p; void *q; - void *matvec_data; + void *matvec_data; void *precond_data; + void *precond_data; + void *precond_Mat; hypre_BiCGSTABFunctions * functions; diff --git a/src/krylov/gmres.c b/src/krylov/gmres.c index dec837945e..d1a2434ddf 100644 --- a/src/krylov/gmres.c +++ b/src/krylov/gmres.c @@ -92,6 +92,7 @@ hypre_GMRESCreate( hypre_GMRESFunctions *gmres_functions ) (gmres_data -> converged) = 0; (gmres_data -> hybrid) = 0; (gmres_data -> precond_data) = NULL; + (gmres_data -> precond_Mat) = NULL; (gmres_data -> print_level) = 0; (gmres_data -> logging) = 0; (gmres_data -> p) = NULL; @@ -196,18 +197,26 @@ hypre_GMRESSetup( void *gmres_vdata, HYPRE_Int k_dim = (gmres_data -> k_dim); HYPRE_Int max_iter = (gmres_data -> max_iter); void *precond_data = (gmres_data -> precond_data); + void *precond_Mat = (gmres_data -> precond_Mat); HYPRE_Int rel_change = (gmres_data -> rel_change); HYPRE_Int (*precond_setup)(void*, void*, void*, void*) = (gmres_functions->precond_setup); HYPRE_ANNOTATE_FUNC_BEGIN; + //set preconditioning matrix + if((gmres_data -> precond_Mat) == NULL) + { + (gmres_data -> precond_Mat) = A; + precond_Mat = (gmres_data -> precond_Mat) ; + } + (gmres_data -> A) = A; /*-------------------------------------------------- * The arguments for NewVector are important to * maintain consistency between the setup and - * compute phases of matvec and the preconditioner. + * ecompute phases of matvec and the preconditioner. *--------------------------------------------------*/ if ((gmres_data -> p) == NULL) @@ -238,7 +247,7 @@ hypre_GMRESSetup( void *gmres_vdata, (gmres_data -> matvec_data) = (*(gmres_functions->MatvecCreate))(A, x); } - precond_setup(precond_data, A, b, x); + precond_setup(precond_data, precond_Mat, b, x); /*----------------------------------------------------- * Allocate space for log info @@ -297,7 +306,9 @@ hypre_GMRESSolve(void *gmres_vdata, void **p = (gmres_data -> p); HYPRE_Int (*precond)(void*, void*, void*, void*) = (gmres_functions -> precond); - HYPRE_Int *precond_data = (HYPRE_Int*) (gmres_data -> precond_data); + void *precond_data = (gmres_data -> precond_data); + // preconditioning matrix + void *precond_Mat = (gmres_data -> precond_Mat) ; HYPRE_Int print_level = (gmres_data -> print_level); HYPRE_Int logging = (gmres_data -> logging); @@ -536,7 +547,7 @@ hypre_GMRESSolve(void *gmres_vdata, i++; iter++; (*(gmres_functions->ClearVector))(r); - precond(precond_data, A, p[i - 1], r); + precond(precond_data, precond_Mat, p[i - 1], r); (*(gmres_functions->Matvec))(matvec_data, 1.0, A, r, 0.0, p[i]); /* modified Gram_Schmidt */ for (j = 0; j < i; j++) @@ -659,7 +670,7 @@ hypre_GMRESSolve(void *gmres_vdata, } (*(gmres_functions->ClearVector))(r); /* find correction (in r) */ - precond(precond_data, A, w, r); + precond(precond_data, precond_Mat, w, r); /* copy current solution (x) to w (don't want to over-write x)*/ (*(gmres_functions->CopyVector))(x, w); @@ -703,7 +714,7 @@ hypre_GMRESSolve(void *gmres_vdata, (*(gmres_functions->Axpy))(rs_2[i - 1], p[i - 1], w); (*(gmres_functions->ClearVector))(r); /* apply the preconditioner */ - precond(precond_data, A, w, r); + precond(precond_data, precond_Mat, w, r); /* now r contains x_i - x_i-1 */ } /* find the norm of x_i - x_i-1 */ @@ -758,7 +769,7 @@ hypre_GMRESSolve(void *gmres_vdata, (*(gmres_functions->ClearVector))(r); /* find correction (in r) */ - precond(precond_data, A, w, r); + precond(precond_data, precond_Mat, w, r); /* update current solution x (in x) */ (*(gmres_functions->Axpy))(1.0, r, x); @@ -797,7 +808,7 @@ hypre_GMRESSolve(void *gmres_vdata, (*(gmres_functions->Axpy))(rs[i - 1], p[i - 1], w); (*(gmres_functions->ClearVector))(r); /* apply the preconditioner */ - precond(precond_data, A, w, r); + precond(precond_data, precond_Mat, w, r); /* find the norm of x_i - x_i-1 */ w_norm = hypre_sqrt( (*(gmres_functions->InnerProd))(r, r) ); relative_error = w_norm / x_norm; @@ -923,7 +934,6 @@ hypre_GMRESSolve(void *gmres_vdata, return hypre_error_flag; } - /*-------------------------------------------------------------------------- * hypre_GMRESSetKDim, hypre_GMRESGetKDim *--------------------------------------------------------------------------*/ @@ -952,7 +962,6 @@ hypre_GMRESGetKDim( void *gmres_vdata, return hypre_error_flag; } - /*-------------------------------------------------------------------------- * hypre_GMRESSetTol, hypre_GMRESGetTol *--------------------------------------------------------------------------*/ @@ -1146,8 +1155,8 @@ hypre_GMRESGetSkipRealResidualCheck( void *gmres_vdata, } /*-------------------------------------------------------------------------- - * hypre_GMRESSetStopCrit, hypre_GMRESGetStopCrit - * + * hypre_GMRESSetStopCrit, hypre_GMRESGetStopCrit + * * OBSOLETE *--------------------------------------------------------------------------*/ @@ -1196,6 +1205,22 @@ hypre_GMRESSetPrecond( void *gmres_vdata, return hypre_error_flag; } + +/*-------------------------------------------------------------------------- + * hypre_precond_setup)(void*, void*, void*, void*), + void *precond_data ) +{ + hypre_GMRESData *gmres_data = (hypre_GMRESData *)gmres_vdata; + hypre_GMRESFunctions *gmres_functions = gmres_data->functions; + + + (gmres_functions -> precond) = precond; + (gmres_functions -> precond_setup) = precond_setup; + (gmres_data -> precond_data) = precond_data; + + return hypre_error_flag; +} + /*-------------------------------------------------------------------------- * hypre_GMRESGetPrecond *--------------------------------------------------------------------------*/ @@ -1212,6 +1237,30 @@ hypre_GMRESGetPrecond( void *gmres_vdata, return hypre_error_flag; } +/*-------------------------------------------------------------------------- + * hypre_GMRESSetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_GMRESSetPrecondMatrix( void *gmres_vdata, void *precond_matrix ) +{ + hypre_GMRESData *gmres_data = (hypre_GMRESData *)gmres_vdata; + (gmres_data -> precond_Mat) = precond_matrix; + return hypre_error_flag; +} + +/*-------------------------------------------------------------------------- + * hypre_GMRESGetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_GMRESGetPrecondMatrix( void *gmres_vdata, HYPRE_Matrix *precond_matrix_ptr ) +{ + hypre_GMRESData *gmres_data = (hypre_GMRESData *)gmres_vdata; + *precond_matrix_ptr = (HYPRE_Matrix)(gmres_data -> precond_Mat) ; + return hypre_error_flag; +} + /*-------------------------------------------------------------------------- * hypre_GMRESSetPrintLevel, hypre_GMRESGetPrintLevel *--------------------------------------------------------------------------*/ diff --git a/src/krylov/gmres.h b/src/krylov/gmres.h index 3a77eb4408..088bc2b2aa 100644 --- a/src/krylov/gmres.h +++ b/src/krylov/gmres.h @@ -97,6 +97,7 @@ typedef struct void *matvec_data; void *precond_data; + void *precond_Mat; hypre_GMRESFunctions * functions; diff --git a/src/krylov/hypre_krylov_mup.h b/src/krylov/hypre_krylov_mup.h new file mode 100644 index 0000000000..9dd912abdf --- /dev/null +++ b/src/krylov/hypre_krylov_mup.h @@ -0,0 +1,1704 @@ + +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file of multiprecision function prototypes. + * This is needed for mixed-precision algorithm development. + *****************************************************************************/ + +#ifndef HYPRE_KRYLOV_MUP_HEADER +#define HYPRE_KRYLOV_MUP_HEADER + +#include "krylov.h" + +#if defined (HYPRE_MIXED_PRECISION) + +void *hypre_BiCGSTABCreate_flt( hypre_BiCGSTABFunctions *bicgstab_functions ); +void *hypre_BiCGSTABCreate_dbl( hypre_BiCGSTABFunctions *bicgstab_functions ); +void *hypre_BiCGSTABCreate_long_dbl( hypre_BiCGSTABFunctions *bicgstab_functions ); +HYPRE_Int hypre_BiCGSTABDestroy_flt ( void *bicgstab_vdata ); +HYPRE_Int hypre_BiCGSTABDestroy_dbl ( void *bicgstab_vdata ); +HYPRE_Int hypre_BiCGSTABDestroy_long_dbl ( void *bicgstab_vdata ); +hypre_BiCGSTABFunctions *hypre_BiCGSTABFunctionsCreate_flt( + void *(*CreateVector) ( void *vvector ), + HYPRE_Int (*DestroyVector) ( void *vvector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_BiCGSTABFunctions *hypre_BiCGSTABFunctionsCreate_dbl( + void *(*CreateVector) ( void *vvector ), + HYPRE_Int (*DestroyVector) ( void *vvector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_BiCGSTABFunctions *hypre_BiCGSTABFunctionsCreate_long_dbl( + void *(*CreateVector) ( void *vvector ), + HYPRE_Int (*DestroyVector) ( void *vvector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_BiCGSTABGetConverged_flt ( void *bicgstab_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_BiCGSTABGetConverged_dbl ( void *bicgstab_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_BiCGSTABGetConverged_long_dbl ( void *bicgstab_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_BiCGSTABGetFinalRelativeResidualNorm_flt ( void *bicgstab_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_BiCGSTABGetFinalRelativeResidualNorm_dbl ( void *bicgstab_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_BiCGSTABGetFinalRelativeResidualNorm_long_dbl ( void *bicgstab_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_BiCGSTABGetNumIterations_flt ( void *bicgstab_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_BiCGSTABGetNumIterations_dbl ( void *bicgstab_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_BiCGSTABGetNumIterations_long_dbl ( void *bicgstab_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_BiCGSTABGetPrecond_flt ( void *bicgstab_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_BiCGSTABGetPrecond_dbl ( void *bicgstab_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_BiCGSTABGetPrecond_long_dbl ( void *bicgstab_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_BiCGSTABSetPrecondMatrix_flt( void *bicgstab_vdata, void *precond_matrix ); +HYPRE_Int hypre_BiCGSTABSetPrecondMatrix_dbl( void *bicgstab_vdata, void *precond_matrix ); +HYPRE_Int hypre_BiCGSTABSetPrecondMatrix_long_dbl( void *bicgstab_vdata, void *precond_matrix ); +HYPRE_Int hypre_BiCGSTABGetPrecondMatrix_flt( void *bicgstab_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_BiCGSTABGetPrecondMatrix_dbl( void *bicgstab_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_BiCGSTABGetPrecondMatrix_long_dbl( void *bicgstab_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_BiCGSTABGetResidual_flt ( void *bicgstab_vdata, void **residual ); +HYPRE_Int hypre_BiCGSTABGetResidual_dbl ( void *bicgstab_vdata, void **residual ); +HYPRE_Int hypre_BiCGSTABGetResidual_long_dbl ( void *bicgstab_vdata, void **residual ); +HYPRE_Int hypre_BiCGSTABSetAbsoluteTol_flt ( void *bicgstab_vdata, hypre_float a_tol ); +HYPRE_Int hypre_BiCGSTABSetAbsoluteTol_dbl ( void *bicgstab_vdata, hypre_double a_tol ); +HYPRE_Int hypre_BiCGSTABSetAbsoluteTol_long_dbl ( void *bicgstab_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_BiCGSTABSetConvergenceFactorTol_flt ( void *bicgstab_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_BiCGSTABSetConvergenceFactorTol_dbl ( void *bicgstab_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_BiCGSTABSetConvergenceFactorTol_long_dbl ( void *bicgstab_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_BiCGSTABSetHybrid_flt ( void *bicgstab_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_BiCGSTABSetHybrid_dbl ( void *bicgstab_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_BiCGSTABSetHybrid_long_dbl ( void *bicgstab_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_BiCGSTABSetLogging_flt ( void *bicgstab_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_BiCGSTABSetLogging_dbl ( void *bicgstab_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_BiCGSTABSetLogging_long_dbl ( void *bicgstab_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_BiCGSTABSetMaxIter_flt ( void *bicgstab_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_BiCGSTABSetMaxIter_dbl ( void *bicgstab_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_BiCGSTABSetMaxIter_long_dbl ( void *bicgstab_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_BiCGSTABSetMinIter_flt ( void *bicgstab_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_BiCGSTABSetMinIter_dbl ( void *bicgstab_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_BiCGSTABSetMinIter_long_dbl ( void *bicgstab_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_BiCGSTABSetPrecond_flt ( void *bicgstab_vdata, HYPRE_Int (*precond )(void*, void*, + void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_BiCGSTABSetPrecond_dbl ( void *bicgstab_vdata, HYPRE_Int (*precond )(void*, void*, + void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_BiCGSTABSetPrecond_long_dbl ( void *bicgstab_vdata, HYPRE_Int (*precond )(void*, void*, + void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_BiCGSTABSetPrintLevel_flt ( void *bicgstab_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_BiCGSTABSetPrintLevel_dbl ( void *bicgstab_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_BiCGSTABSetPrintLevel_long_dbl ( void *bicgstab_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_BiCGSTABSetStopCrit_flt ( void *bicgstab_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_BiCGSTABSetStopCrit_dbl ( void *bicgstab_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_BiCGSTABSetStopCrit_long_dbl ( void *bicgstab_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_BiCGSTABSetTol_flt ( void *bicgstab_vdata, hypre_float tol ); +HYPRE_Int hypre_BiCGSTABSetTol_dbl ( void *bicgstab_vdata, hypre_double tol ); +HYPRE_Int hypre_BiCGSTABSetTol_long_dbl ( void *bicgstab_vdata, hypre_long_double tol ); +HYPRE_Int hypre_BiCGSTABSetup_flt ( void *bicgstab_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_BiCGSTABSetup_dbl ( void *bicgstab_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_BiCGSTABSetup_long_dbl ( void *bicgstab_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_BiCGSTABSolve_flt ( void *bicgstab_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_BiCGSTABSolve_dbl ( void *bicgstab_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_BiCGSTABSolve_long_dbl ( void *bicgstab_vdata, void *A, void *b, void *x ); +void *hypre_CGNRCreate_flt( hypre_CGNRFunctions *cgnr_functions ); +void *hypre_CGNRCreate_dbl( hypre_CGNRFunctions *cgnr_functions ); +void *hypre_CGNRCreate_long_dbl( hypre_CGNRFunctions *cgnr_functions ); +HYPRE_Int hypre_CGNRDestroy_flt ( void *cgnr_vdata ); +HYPRE_Int hypre_CGNRDestroy_dbl ( void *cgnr_vdata ); +HYPRE_Int hypre_CGNRDestroy_long_dbl ( void *cgnr_vdata ); +hypre_CGNRFunctions *hypre_CGNRFunctionsCreate_flt( + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecT) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*PrecondT) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_CGNRFunctions *hypre_CGNRFunctionsCreate_dbl( + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecT) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*PrecondT) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_CGNRFunctions *hypre_CGNRFunctionsCreate_long_dbl( + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecT) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*PrecondT) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_CGNRGetFinalRelativeResidualNorm_flt ( void *cgnr_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_CGNRGetFinalRelativeResidualNorm_dbl ( void *cgnr_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_CGNRGetFinalRelativeResidualNorm_long_dbl ( void *cgnr_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_CGNRGetNumIterations_flt ( void *cgnr_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_CGNRGetNumIterations_dbl ( void *cgnr_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_CGNRGetNumIterations_long_dbl ( void *cgnr_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_CGNRGetPrecond_flt ( void *cgnr_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_CGNRGetPrecond_dbl ( void *cgnr_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_CGNRGetPrecond_long_dbl ( void *cgnr_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_CGNRSetLogging_flt ( void *cgnr_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_CGNRSetLogging_dbl ( void *cgnr_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_CGNRSetLogging_long_dbl ( void *cgnr_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_CGNRSetMaxIter_flt ( void *cgnr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_CGNRSetMaxIter_dbl ( void *cgnr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_CGNRSetMaxIter_long_dbl ( void *cgnr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_CGNRSetMinIter_flt ( void *cgnr_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_CGNRSetMinIter_dbl ( void *cgnr_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_CGNRSetMinIter_long_dbl ( void *cgnr_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_CGNRSetPrecond_flt ( void *cgnr_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), + HYPRE_Int (*precondT )(void*, void*, void*, void*), HYPRE_Int (*precond_setup )(void*, void*, void*, + void*), void *precond_data ); +HYPRE_Int hypre_CGNRSetPrecond_dbl ( void *cgnr_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), + HYPRE_Int (*precondT )(void*, void*, void*, void*), HYPRE_Int (*precond_setup )(void*, void*, void*, + void*), void *precond_data ); +HYPRE_Int hypre_CGNRSetPrecond_long_dbl ( void *cgnr_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), + HYPRE_Int (*precondT )(void*, void*, void*, void*), HYPRE_Int (*precond_setup )(void*, void*, void*, + void*), void *precond_data ); +HYPRE_Int hypre_CGNRSetStopCrit_flt ( void *cgnr_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_CGNRSetStopCrit_dbl ( void *cgnr_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_CGNRSetStopCrit_long_dbl ( void *cgnr_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_CGNRSetTol_flt ( void *cgnr_vdata, hypre_float tol ); +HYPRE_Int hypre_CGNRSetTol_dbl ( void *cgnr_vdata, hypre_double tol ); +HYPRE_Int hypre_CGNRSetTol_long_dbl ( void *cgnr_vdata, hypre_long_double tol ); +HYPRE_Int hypre_CGNRSetup_flt ( void *cgnr_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_CGNRSetup_dbl ( void *cgnr_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_CGNRSetup_long_dbl ( void *cgnr_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_CGNRSolve_flt ( void *cgnr_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_CGNRSolve_dbl ( void *cgnr_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_CGNRSolve_long_dbl ( void *cgnr_vdata, void *A, void *b, void *x ); +void *hypre_COGMRESCreate_flt( hypre_COGMRESFunctions *gmres_functions ); +void *hypre_COGMRESCreate_dbl( hypre_COGMRESFunctions *gmres_functions ); +void *hypre_COGMRESCreate_long_dbl( hypre_COGMRESFunctions *gmres_functions ); +HYPRE_Int hypre_COGMRESDestroy_flt ( void *gmres_vdata ); +HYPRE_Int hypre_COGMRESDestroy_dbl ( void *gmres_vdata ); +HYPRE_Int hypre_COGMRESDestroy_long_dbl ( void *gmres_vdata ); +hypre_COGMRESFunctions *hypre_COGMRESFunctionsCreate_flt( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, void *x, + hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*MassInnerProd) ( void *x, void **p, HYPRE_Int k, HYPRE_Int unroll, void *result), + HYPRE_Int (*MassDotpTwo) ( void *x, void *y, void **p, HYPRE_Int k, HYPRE_Int unroll, + void *result_x, void *result_y), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*MassAxpy) ( hypre_float *alpha, void **x, void *y, HYPRE_Int k, + HYPRE_Int unroll), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_COGMRESFunctions *hypre_COGMRESFunctionsCreate_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, void *x, + hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*MassInnerProd) ( void *x, void **p, HYPRE_Int k, HYPRE_Int unroll, void *result), + HYPRE_Int (*MassDotpTwo) ( void *x, void *y, void **p, HYPRE_Int k, HYPRE_Int unroll, + void *result_x, void *result_y), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*MassAxpy) ( hypre_double *alpha, void **x, void *y, HYPRE_Int k, + HYPRE_Int unroll), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_COGMRESFunctions *hypre_COGMRESFunctionsCreate_long_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, void *x, + hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*MassInnerProd) ( void *x, void **p, HYPRE_Int k, HYPRE_Int unroll, void *result), + HYPRE_Int (*MassDotpTwo) ( void *x, void *y, void **p, HYPRE_Int k, HYPRE_Int unroll, + void *result_x, void *result_y), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*MassAxpy) ( hypre_long_double *alpha, void **x, void *y, HYPRE_Int k, + HYPRE_Int unroll), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_COGMRESGetAbsoluteTol_flt ( void *gmres_vdata, hypre_float *a_tol ); +HYPRE_Int hypre_COGMRESGetAbsoluteTol_dbl ( void *gmres_vdata, hypre_double *a_tol ); +HYPRE_Int hypre_COGMRESGetAbsoluteTol_long_dbl ( void *gmres_vdata, hypre_long_double *a_tol ); +HYPRE_Int hypre_COGMRESGetCGS_flt ( void *gmres_vdata, HYPRE_Int *cgs ); +HYPRE_Int hypre_COGMRESGetCGS_dbl ( void *gmres_vdata, HYPRE_Int *cgs ); +HYPRE_Int hypre_COGMRESGetCGS_long_dbl ( void *gmres_vdata, HYPRE_Int *cgs ); +HYPRE_Int hypre_COGMRESGetConverged_flt ( void *gmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_COGMRESGetConverged_dbl ( void *gmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_COGMRESGetConverged_long_dbl ( void *gmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_COGMRESGetConvergenceFactorTol_flt ( void *gmres_vdata, hypre_float *cf_tol ); +HYPRE_Int hypre_COGMRESGetConvergenceFactorTol_dbl ( void *gmres_vdata, hypre_double *cf_tol ); +HYPRE_Int hypre_COGMRESGetConvergenceFactorTol_long_dbl ( void *gmres_vdata, hypre_long_double *cf_tol ); +HYPRE_Int hypre_COGMRESGetFinalRelativeResidualNorm_flt ( void *gmres_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_COGMRESGetFinalRelativeResidualNorm_dbl ( void *gmres_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_COGMRESGetFinalRelativeResidualNorm_long_dbl ( void *gmres_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_COGMRESGetKDim_flt ( void *gmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_COGMRESGetKDim_dbl ( void *gmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_COGMRESGetKDim_long_dbl ( void *gmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_COGMRESGetLogging_flt ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_COGMRESGetLogging_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_COGMRESGetLogging_long_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_COGMRESGetMaxIter_flt ( void *gmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_COGMRESGetMaxIter_dbl ( void *gmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_COGMRESGetMaxIter_long_dbl ( void *gmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_COGMRESGetMinIter_flt ( void *gmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_COGMRESGetMinIter_dbl ( void *gmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_COGMRESGetMinIter_long_dbl ( void *gmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_COGMRESGetNumIterations_flt ( void *gmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_COGMRESGetNumIterations_dbl ( void *gmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_COGMRESGetNumIterations_long_dbl ( void *gmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_COGMRESGetPrecond_flt ( void *gmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_COGMRESGetPrecond_dbl ( void *gmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_COGMRESGetPrecond_long_dbl ( void *gmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_COGMRESGetPrintLevel_flt ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_COGMRESGetPrintLevel_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_COGMRESGetPrintLevel_long_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_COGMRESGetRelChange_flt ( void *gmres_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_COGMRESGetRelChange_dbl ( void *gmres_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_COGMRESGetRelChange_long_dbl ( void *gmres_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_COGMRESGetResidual_flt ( void *gmres_vdata, void **residual ); +HYPRE_Int hypre_COGMRESGetResidual_dbl ( void *gmres_vdata, void **residual ); +HYPRE_Int hypre_COGMRESGetResidual_long_dbl ( void *gmres_vdata, void **residual ); +HYPRE_Int hypre_COGMRESGetSkipRealResidualCheck_flt ( void *gmres_vdata, HYPRE_Int *skip_real_r_check ); +HYPRE_Int hypre_COGMRESGetSkipRealResidualCheck_dbl ( void *gmres_vdata, HYPRE_Int *skip_real_r_check ); +HYPRE_Int hypre_COGMRESGetSkipRealResidualCheck_long_dbl ( void *gmres_vdata, HYPRE_Int *skip_real_r_check ); +HYPRE_Int hypre_COGMRESGetTol_flt ( void *gmres_vdata, hypre_float *tol ); +HYPRE_Int hypre_COGMRESGetTol_dbl ( void *gmres_vdata, hypre_double *tol ); +HYPRE_Int hypre_COGMRESGetTol_long_dbl ( void *gmres_vdata, hypre_long_double *tol ); +HYPRE_Int hypre_COGMRESGetUnroll_flt ( void *gmres_vdata, HYPRE_Int *unroll ); +HYPRE_Int hypre_COGMRESGetUnroll_dbl ( void *gmres_vdata, HYPRE_Int *unroll ); +HYPRE_Int hypre_COGMRESGetUnroll_long_dbl ( void *gmres_vdata, HYPRE_Int *unroll ); +HYPRE_Int hypre_COGMRESSetAbsoluteTol_flt ( void *gmres_vdata, hypre_float a_tol ); +HYPRE_Int hypre_COGMRESSetAbsoluteTol_dbl ( void *gmres_vdata, hypre_double a_tol ); +HYPRE_Int hypre_COGMRESSetAbsoluteTol_long_dbl ( void *gmres_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_COGMRESSetCGS_flt ( void *gmres_vdata, HYPRE_Int cgs ); +HYPRE_Int hypre_COGMRESSetCGS_dbl ( void *gmres_vdata, HYPRE_Int cgs ); +HYPRE_Int hypre_COGMRESSetCGS_long_dbl ( void *gmres_vdata, HYPRE_Int cgs ); +HYPRE_Int hypre_COGMRESSetConvergenceFactorTol_flt ( void *gmres_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_COGMRESSetConvergenceFactorTol_dbl ( void *gmres_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_COGMRESSetConvergenceFactorTol_long_dbl ( void *gmres_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_COGMRESSetKDim_flt ( void *gmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_COGMRESSetKDim_dbl ( void *gmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_COGMRESSetKDim_long_dbl ( void *gmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_COGMRESSetLogging_flt ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_COGMRESSetLogging_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_COGMRESSetLogging_long_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_COGMRESSetMaxIter_flt ( void *gmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_COGMRESSetMaxIter_dbl ( void *gmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_COGMRESSetMaxIter_long_dbl ( void *gmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_COGMRESSetMinIter_flt ( void *gmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_COGMRESSetMinIter_dbl ( void *gmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_COGMRESSetMinIter_long_dbl ( void *gmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_COGMRESSetModifyPC_flt ( void *fgmres_vdata, HYPRE_Int (*modify_pc )(void *precond_data, + HYPRE_Int iteration, hypre_float rel_residual_norm)); +HYPRE_Int hypre_COGMRESSetModifyPC_dbl ( void *fgmres_vdata, HYPRE_Int (*modify_pc )(void *precond_data, + HYPRE_Int iteration, hypre_double rel_residual_norm)); +HYPRE_Int hypre_COGMRESSetModifyPC_long_dbl ( void *fgmres_vdata, HYPRE_Int (*modify_pc )(void *precond_data, + HYPRE_Int iteration, hypre_long_double rel_residual_norm)); +HYPRE_Int hypre_COGMRESSetPrecond_flt ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_COGMRESSetPrecond_dbl ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_COGMRESSetPrecond_long_dbl ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_COGMRESSetPrintLevel_flt ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_COGMRESSetPrintLevel_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_COGMRESSetPrintLevel_long_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_COGMRESSetRelChange_flt ( void *gmres_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_COGMRESSetRelChange_dbl ( void *gmres_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_COGMRESSetRelChange_long_dbl ( void *gmres_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_COGMRESSetSkipRealResidualCheck_flt ( void *gmres_vdata, HYPRE_Int skip_real_r_check ); +HYPRE_Int hypre_COGMRESSetSkipRealResidualCheck_dbl ( void *gmres_vdata, HYPRE_Int skip_real_r_check ); +HYPRE_Int hypre_COGMRESSetSkipRealResidualCheck_long_dbl ( void *gmres_vdata, HYPRE_Int skip_real_r_check ); +HYPRE_Int hypre_COGMRESSetTol_flt ( void *gmres_vdata, hypre_float tol ); +HYPRE_Int hypre_COGMRESSetTol_dbl ( void *gmres_vdata, hypre_double tol ); +HYPRE_Int hypre_COGMRESSetTol_long_dbl ( void *gmres_vdata, hypre_long_double tol ); +HYPRE_Int hypre_COGMRESSetUnroll_flt ( void *gmres_vdata, HYPRE_Int unroll ); +HYPRE_Int hypre_COGMRESSetUnroll_dbl ( void *gmres_vdata, HYPRE_Int unroll ); +HYPRE_Int hypre_COGMRESSetUnroll_long_dbl ( void *gmres_vdata, HYPRE_Int unroll ); +HYPRE_Int hypre_COGMRESSetup_flt ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_COGMRESSetup_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_COGMRESSetup_long_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_COGMRESSolve_flt ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_COGMRESSolve_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_COGMRESSolve_long_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +void *hypre_FlexGMRESCreate_flt( hypre_FlexGMRESFunctions *fgmres_functions ); +void *hypre_FlexGMRESCreate_dbl( hypre_FlexGMRESFunctions *fgmres_functions ); +void *hypre_FlexGMRESCreate_long_dbl( hypre_FlexGMRESFunctions *fgmres_functions ); +HYPRE_Int hypre_FlexGMRESDestroy_flt ( void *fgmres_vdata ); +HYPRE_Int hypre_FlexGMRESDestroy_dbl ( void *fgmres_vdata ); +HYPRE_Int hypre_FlexGMRESDestroy_long_dbl ( void *fgmres_vdata ); +hypre_FlexGMRESFunctions *hypre_FlexGMRESFunctionsCreate_flt( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_FlexGMRESFunctions *hypre_FlexGMRESFunctionsCreate_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_FlexGMRESFunctions *hypre_FlexGMRESFunctionsCreate_long_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_FlexGMRESGetAbsoluteTol_flt ( void *fgmres_vdata, hypre_float *a_tol ); +HYPRE_Int hypre_FlexGMRESGetAbsoluteTol_dbl ( void *fgmres_vdata, hypre_double *a_tol ); +HYPRE_Int hypre_FlexGMRESGetAbsoluteTol_long_dbl ( void *fgmres_vdata, hypre_long_double *a_tol ); +HYPRE_Int hypre_FlexGMRESGetConverged_flt ( void *fgmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_FlexGMRESGetConverged_dbl ( void *fgmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_FlexGMRESGetConverged_long_dbl ( void *fgmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_FlexGMRESGetConvergenceFactorTol_flt ( void *fgmres_vdata, hypre_float *cf_tol ); +HYPRE_Int hypre_FlexGMRESGetConvergenceFactorTol_dbl ( void *fgmres_vdata, hypre_double *cf_tol ); +HYPRE_Int hypre_FlexGMRESGetConvergenceFactorTol_long_dbl ( void *fgmres_vdata, hypre_long_double *cf_tol ); +HYPRE_Int hypre_FlexGMRESGetFinalRelativeResidualNorm_flt ( void *fgmres_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_FlexGMRESGetFinalRelativeResidualNorm_dbl ( void *fgmres_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_FlexGMRESGetFinalRelativeResidualNorm_long_dbl ( void *fgmres_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_FlexGMRESGetKDim_flt ( void *fgmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_FlexGMRESGetKDim_dbl ( void *fgmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_FlexGMRESGetKDim_long_dbl ( void *fgmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_FlexGMRESGetLogging_flt ( void *fgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_FlexGMRESGetLogging_dbl ( void *fgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_FlexGMRESGetLogging_long_dbl ( void *fgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_FlexGMRESGetMaxIter_flt ( void *fgmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_FlexGMRESGetMaxIter_dbl ( void *fgmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_FlexGMRESGetMaxIter_long_dbl ( void *fgmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_FlexGMRESGetMinIter_flt ( void *fgmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_FlexGMRESGetMinIter_dbl ( void *fgmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_FlexGMRESGetMinIter_long_dbl ( void *fgmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_FlexGMRESGetNumIterations_flt ( void *fgmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_FlexGMRESGetNumIterations_dbl ( void *fgmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_FlexGMRESGetNumIterations_long_dbl ( void *fgmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_FlexGMRESGetPrecond_flt ( void *fgmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_FlexGMRESGetPrecond_dbl ( void *fgmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_FlexGMRESGetPrecond_long_dbl ( void *fgmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_FlexGMRESGetPrintLevel_flt ( void *fgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_FlexGMRESGetPrintLevel_dbl ( void *fgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_FlexGMRESGetPrintLevel_long_dbl ( void *fgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_FlexGMRESGetResidual_flt ( void *fgmres_vdata, void **residual ); +HYPRE_Int hypre_FlexGMRESGetResidual_dbl ( void *fgmres_vdata, void **residual ); +HYPRE_Int hypre_FlexGMRESGetResidual_long_dbl ( void *fgmres_vdata, void **residual ); +HYPRE_Int hypre_FlexGMRESGetStopCrit_flt ( void *fgmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_FlexGMRESGetStopCrit_dbl ( void *fgmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_FlexGMRESGetStopCrit_long_dbl ( void *fgmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_FlexGMRESGetTol_flt ( void *fgmres_vdata, hypre_float *tol ); +HYPRE_Int hypre_FlexGMRESGetTol_dbl ( void *fgmres_vdata, hypre_double *tol ); +HYPRE_Int hypre_FlexGMRESGetTol_long_dbl ( void *fgmres_vdata, hypre_long_double *tol ); +HYPRE_Int hypre_FlexGMRESModifyPCDefault_flt ( void *precond_data, HYPRE_Int iteration, + hypre_float rel_residual_norm ); +HYPRE_Int hypre_FlexGMRESModifyPCDefault_dbl ( void *precond_data, HYPRE_Int iteration, + hypre_double rel_residual_norm ); +HYPRE_Int hypre_FlexGMRESModifyPCDefault_long_dbl ( void *precond_data, HYPRE_Int iteration, + hypre_long_double rel_residual_norm ); +HYPRE_Int hypre_FlexGMRESSetAbsoluteTol_flt ( void *fgmres_vdata, hypre_float a_tol ); +HYPRE_Int hypre_FlexGMRESSetAbsoluteTol_dbl ( void *fgmres_vdata, hypre_double a_tol ); +HYPRE_Int hypre_FlexGMRESSetAbsoluteTol_long_dbl ( void *fgmres_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_FlexGMRESSetConvergenceFactorTol_flt ( void *fgmres_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_FlexGMRESSetConvergenceFactorTol_dbl ( void *fgmres_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_FlexGMRESSetConvergenceFactorTol_long_dbl ( void *fgmres_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_FlexGMRESSetKDim_flt ( void *fgmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_FlexGMRESSetKDim_dbl ( void *fgmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_FlexGMRESSetKDim_long_dbl ( void *fgmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_FlexGMRESSetLogging_flt ( void *fgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_FlexGMRESSetLogging_dbl ( void *fgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_FlexGMRESSetLogging_long_dbl ( void *fgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_FlexGMRESSetMaxIter_flt ( void *fgmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_FlexGMRESSetMaxIter_dbl ( void *fgmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_FlexGMRESSetMaxIter_long_dbl ( void *fgmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_FlexGMRESSetMinIter_flt ( void *fgmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_FlexGMRESSetMinIter_dbl ( void *fgmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_FlexGMRESSetMinIter_long_dbl ( void *fgmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_FlexGMRESSetModifyPC_flt ( void *fgmres_vdata, + HYPRE_Int (*modify_pc )(void *precond_data, HYPRE_Int iteration, hypre_float rel_residual_norm)); +HYPRE_Int hypre_FlexGMRESSetModifyPC_dbl ( void *fgmres_vdata, + HYPRE_Int (*modify_pc )(void *precond_data, HYPRE_Int iteration, hypre_double rel_residual_norm)); +HYPRE_Int hypre_FlexGMRESSetModifyPC_long_dbl ( void *fgmres_vdata, + HYPRE_Int (*modify_pc )(void *precond_data, HYPRE_Int iteration, hypre_long_double rel_residual_norm)); +HYPRE_Int hypre_FlexGMRESSetPrecond_flt ( void *fgmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_FlexGMRESSetPrecond_dbl ( void *fgmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_FlexGMRESSetPrecond_long_dbl ( void *fgmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_FlexGMRESSetPrintLevel_flt ( void *fgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_FlexGMRESSetPrintLevel_dbl ( void *fgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_FlexGMRESSetPrintLevel_long_dbl ( void *fgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_FlexGMRESSetStopCrit_flt ( void *fgmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_FlexGMRESSetStopCrit_dbl ( void *fgmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_FlexGMRESSetStopCrit_long_dbl ( void *fgmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_FlexGMRESSetTol_flt ( void *fgmres_vdata, hypre_float tol ); +HYPRE_Int hypre_FlexGMRESSetTol_dbl ( void *fgmres_vdata, hypre_double tol ); +HYPRE_Int hypre_FlexGMRESSetTol_long_dbl ( void *fgmres_vdata, hypre_long_double tol ); +HYPRE_Int hypre_FlexGMRESSetup_flt ( void *fgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_FlexGMRESSetup_dbl ( void *fgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_FlexGMRESSetup_long_dbl ( void *fgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_FlexGMRESSolve_flt ( void *fgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_FlexGMRESSolve_dbl ( void *fgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_FlexGMRESSolve_long_dbl ( void *fgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int HYPRE_BiCGSTABDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BiCGSTABDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BiCGSTABDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BiCGSTABGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_BiCGSTABGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_BiCGSTABGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_BiCGSTABGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_BiCGSTABGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_BiCGSTABGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_BiCGSTABGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_BiCGSTABGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_BiCGSTABGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_BiCGSTABSetPrecondMatrix_flt ( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_BiCGSTABSetPrecondMatrix_dbl ( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_BiCGSTABSetPrecondMatrix_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_BiCGSTABGetPrecondMatrix_flt( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_BiCGSTABGetPrecondMatrix_dbl( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_BiCGSTABGetPrecondMatrix_long_dbl( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_BiCGSTABGetResidual_flt ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_BiCGSTABGetResidual_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_BiCGSTABGetResidual_long_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_BiCGSTABSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_BiCGSTABSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_BiCGSTABSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_BiCGSTABSetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_BiCGSTABSetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_BiCGSTABSetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_BiCGSTABSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_BiCGSTABSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_BiCGSTABSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_BiCGSTABSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_BiCGSTABSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_BiCGSTABSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_BiCGSTABSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_BiCGSTABSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_BiCGSTABSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_BiCGSTABSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_BiCGSTABSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_BiCGSTABSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_BiCGSTABSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BiCGSTABSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BiCGSTABSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BiCGSTABSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_BiCGSTABSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_BiCGSTABSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_BiCGSTABSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_BiCGSTABSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_BiCGSTABSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_BiCGSTABSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_BiCGSTABSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_BiCGSTABSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_BiCGSTABSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_BiCGSTABSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_BiCGSTABSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_CGNRDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_CGNRDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_CGNRDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_CGNRGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_CGNRGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_CGNRGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_CGNRGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_CGNRGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_CGNRGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_CGNRGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_CGNRGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_CGNRGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_CGNRSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_CGNRSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_CGNRSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_CGNRSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_CGNRSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_CGNRSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_CGNRSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_CGNRSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_CGNRSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_CGNRSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precondT, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_CGNRSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precondT, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_CGNRSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precondT, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_CGNRSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_CGNRSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_CGNRSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_CGNRSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_CGNRSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_CGNRSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_CGNRSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_CGNRSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_CGNRSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_CGNRSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_CGNRSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_CGNRSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_COGMRESGetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float *a_tol ); +HYPRE_Int HYPRE_COGMRESGetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double *a_tol ); +HYPRE_Int HYPRE_COGMRESGetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *a_tol ); +HYPRE_Int HYPRE_COGMRESGetCGS_flt ( HYPRE_Solver solver, HYPRE_Int *cgs ); +HYPRE_Int HYPRE_COGMRESGetCGS_dbl ( HYPRE_Solver solver, HYPRE_Int *cgs ); +HYPRE_Int HYPRE_COGMRESGetCGS_long_dbl ( HYPRE_Solver solver, HYPRE_Int *cgs ); +HYPRE_Int HYPRE_COGMRESGetConverged_flt ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_COGMRESGetConverged_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_COGMRESGetConverged_long_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_COGMRESGetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float *cf_tol ); +HYPRE_Int HYPRE_COGMRESGetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double *cf_tol ); +HYPRE_Int HYPRE_COGMRESGetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *cf_tol ); +HYPRE_Int HYPRE_COGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_COGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_COGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_COGMRESGetKDim_flt ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_COGMRESGetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_COGMRESGetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_COGMRESGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_COGMRESGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_COGMRESGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_COGMRESGetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_COGMRESGetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_COGMRESGetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_COGMRESGetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_COGMRESGetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_COGMRESGetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_COGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_COGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_COGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_COGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_COGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_COGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_COGMRESGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_COGMRESGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_COGMRESGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_COGMRESGetResidual_flt ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_COGMRESGetResidual_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_COGMRESGetResidual_long_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_COGMRESGetTol_flt ( HYPRE_Solver solver, hypre_float *tol ); +HYPRE_Int HYPRE_COGMRESGetTol_dbl ( HYPRE_Solver solver, hypre_double *tol ); +HYPRE_Int HYPRE_COGMRESGetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *tol ); +HYPRE_Int HYPRE_COGMRESGetUnroll_flt ( HYPRE_Solver solver, HYPRE_Int *unroll ); +HYPRE_Int HYPRE_COGMRESGetUnroll_dbl ( HYPRE_Solver solver, HYPRE_Int *unroll ); +HYPRE_Int HYPRE_COGMRESGetUnroll_long_dbl ( HYPRE_Solver solver, HYPRE_Int *unroll ); +HYPRE_Int HYPRE_COGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_COGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_COGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_COGMRESSetCGS_flt ( HYPRE_Solver solver, HYPRE_Int cgs ); +HYPRE_Int HYPRE_COGMRESSetCGS_dbl ( HYPRE_Solver solver, HYPRE_Int cgs ); +HYPRE_Int HYPRE_COGMRESSetCGS_long_dbl ( HYPRE_Solver solver, HYPRE_Int cgs ); +HYPRE_Int HYPRE_COGMRESSetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_COGMRESSetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_COGMRESSetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_COGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_COGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_COGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_COGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_COGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_COGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_COGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_COGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_COGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_COGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_COGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_COGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_COGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_COGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_COGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_COGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_COGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_COGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_COGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_COGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_COGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_COGMRESSetUnroll_flt ( HYPRE_Solver solver, HYPRE_Int unroll ); +HYPRE_Int HYPRE_COGMRESSetUnroll_dbl ( HYPRE_Solver solver, HYPRE_Int unroll ); +HYPRE_Int HYPRE_COGMRESSetUnroll_long_dbl ( HYPRE_Solver solver, HYPRE_Int unroll ); +HYPRE_Int HYPRE_COGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_COGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_COGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_COGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_COGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_COGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_FlexGMRESGetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float *a_tol ); +HYPRE_Int HYPRE_FlexGMRESGetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double *a_tol ); +HYPRE_Int HYPRE_FlexGMRESGetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *a_tol ); +HYPRE_Int HYPRE_FlexGMRESGetConverged_flt ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_FlexGMRESGetConverged_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_FlexGMRESGetConverged_long_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_FlexGMRESGetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float *cf_tol ); +HYPRE_Int HYPRE_FlexGMRESGetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double *cf_tol ); +HYPRE_Int HYPRE_FlexGMRESGetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *cf_tol ); +HYPRE_Int HYPRE_FlexGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_FlexGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_FlexGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_FlexGMRESGetKDim_flt ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_FlexGMRESGetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_FlexGMRESGetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_FlexGMRESGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_FlexGMRESGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_FlexGMRESGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_FlexGMRESGetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_FlexGMRESGetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_FlexGMRESGetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_FlexGMRESGetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_FlexGMRESGetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_FlexGMRESGetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_FlexGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_FlexGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_FlexGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_FlexGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_FlexGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_FlexGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_FlexGMRESGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_FlexGMRESGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_FlexGMRESGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_FlexGMRESGetResidual_flt ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_FlexGMRESGetResidual_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_FlexGMRESGetResidual_long_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_FlexGMRESGetTol_flt ( HYPRE_Solver solver, hypre_float *tol ); +HYPRE_Int HYPRE_FlexGMRESGetTol_dbl ( HYPRE_Solver solver, hypre_double *tol ); +HYPRE_Int HYPRE_FlexGMRESGetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *tol ); +HYPRE_Int HYPRE_FlexGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_FlexGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_FlexGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_FlexGMRESSetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_FlexGMRESSetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_FlexGMRESSetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_FlexGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_FlexGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_FlexGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_FlexGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_FlexGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_FlexGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_FlexGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_FlexGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_FlexGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_FlexGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_FlexGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_FlexGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_FlexGMRESSetModifyPC_flt ( HYPRE_Solver solver, HYPRE_Int (*modify_pc )(HYPRE_Solver, + HYPRE_Int, hypre_float )); +HYPRE_Int HYPRE_FlexGMRESSetModifyPC_dbl ( HYPRE_Solver solver, HYPRE_Int (*modify_pc )(HYPRE_Solver, + HYPRE_Int, hypre_double )); +HYPRE_Int HYPRE_FlexGMRESSetModifyPC_long_dbl ( HYPRE_Solver solver, HYPRE_Int (*modify_pc )(HYPRE_Solver, + HYPRE_Int, hypre_long_double )); +HYPRE_Int HYPRE_FlexGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_FlexGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_FlexGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_FlexGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_FlexGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_FlexGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_FlexGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_FlexGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_FlexGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_FlexGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_FlexGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_FlexGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_FlexGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_FlexGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_FlexGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, + HYPRE_Vector x ); +HYPRE_Int HYPRE_GMRESGetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float *a_tol ); +HYPRE_Int HYPRE_GMRESGetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double *a_tol ); +HYPRE_Int HYPRE_GMRESGetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *a_tol ); +HYPRE_Int HYPRE_GMRESGetConverged_flt ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_GMRESGetConverged_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_GMRESGetConverged_long_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_GMRESGetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float *cf_tol ); +HYPRE_Int HYPRE_GMRESGetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double *cf_tol ); +HYPRE_Int HYPRE_GMRESGetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *cf_tol ); +HYPRE_Int HYPRE_GMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_GMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_GMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_GMRESGetKDim_flt ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_GMRESGetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_GMRESGetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_GMRESGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_GMRESGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_GMRESGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_GMRESGetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_GMRESGetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_GMRESGetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_GMRESGetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_GMRESGetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_GMRESGetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_GMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_GMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_GMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_GMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_GMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_GMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_GMRESGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_GMRESGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_GMRESGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_GMRESGetRelChange_flt ( HYPRE_Solver solver, HYPRE_Int *rel_change ); +HYPRE_Int HYPRE_GMRESGetRelChange_dbl ( HYPRE_Solver solver, HYPRE_Int *rel_change ); +HYPRE_Int HYPRE_GMRESGetRelChange_long_dbl ( HYPRE_Solver solver, HYPRE_Int *rel_change ); +HYPRE_Int HYPRE_GMRESGetResidual_flt ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_GMRESGetResidual_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_GMRESGetResidual_long_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_GMRESGetSkipRealResidualCheck_flt ( HYPRE_Solver solver, HYPRE_Int *skip_real_r_check ); +HYPRE_Int HYPRE_GMRESGetSkipRealResidualCheck_dbl ( HYPRE_Solver solver, HYPRE_Int *skip_real_r_check ); +HYPRE_Int HYPRE_GMRESGetSkipRealResidualCheck_long_dbl ( HYPRE_Solver solver, HYPRE_Int *skip_real_r_check ); +HYPRE_Int HYPRE_GMRESGetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int *stop_crit ); +HYPRE_Int HYPRE_GMRESGetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int *stop_crit ); +HYPRE_Int HYPRE_GMRESGetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int *stop_crit ); +HYPRE_Int HYPRE_GMRESGetTol_flt ( HYPRE_Solver solver, hypre_float *tol ); +HYPRE_Int HYPRE_GMRESGetTol_dbl ( HYPRE_Solver solver, hypre_double *tol ); +HYPRE_Int HYPRE_GMRESGetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *tol ); +HYPRE_Int HYPRE_GMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_GMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_GMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_GMRESSetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_GMRESSetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_GMRESSetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_GMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_GMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_GMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_GMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_GMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_GMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_GMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_GMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_GMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_GMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_GMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_GMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_GMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_GMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_GMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_GMRESSetPrecondMatrix_flt ( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_GMRESSetPrecondMatrix_dbl ( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_GMRESSetPrecondMatrix_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_GMRESGetPrecondMatrix_flt( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_GMRESGetPrecondMatrix_dbl( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_GMRESGetPrecondMatrix_long_dbl( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_GMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_GMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_GMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_GMRESSetRelChange_flt ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_GMRESSetRelChange_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_GMRESSetRelChange_long_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_GMRESSetSkipRealResidualCheck_flt ( HYPRE_Solver solver, HYPRE_Int skip_real_r_check ); +HYPRE_Int HYPRE_GMRESSetSkipRealResidualCheck_dbl ( HYPRE_Solver solver, HYPRE_Int skip_real_r_check ); +HYPRE_Int HYPRE_GMRESSetSkipRealResidualCheck_long_dbl ( HYPRE_Solver solver, HYPRE_Int skip_real_r_check ); +HYPRE_Int HYPRE_GMRESSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_GMRESSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_GMRESSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_GMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_GMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_GMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_GMRESSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_GMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_GMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_GMRESSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_GMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_GMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_LGMRESGetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float *a_tol ); +HYPRE_Int HYPRE_LGMRESGetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double *a_tol ); +HYPRE_Int HYPRE_LGMRESGetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *a_tol ); +HYPRE_Int HYPRE_LGMRESGetAugDim_flt ( HYPRE_Solver solver, HYPRE_Int *aug_dim ); +HYPRE_Int HYPRE_LGMRESGetAugDim_dbl ( HYPRE_Solver solver, HYPRE_Int *aug_dim ); +HYPRE_Int HYPRE_LGMRESGetAugDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int *aug_dim ); +HYPRE_Int HYPRE_LGMRESGetConverged_flt ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_LGMRESGetConverged_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_LGMRESGetConverged_long_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_LGMRESGetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float *cf_tol ); +HYPRE_Int HYPRE_LGMRESGetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double *cf_tol ); +HYPRE_Int HYPRE_LGMRESGetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *cf_tol ); +HYPRE_Int HYPRE_LGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_LGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_LGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_LGMRESGetKDim_flt ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_LGMRESGetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_LGMRESGetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int *k_dim ); +HYPRE_Int HYPRE_LGMRESGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_LGMRESGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_LGMRESGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_LGMRESGetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_LGMRESGetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_LGMRESGetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_LGMRESGetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_LGMRESGetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_LGMRESGetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *min_iter ); +HYPRE_Int HYPRE_LGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_LGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_LGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_LGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_LGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_LGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_LGMRESGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_LGMRESGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_LGMRESGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_LGMRESGetResidual_flt ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_LGMRESGetResidual_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_LGMRESGetResidual_long_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_LGMRESGetTol_flt ( HYPRE_Solver solver, hypre_float *tol ); +HYPRE_Int HYPRE_LGMRESGetTol_dbl ( HYPRE_Solver solver, hypre_double *tol ); +HYPRE_Int HYPRE_LGMRESGetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *tol ); +HYPRE_Int HYPRE_LGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_LGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_LGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_LGMRESSetAugDim_flt ( HYPRE_Solver solver, HYPRE_Int aug_dim ); +HYPRE_Int HYPRE_LGMRESSetAugDim_dbl ( HYPRE_Solver solver, HYPRE_Int aug_dim ); +HYPRE_Int HYPRE_LGMRESSetAugDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int aug_dim ); +HYPRE_Int HYPRE_LGMRESSetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_LGMRESSetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_LGMRESSetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_LGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_LGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_LGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_LGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_LGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_LGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_LGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_LGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_LGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_LGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_LGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_LGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_LGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_LGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_LGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_LGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_LGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_LGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_LGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_LGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_LGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_LGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_LGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_LGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_LGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_LGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_LGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_PCGGetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float *a_tol ); +HYPRE_Int HYPRE_PCGGetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double *a_tol ); +HYPRE_Int HYPRE_PCGGetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *a_tol ); +HYPRE_Int HYPRE_PCGGetAbsoluteTolFactor_flt ( HYPRE_Solver solver, hypre_float *abstolf ); +HYPRE_Int HYPRE_PCGGetAbsoluteTolFactor_dbl ( HYPRE_Solver solver, hypre_double *abstolf ); +HYPRE_Int HYPRE_PCGGetAbsoluteTolFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double *abstolf ); +HYPRE_Int HYPRE_PCGGetConverged_flt ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_PCGGetConverged_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_PCGGetConverged_long_dbl ( HYPRE_Solver solver, HYPRE_Int *converged ); +HYPRE_Int HYPRE_PCGGetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float *cf_tol ); +HYPRE_Int HYPRE_PCGGetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double *cf_tol ); +HYPRE_Int HYPRE_PCGGetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *cf_tol ); +HYPRE_Int HYPRE_PCGGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_PCGGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_PCGGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_PCGGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_PCGGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_PCGGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_PCGGetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_PCGGetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_PCGGetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_PCGGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_PCGGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_PCGGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_PCGGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_PCGGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_PCGGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_PCGGetPrecondMatrix_flt( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_PCGGetPrecondMatrix_dbl( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_PCGGetPrecondMatrix_long_dbl( HYPRE_Solver solver, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int HYPRE_PCGGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_PCGGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_PCGGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *level ); +HYPRE_Int HYPRE_PCGGetRecomputeResidual_flt ( HYPRE_Solver solver, HYPRE_Int *recompute_residual ); +HYPRE_Int HYPRE_PCGGetRecomputeResidual_dbl ( HYPRE_Solver solver, HYPRE_Int *recompute_residual ); +HYPRE_Int HYPRE_PCGGetRecomputeResidual_long_dbl ( HYPRE_Solver solver, HYPRE_Int *recompute_residual ); +HYPRE_Int HYPRE_PCGGetRecomputeResidualP_flt ( HYPRE_Solver solver, HYPRE_Int *recompute_residual_p ); +HYPRE_Int HYPRE_PCGGetRecomputeResidualP_dbl ( HYPRE_Solver solver, HYPRE_Int *recompute_residual_p ); +HYPRE_Int HYPRE_PCGGetRecomputeResidualP_long_dbl ( HYPRE_Solver solver, HYPRE_Int *recompute_residual_p ); +HYPRE_Int HYPRE_PCGGetRelChange_flt ( HYPRE_Solver solver, HYPRE_Int *rel_change ); +HYPRE_Int HYPRE_PCGGetRelChange_dbl ( HYPRE_Solver solver, HYPRE_Int *rel_change ); +HYPRE_Int HYPRE_PCGGetRelChange_long_dbl ( HYPRE_Solver solver, HYPRE_Int *rel_change ); +HYPRE_Int HYPRE_PCGGetSkipBreak_flt ( HYPRE_Solver solver, HYPRE_Int *skip_break ); +HYPRE_Int HYPRE_PCGGetSkipBreak_dbl ( HYPRE_Solver solver, HYPRE_Int *skip_break ); +HYPRE_Int HYPRE_PCGGetSkipBreak_long_dbl ( HYPRE_Solver solver, HYPRE_Int *skip_break ); +HYPRE_Int HYPRE_PCGGetFlex_flt ( HYPRE_Solver solver, HYPRE_Int *flex ); +HYPRE_Int HYPRE_PCGGetFlex_dbl ( HYPRE_Solver solver, HYPRE_Int *flex ); +HYPRE_Int HYPRE_PCGGetFlex_long_dbl ( HYPRE_Solver solver, HYPRE_Int *flex ); +HYPRE_Int HYPRE_PCGGetResidual_flt ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_PCGGetResidual_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_PCGGetResidual_long_dbl ( HYPRE_Solver solver, void *residual ); +HYPRE_Int HYPRE_PCGGetResidualTol_flt ( HYPRE_Solver solver, hypre_float *rtol ); +HYPRE_Int HYPRE_PCGGetResidualTol_dbl ( HYPRE_Solver solver, hypre_double *rtol ); +HYPRE_Int HYPRE_PCGGetResidualTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *rtol ); +HYPRE_Int HYPRE_PCGGetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int *stop_crit ); +HYPRE_Int HYPRE_PCGGetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int *stop_crit ); +HYPRE_Int HYPRE_PCGGetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int *stop_crit ); +HYPRE_Int HYPRE_PCGGetTol_flt ( HYPRE_Solver solver, hypre_float *tol ); +HYPRE_Int HYPRE_PCGGetTol_dbl ( HYPRE_Solver solver, hypre_double *tol ); +HYPRE_Int HYPRE_PCGGetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *tol ); +HYPRE_Int HYPRE_PCGGetTwoNorm_flt ( HYPRE_Solver solver, HYPRE_Int *two_norm ); +HYPRE_Int HYPRE_PCGGetTwoNorm_dbl ( HYPRE_Solver solver, HYPRE_Int *two_norm ); +HYPRE_Int HYPRE_PCGGetTwoNorm_long_dbl ( HYPRE_Solver solver, HYPRE_Int *two_norm ); +HYPRE_Int HYPRE_PCGSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_PCGSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_PCGSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_PCGSetAbsoluteTolFactor_flt ( HYPRE_Solver solver, hypre_float abstolf ); +HYPRE_Int HYPRE_PCGSetAbsoluteTolFactor_dbl ( HYPRE_Solver solver, hypre_double abstolf ); +HYPRE_Int HYPRE_PCGSetAbsoluteTolFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double abstolf ); +HYPRE_Int HYPRE_PCGSetConvergenceFactorTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_PCGSetConvergenceFactorTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_PCGSetConvergenceFactorTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_PCGSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_PCGSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_PCGSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_PCGSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_PCGSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_PCGSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_PCGSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_PCGSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_PCGSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, + HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_PCGSetPrecondMatrix_flt( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_PCGSetPrecondMatrix_dbl( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_PCGSetPrecondMatrix_long_dbl( HYPRE_Solver solver, HYPRE_Matrix precond_matrix); +HYPRE_Int HYPRE_PCGSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_PCGSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_PCGSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_PCGSetRecomputeResidual_flt ( HYPRE_Solver solver, HYPRE_Int recompute_residual ); +HYPRE_Int HYPRE_PCGSetRecomputeResidual_dbl ( HYPRE_Solver solver, HYPRE_Int recompute_residual ); +HYPRE_Int HYPRE_PCGSetRecomputeResidual_long_dbl ( HYPRE_Solver solver, HYPRE_Int recompute_residual ); +HYPRE_Int HYPRE_PCGSetRecomputeResidualP_flt ( HYPRE_Solver solver, HYPRE_Int recompute_residual_p ); +HYPRE_Int HYPRE_PCGSetRecomputeResidualP_dbl ( HYPRE_Solver solver, HYPRE_Int recompute_residual_p ); +HYPRE_Int HYPRE_PCGSetRecomputeResidualP_long_dbl ( HYPRE_Solver solver, HYPRE_Int recompute_residual_p ); +HYPRE_Int HYPRE_PCGSetRelChange_flt ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_PCGSetRelChange_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_PCGSetRelChange_long_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_PCGSetSkipBreak_flt ( HYPRE_Solver solver, HYPRE_Int skip_break ); +HYPRE_Int HYPRE_PCGSetSkipBreak_dbl ( HYPRE_Solver solver, HYPRE_Int skip_break ); +HYPRE_Int HYPRE_PCGSetSkipBreak_long_dbl ( HYPRE_Solver solver, HYPRE_Int skip_break ); +HYPRE_Int HYPRE_PCGSetFlex_flt ( HYPRE_Solver solver, HYPRE_Int flex ); +HYPRE_Int HYPRE_PCGSetFlex_dbl ( HYPRE_Solver solver, HYPRE_Int flex ); +HYPRE_Int HYPRE_PCGSetFlex_long_dbl ( HYPRE_Solver solver, HYPRE_Int flex ); +HYPRE_Int HYPRE_PCGSetResidualTol_flt ( HYPRE_Solver solver, hypre_float rtol ); +HYPRE_Int HYPRE_PCGSetResidualTol_dbl ( HYPRE_Solver solver, hypre_double rtol ); +HYPRE_Int HYPRE_PCGSetResidualTol_long_dbl ( HYPRE_Solver solver, hypre_long_double rtol ); +HYPRE_Int HYPRE_PCGSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_PCGSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_PCGSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_PCGSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_PCGSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_PCGSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_PCGSetTwoNorm_flt ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_PCGSetTwoNorm_dbl ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_PCGSetTwoNorm_long_dbl ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_PCGSetup_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_PCGSetup_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_PCGSetup_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_PCGSolve_flt ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_PCGSolve_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +HYPRE_Int HYPRE_PCGSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x ); +void *hypre_LGMRESCreate_flt( hypre_LGMRESFunctions *lgmres_functions ); +void *hypre_LGMRESCreate_dbl( hypre_LGMRESFunctions *lgmres_functions ); +void *hypre_LGMRESCreate_long_dbl( hypre_LGMRESFunctions *lgmres_functions ); +HYPRE_Int hypre_LGMRESDestroy_flt ( void *lgmres_vdata ); +HYPRE_Int hypre_LGMRESDestroy_dbl ( void *lgmres_vdata ); +HYPRE_Int hypre_LGMRESDestroy_long_dbl ( void *lgmres_vdata ); +hypre_LGMRESFunctions *hypre_LGMRESFunctionsCreate_flt( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_LGMRESFunctions *hypre_LGMRESFunctionsCreate_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_LGMRESFunctions *hypre_LGMRESFunctionsCreate_long_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_LGMRESGetAbsoluteTol_flt ( void *lgmres_vdata, hypre_float *a_tol ); +HYPRE_Int hypre_LGMRESGetAbsoluteTol_dbl ( void *lgmres_vdata, hypre_double *a_tol ); +HYPRE_Int hypre_LGMRESGetAbsoluteTol_long_dbl ( void *lgmres_vdata, hypre_long_double *a_tol ); +HYPRE_Int hypre_LGMRESGetAugDim_flt ( void *lgmres_vdata, HYPRE_Int *aug_dim ); +HYPRE_Int hypre_LGMRESGetAugDim_dbl ( void *lgmres_vdata, HYPRE_Int *aug_dim ); +HYPRE_Int hypre_LGMRESGetAugDim_long_dbl ( void *lgmres_vdata, HYPRE_Int *aug_dim ); +HYPRE_Int hypre_LGMRESGetConverged_flt ( void *lgmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_LGMRESGetConverged_dbl ( void *lgmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_LGMRESGetConverged_long_dbl ( void *lgmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_LGMRESGetConvergenceFactorTol_flt ( void *lgmres_vdata, hypre_float *cf_tol ); +HYPRE_Int hypre_LGMRESGetConvergenceFactorTol_dbl ( void *lgmres_vdata, hypre_double *cf_tol ); +HYPRE_Int hypre_LGMRESGetConvergenceFactorTol_long_dbl ( void *lgmres_vdata, hypre_long_double *cf_tol ); +HYPRE_Int hypre_LGMRESGetFinalRelativeResidualNorm_flt ( void *lgmres_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_LGMRESGetFinalRelativeResidualNorm_dbl ( void *lgmres_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_LGMRESGetFinalRelativeResidualNorm_long_dbl ( void *lgmres_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_LGMRESGetKDim_flt ( void *lgmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_LGMRESGetKDim_dbl ( void *lgmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_LGMRESGetKDim_long_dbl ( void *lgmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_LGMRESGetLogging_flt ( void *lgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_LGMRESGetLogging_dbl ( void *lgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_LGMRESGetLogging_long_dbl ( void *lgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_LGMRESGetMaxIter_flt ( void *lgmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_LGMRESGetMaxIter_dbl ( void *lgmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_LGMRESGetMaxIter_long_dbl ( void *lgmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_LGMRESGetMinIter_flt ( void *lgmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_LGMRESGetMinIter_dbl ( void *lgmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_LGMRESGetMinIter_long_dbl ( void *lgmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_LGMRESGetNumIterations_flt ( void *lgmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_LGMRESGetNumIterations_dbl ( void *lgmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_LGMRESGetNumIterations_long_dbl ( void *lgmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_LGMRESGetPrecond_flt ( void *lgmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_LGMRESGetPrecond_dbl ( void *lgmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_LGMRESGetPrecond_long_dbl ( void *lgmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_LGMRESGetPrintLevel_flt ( void *lgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_LGMRESGetPrintLevel_dbl ( void *lgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_LGMRESGetPrintLevel_long_dbl ( void *lgmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_LGMRESGetResidual_flt ( void *lgmres_vdata, void **residual ); +HYPRE_Int hypre_LGMRESGetResidual_dbl ( void *lgmres_vdata, void **residual ); +HYPRE_Int hypre_LGMRESGetResidual_long_dbl ( void *lgmres_vdata, void **residual ); +HYPRE_Int hypre_LGMRESGetStopCrit_flt ( void *lgmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_LGMRESGetStopCrit_dbl ( void *lgmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_LGMRESGetStopCrit_long_dbl ( void *lgmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_LGMRESGetTol_flt ( void *lgmres_vdata, hypre_float *tol ); +HYPRE_Int hypre_LGMRESGetTol_dbl ( void *lgmres_vdata, hypre_double *tol ); +HYPRE_Int hypre_LGMRESGetTol_long_dbl ( void *lgmres_vdata, hypre_long_double *tol ); +HYPRE_Int hypre_LGMRESSetAbsoluteTol_flt ( void *lgmres_vdata, hypre_float a_tol ); +HYPRE_Int hypre_LGMRESSetAbsoluteTol_dbl ( void *lgmres_vdata, hypre_double a_tol ); +HYPRE_Int hypre_LGMRESSetAbsoluteTol_long_dbl ( void *lgmres_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_LGMRESSetAugDim_flt ( void *lgmres_vdata, HYPRE_Int aug_dim ); +HYPRE_Int hypre_LGMRESSetAugDim_dbl ( void *lgmres_vdata, HYPRE_Int aug_dim ); +HYPRE_Int hypre_LGMRESSetAugDim_long_dbl ( void *lgmres_vdata, HYPRE_Int aug_dim ); +HYPRE_Int hypre_LGMRESSetConvergenceFactorTol_flt ( void *lgmres_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_LGMRESSetConvergenceFactorTol_dbl ( void *lgmres_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_LGMRESSetConvergenceFactorTol_long_dbl ( void *lgmres_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_LGMRESSetKDim_flt ( void *lgmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_LGMRESSetKDim_dbl ( void *lgmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_LGMRESSetKDim_long_dbl ( void *lgmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_LGMRESSetLogging_flt ( void *lgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_LGMRESSetLogging_dbl ( void *lgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_LGMRESSetLogging_long_dbl ( void *lgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_LGMRESSetMaxIter_flt ( void *lgmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_LGMRESSetMaxIter_dbl ( void *lgmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_LGMRESSetMaxIter_long_dbl ( void *lgmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_LGMRESSetMinIter_flt ( void *lgmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_LGMRESSetMinIter_dbl ( void *lgmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_LGMRESSetMinIter_long_dbl ( void *lgmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_LGMRESSetPrecond_flt ( void *lgmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_LGMRESSetPrecond_dbl ( void *lgmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_LGMRESSetPrecond_long_dbl ( void *lgmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_LGMRESSetPrintLevel_flt ( void *lgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_LGMRESSetPrintLevel_dbl ( void *lgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_LGMRESSetPrintLevel_long_dbl ( void *lgmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_LGMRESSetStopCrit_flt ( void *lgmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_LGMRESSetStopCrit_dbl ( void *lgmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_LGMRESSetStopCrit_long_dbl ( void *lgmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_LGMRESSetTol_flt ( void *lgmres_vdata, hypre_float tol ); +HYPRE_Int hypre_LGMRESSetTol_dbl ( void *lgmres_vdata, hypre_double tol ); +HYPRE_Int hypre_LGMRESSetTol_long_dbl ( void *lgmres_vdata, hypre_long_double tol ); +HYPRE_Int hypre_LGMRESSetup_flt ( void *lgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_LGMRESSetup_dbl ( void *lgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_LGMRESSetup_long_dbl ( void *lgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_LGMRESSolve_flt ( void *lgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_LGMRESSolve_dbl ( void *lgmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_LGMRESSolve_long_dbl ( void *lgmres_vdata, void *A, void *b, void *x ); +void* hypre_PCGCreate_flt( hypre_PCGFunctions *pcg_functions ); +void* hypre_PCGCreate_dbl( hypre_PCGFunctions *pcg_functions ); +void* hypre_PCGCreate_long_dbl( hypre_PCGFunctions *pcg_functions ); +HYPRE_Int hypre_PCGDestroy_flt ( void *pcg_vdata ); +HYPRE_Int hypre_PCGDestroy_dbl ( void *pcg_vdata ); +HYPRE_Int hypre_PCGDestroy_long_dbl ( void *pcg_vdata ); +hypre_PCGFunctions *hypre_PCGFunctionsCreate_flt( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_PCGFunctions *hypre_PCGFunctionsCreate_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_PCGFunctions *hypre_PCGFunctionsCreate_long_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_PCGGetAbsoluteTol_flt ( void *pcg_vdata, hypre_float *a_tol ); +HYPRE_Int hypre_PCGGetAbsoluteTol_dbl ( void *pcg_vdata, hypre_double *a_tol ); +HYPRE_Int hypre_PCGGetAbsoluteTol_long_dbl ( void *pcg_vdata, hypre_long_double *a_tol ); +HYPRE_Int hypre_PCGGetAbsoluteTolFactor_flt ( void *pcg_vdata, hypre_float *atolf ); +HYPRE_Int hypre_PCGGetAbsoluteTolFactor_dbl ( void *pcg_vdata, hypre_double *atolf ); +HYPRE_Int hypre_PCGGetAbsoluteTolFactor_long_dbl ( void *pcg_vdata, hypre_long_double *atolf ); +HYPRE_Int hypre_PCGGetConverged_flt ( void *pcg_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_PCGGetConverged_dbl ( void *pcg_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_PCGGetConverged_long_dbl ( void *pcg_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_PCGGetConvergenceFactorTol_flt ( void *pcg_vdata, hypre_float *cf_tol ); +HYPRE_Int hypre_PCGGetConvergenceFactorTol_dbl ( void *pcg_vdata, hypre_double *cf_tol ); +HYPRE_Int hypre_PCGGetConvergenceFactorTol_long_dbl ( void *pcg_vdata, hypre_long_double *cf_tol ); +HYPRE_Int hypre_PCGGetFinalRelativeResidualNorm_flt ( void *pcg_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_PCGGetFinalRelativeResidualNorm_dbl ( void *pcg_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_PCGGetFinalRelativeResidualNorm_long_dbl ( void *pcg_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_PCGGetLogging_flt ( void *pcg_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_PCGGetLogging_dbl ( void *pcg_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_PCGGetLogging_long_dbl ( void *pcg_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_PCGGetMaxIter_flt ( void *pcg_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_PCGGetMaxIter_dbl ( void *pcg_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_PCGGetMaxIter_long_dbl ( void *pcg_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_PCGGetNumIterations_flt ( void *pcg_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_PCGGetNumIterations_dbl ( void *pcg_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_PCGGetNumIterations_long_dbl ( void *pcg_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_PCGGetPrecond_flt ( void *pcg_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_PCGGetPrecond_dbl ( void *pcg_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_PCGGetPrecond_long_dbl ( void *pcg_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_PCGGetPrecondMatrix_flt( void *pcg_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_PCGGetPrecondMatrix_dbl( void *pcg_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_PCGGetPrecondMatrix_long_dbl( void *pcg_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_PCGGetPrintLevel_flt ( void *pcg_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_PCGGetPrintLevel_dbl ( void *pcg_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_PCGGetPrintLevel_long_dbl ( void *pcg_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_PCGGetRecomputeResidual_flt ( void *pcg_vdata, HYPRE_Int *recompute_residual ); +HYPRE_Int hypre_PCGGetRecomputeResidual_dbl ( void *pcg_vdata, HYPRE_Int *recompute_residual ); +HYPRE_Int hypre_PCGGetRecomputeResidual_long_dbl ( void *pcg_vdata, HYPRE_Int *recompute_residual ); +HYPRE_Int hypre_PCGGetRecomputeResidualP_flt ( void *pcg_vdata, HYPRE_Int *recompute_residual_p ); +HYPRE_Int hypre_PCGGetRecomputeResidualP_dbl ( void *pcg_vdata, HYPRE_Int *recompute_residual_p ); +HYPRE_Int hypre_PCGGetRecomputeResidualP_long_dbl ( void *pcg_vdata, HYPRE_Int *recompute_residual_p ); +HYPRE_Int hypre_PCGGetRelChange_flt ( void *pcg_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_PCGGetRelChange_dbl ( void *pcg_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_PCGGetRelChange_long_dbl ( void *pcg_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_PCGGetResidual_flt ( void *pcg_vdata, void **residual ); +HYPRE_Int hypre_PCGGetResidual_dbl ( void *pcg_vdata, void **residual ); +HYPRE_Int hypre_PCGGetResidual_long_dbl ( void *pcg_vdata, void **residual ); +HYPRE_Int hypre_PCGGetResidualTol_flt ( void *pcg_vdata, hypre_float *rtol ); +HYPRE_Int hypre_PCGGetResidualTol_dbl ( void *pcg_vdata, hypre_double *rtol ); +HYPRE_Int hypre_PCGGetResidualTol_long_dbl ( void *pcg_vdata, hypre_long_double *rtol ); +HYPRE_Int hypre_PCGGetStopCrit_flt ( void *pcg_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_PCGGetStopCrit_dbl ( void *pcg_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_PCGGetStopCrit_long_dbl ( void *pcg_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_PCGGetTol_flt ( void *pcg_vdata, hypre_float *tol ); +HYPRE_Int hypre_PCGGetTol_dbl ( void *pcg_vdata, hypre_double *tol ); +HYPRE_Int hypre_PCGGetTol_long_dbl ( void *pcg_vdata, hypre_long_double *tol ); +HYPRE_Int hypre_PCGGetTwoNorm_flt ( void *pcg_vdata, HYPRE_Int *two_norm ); +HYPRE_Int hypre_PCGGetTwoNorm_dbl ( void *pcg_vdata, HYPRE_Int *two_norm ); +HYPRE_Int hypre_PCGGetTwoNorm_long_dbl ( void *pcg_vdata, HYPRE_Int *two_norm ); +HYPRE_Int hypre_PCGPrintLogging_flt ( void *pcg_vdata, HYPRE_Int myid ); +HYPRE_Int hypre_PCGPrintLogging_dbl ( void *pcg_vdata, HYPRE_Int myid ); +HYPRE_Int hypre_PCGPrintLogging_long_dbl ( void *pcg_vdata, HYPRE_Int myid ); +HYPRE_Int hypre_PCGSetAbsoluteTol_flt ( void *pcg_vdata, hypre_float a_tol ); +HYPRE_Int hypre_PCGSetAbsoluteTol_dbl ( void *pcg_vdata, hypre_double a_tol ); +HYPRE_Int hypre_PCGSetAbsoluteTol_long_dbl ( void *pcg_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_PCGSetAbsoluteTolFactor_flt ( void *pcg_vdata, hypre_float atolf ); +HYPRE_Int hypre_PCGSetAbsoluteTolFactor_dbl ( void *pcg_vdata, hypre_double atolf ); +HYPRE_Int hypre_PCGSetAbsoluteTolFactor_long_dbl ( void *pcg_vdata, hypre_long_double atolf ); +HYPRE_Int hypre_PCGSetConvergenceFactorTol_flt ( void *pcg_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_PCGSetConvergenceFactorTol_dbl ( void *pcg_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_PCGSetConvergenceFactorTol_long_dbl ( void *pcg_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_PCGSetHybrid_flt ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetHybrid_dbl ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetHybrid_long_dbl ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetLogging_flt ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetLogging_dbl ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetLogging_long_dbl ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetMaxIter_flt ( void *pcg_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_PCGSetMaxIter_dbl ( void *pcg_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_PCGSetMaxIter_long_dbl ( void *pcg_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_PCGSetPrecond_flt ( void *pcg_vdata, HYPRE_Int (*precond )(void*, void*, void*, void*), + HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_PCGSetPrecond_dbl ( void *pcg_vdata, HYPRE_Int (*precond )(void*, void*, void*, void*), + HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_PCGSetPrecond_long_dbl ( void *pcg_vdata, HYPRE_Int (*precond )(void*, void*, void*, void*), + HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_PCGSetPrecondMatrix_flt( void *pcg_vdata, void *precond_matrix ); +HYPRE_Int hypre_PCGSetPrecondMatrix_dbl( void *pcg_vdata, void *precond_matrix ); +HYPRE_Int hypre_PCGSetPrecondMatrix_long_dbl( void *pcg_vdata, void *precond_matrix ); +HYPRE_Int hypre_PCGSetPrintLevel_flt ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetPrintLevel_dbl ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetPrintLevel_long_dbl ( void *pcg_vdata, HYPRE_Int level ); +HYPRE_Int hypre_PCGSetRecomputeResidual_flt ( void *pcg_vdata, HYPRE_Int recompute_residual ); +HYPRE_Int hypre_PCGSetRecomputeResidual_dbl ( void *pcg_vdata, HYPRE_Int recompute_residual ); +HYPRE_Int hypre_PCGSetRecomputeResidual_long_dbl ( void *pcg_vdata, HYPRE_Int recompute_residual ); +HYPRE_Int hypre_PCGSetRecomputeResidualP_flt ( void *pcg_vdata, HYPRE_Int recompute_residual_p ); +HYPRE_Int hypre_PCGSetRecomputeResidualP_dbl ( void *pcg_vdata, HYPRE_Int recompute_residual_p ); +HYPRE_Int hypre_PCGSetRecomputeResidualP_long_dbl ( void *pcg_vdata, HYPRE_Int recompute_residual_p ); +HYPRE_Int hypre_PCGSetRelChange_flt ( void *pcg_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_PCGSetRelChange_dbl ( void *pcg_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_PCGSetRelChange_long_dbl ( void *pcg_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_PCGSetResidualTol_flt ( void *pcg_vdata, hypre_float rtol ); +HYPRE_Int hypre_PCGSetResidualTol_dbl ( void *pcg_vdata, hypre_double rtol ); +HYPRE_Int hypre_PCGSetResidualTol_long_dbl ( void *pcg_vdata, hypre_long_double rtol ); +HYPRE_Int hypre_PCGSetStopCrit_flt ( void *pcg_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_PCGSetStopCrit_dbl ( void *pcg_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_PCGSetStopCrit_long_dbl ( void *pcg_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_PCGSetTol_flt ( void *pcg_vdata, hypre_float tol ); +HYPRE_Int hypre_PCGSetTol_dbl ( void *pcg_vdata, hypre_double tol ); +HYPRE_Int hypre_PCGSetTol_long_dbl ( void *pcg_vdata, hypre_long_double tol ); +HYPRE_Int hypre_PCGSetTwoNorm_flt ( void *pcg_vdata, HYPRE_Int two_norm ); +HYPRE_Int hypre_PCGSetTwoNorm_dbl ( void *pcg_vdata, HYPRE_Int two_norm ); +HYPRE_Int hypre_PCGSetTwoNorm_long_dbl ( void *pcg_vdata, HYPRE_Int two_norm ); +HYPRE_Int hypre_PCGSetup_flt ( void *pcg_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_PCGSetup_dbl ( void *pcg_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_PCGSetup_long_dbl ( void *pcg_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_PCGSolve_flt ( void *pcg_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_PCGSolve_dbl ( void *pcg_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_PCGSolve_long_dbl ( void *pcg_vdata, void *A, void *b, void *x ); + +void *hypre_GMRESCreate_flt( hypre_GMRESFunctions *gmres_functions ); +void *hypre_GMRESCreate_dbl( hypre_GMRESFunctions *gmres_functions ); +void *hypre_GMRESCreate_long_dbl( hypre_GMRESFunctions *gmres_functions ); +HYPRE_Int hypre_GMRESDestroy_flt ( void *gmres_vdata ); +HYPRE_Int hypre_GMRESDestroy_dbl ( void *gmres_vdata ); +HYPRE_Int hypre_GMRESDestroy_long_dbl ( void *gmres_vdata ); +hypre_FlexGMRESFunctions *hypre_GMRESFunctionsCreate_flt( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_float alpha, void *A, + void *x, hypre_float beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_float (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_float alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_float alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_FlexGMRESFunctions *hypre_GMRESFunctionsCreate_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_double alpha, void *A, + void *x, hypre_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +hypre_FlexGMRESFunctions *hypre_GMRESFunctionsCreate_long_dbl( + void *(*CAlloc) ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ), + HYPRE_Int (*Free) ( void *ptr ), + HYPRE_Int (*CommInfo) ( void *A, HYPRE_Int *my_id, + HYPRE_Int *num_procs ), + void *(*CreateVector) ( void *vector ), + void *(*CreateVectorArray) ( HYPRE_Int size, void *vectors ), + HYPRE_Int (*DestroyVector) ( void *vector ), + void *(*MatvecCreate) ( void *A, void *x ), + HYPRE_Int (*Matvec) ( void *matvec_data, hypre_long_double alpha, void *A, + void *x, hypre_long_double beta, void *y ), + HYPRE_Int (*MatvecDestroy) ( void *matvec_data ), + hypre_long_double (*InnerProd) ( void *x, void *y ), + HYPRE_Int (*CopyVector) ( void *x, void *y ), + HYPRE_Int (*ClearVector) ( void *x ), + HYPRE_Int (*ScaleVector) ( hypre_long_double alpha, void *x ), + HYPRE_Int (*Axpy) ( hypre_long_double alpha, void *x, void *y ), + HYPRE_Int (*PrecondSetup) ( void *vdata, void *A, void *b, void *x ), + HYPRE_Int (*Precond) ( void *vdata, void *A, void *b, void *x ) + ); +HYPRE_Int hypre_GMRESGetAbsoluteTol_flt ( void *gmres_vdata, hypre_float *a_tol ); +HYPRE_Int hypre_GMRESGetAbsoluteTol_dbl ( void *gmres_vdata, hypre_double *a_tol ); +HYPRE_Int hypre_GMRESGetAbsoluteTol_long_dbl ( void *gmres_vdata, hypre_long_double *a_tol ); +HYPRE_Int hypre_GMRESGetConverged_flt ( void *gmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_GMRESGetConverged_dbl ( void *gmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_GMRESGetConverged_long_dbl ( void *gmres_vdata, HYPRE_Int *converged ); +HYPRE_Int hypre_GMRESGetConvergenceFactorTol_flt ( void *gmres_vdata, hypre_float *cf_tol ); +HYPRE_Int hypre_GMRESGetConvergenceFactorTol_dbl ( void *gmres_vdata, hypre_double *cf_tol ); +HYPRE_Int hypre_GMRESGetConvergenceFactorTol_long_dbl ( void *gmres_vdata, hypre_long_double *cf_tol ); +HYPRE_Int hypre_GMRESGetFinalRelativeResidualNorm_flt ( void *gmres_vdata, + hypre_float *relative_residual_norm ); +HYPRE_Int hypre_GMRESGetFinalRelativeResidualNorm_dbl ( void *gmres_vdata, + hypre_double *relative_residual_norm ); +HYPRE_Int hypre_GMRESGetFinalRelativeResidualNorm_long_dbl ( void *gmres_vdata, + hypre_long_double *relative_residual_norm ); +HYPRE_Int hypre_GMRESGetKDim_flt ( void *gmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_GMRESGetKDim_dbl ( void *gmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_GMRESGetKDim_long_dbl ( void *gmres_vdata, HYPRE_Int *k_dim ); +HYPRE_Int hypre_GMRESGetLogging_flt ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_GMRESGetLogging_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_GMRESGetLogging_long_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_GMRESGetMaxIter_flt ( void *gmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_GMRESGetMaxIter_dbl ( void *gmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_GMRESGetMaxIter_long_dbl ( void *gmres_vdata, HYPRE_Int *max_iter ); +HYPRE_Int hypre_GMRESGetMinIter_flt ( void *gmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_GMRESGetMinIter_dbl ( void *gmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_GMRESGetMinIter_long_dbl ( void *gmres_vdata, HYPRE_Int *min_iter ); +HYPRE_Int hypre_GMRESGetNumIterations_flt ( void *gmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_GMRESGetNumIterations_dbl ( void *gmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_GMRESGetNumIterations_long_dbl ( void *gmres_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_GMRESGetPrintLevel_flt ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_GMRESGetPrintLevel_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_GMRESGetPrintLevel_long_dbl ( void *gmres_vdata, HYPRE_Int *level ); +HYPRE_Int hypre_GMRESGetRelChange_flt ( void *gmres_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_GMRESGetRelChange_dbl ( void *gmres_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_GMRESGetRelChange_long_dbl ( void *gmres_vdata, HYPRE_Int *rel_change ); +HYPRE_Int hypre_GMRESGetResidual_flt ( void *gmres_vdata, void **residual ); +HYPRE_Int hypre_GMRESGetResidual_dbl ( void *gmres_vdata, void **residual ); +HYPRE_Int hypre_GMRESGetResidual_long_dbl ( void *gmres_vdata, void **residual ); +HYPRE_Int hypre_GMRESGetSkipRealResidualCheck_flt ( void *gmres_vdata, HYPRE_Int *skip_real_r_check ); +HYPRE_Int hypre_GMRESGetSkipRealResidualCheck_dbl ( void *gmres_vdata, HYPRE_Int *skip_real_r_check ); +HYPRE_Int hypre_GMRESGetSkipRealResidualCheck_long_dbl ( void *gmres_vdata, HYPRE_Int *skip_real_r_check ); +HYPRE_Int hypre_GMRESGetStopCrit_flt ( void *gmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_GMRESGetStopCrit_dbl ( void *gmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_GMRESGetStopCrit_long_dbl ( void *gmres_vdata, HYPRE_Int *stop_crit ); +HYPRE_Int hypre_GMRESGetTol_flt ( void *gmres_vdata, hypre_float *tol ); +HYPRE_Int hypre_GMRESGetTol_dbl ( void *gmres_vdata, hypre_double *tol ); +HYPRE_Int hypre_GMRESGetTol_long_dbl ( void *gmres_vdata, hypre_long_double *tol ); +HYPRE_Int hypre_GMRESSetAbsoluteTol_flt ( void *gmres_vdata, hypre_float a_tol ); +HYPRE_Int hypre_GMRESSetAbsoluteTol_dbl ( void *gmres_vdata, hypre_double a_tol ); +HYPRE_Int hypre_GMRESSetAbsoluteTol_long_dbl ( void *gmres_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_GMRESSetConvergenceFactorTol_flt ( void *gmres_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_GMRESSetConvergenceFactorTol_dbl ( void *gmres_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_GMRESSetConvergenceFactorTol_long_dbl ( void *gmres_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_GMRESSetHybrid_flt ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetHybrid_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetHybrid_long_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetKDim_flt ( void *gmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_GMRESSetKDim_dbl ( void *gmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_GMRESSetKDim_long_dbl ( void *gmres_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_GMRESSetLogging_flt ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetLogging_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetLogging_long_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetMaxIter_flt ( void *gmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_GMRESSetMaxIter_dbl ( void *gmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_GMRESSetMaxIter_long_dbl ( void *gmres_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_GMRESSetMinIter_flt ( void *gmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_GMRESSetMinIter_dbl ( void *gmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_GMRESSetMinIter_long_dbl ( void *gmres_vdata, HYPRE_Int min_iter ); +HYPRE_Int hypre_GMRESSetPrecond_flt ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), + HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_GMRESSetPrecond_dbl ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), + HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_GMRESSetPrecond_long_dbl ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, + void*), + HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_GMRESSetPrecondMatrix_flt( void *gmres_vdata, void *precond_matrix ); +HYPRE_Int hypre_GMRESSetPrecondMatrix_dbl( void *gmres_vdata, void *precond_matrix ); +HYPRE_Int hypre_GMRESSetPrecondMatrix_long_dbl( void *gmres_vdata, void *precond_matrix ); +HYPRE_Int hypre_GMRESGetPrecondMatrix_flt( void *gmres_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_GMRESGetPrecondMatrix_dbl( void *gmres_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_GMRESGetPrecondMatrix_long_dbl( void *gmres_vdata, HYPRE_Matrix *precond_matrix_ptr ); +HYPRE_Int hypre_GMRESSetPrintLevel_flt ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetPrintLevel_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetPrintLevel_long_dbl ( void *gmres_vdata, HYPRE_Int level ); +HYPRE_Int hypre_GMRESSetRelChange_flt ( void *gmres_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_GMRESSetRelChange_dbl ( void *gmres_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_GMRESSetRelChange_long_dbl ( void *gmres_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_GMRESSetSkipRealResidualCheck_flt ( void *gmres_vdata, HYPRE_Int skip_real_r_check ); +HYPRE_Int hypre_GMRESSetSkipRealResidualCheck_dbl ( void *gmres_vdata, HYPRE_Int skip_real_r_check ); +HYPRE_Int hypre_GMRESSetSkipRealResidualCheck_long_dbl ( void *gmres_vdata, HYPRE_Int skip_real_r_check ); +HYPRE_Int hypre_GMRESSetStopCrit_flt ( void *gmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_GMRESSetStopCrit_dbl ( void *gmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_GMRESSetStopCrit_long_dbl ( void *gmres_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_GMRESSetTol_flt ( void *gmres_vdata, hypre_float tol ); +HYPRE_Int hypre_GMRESSetTol_dbl ( void *gmres_vdata, hypre_double tol ); +HYPRE_Int hypre_GMRESSetTol_long_dbl ( void *gmres_vdata, hypre_long_double tol ); +HYPRE_Int hypre_GMRESSetup_flt ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_GMRESSetup_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_GMRESSetup_long_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_GMRESSolve_flt ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_GMRESSolve_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_GMRESSolve_long_dbl ( void *gmres_vdata, void *A, void *b, void *x ); +#endif + +#endif diff --git a/src/krylov/krylov.h b/src/krylov/krylov.h index 03eeb124c9..6c0591603c 100644 --- a/src/krylov/krylov.h +++ b/src/krylov/krylov.h @@ -16,6 +16,10 @@ #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "krylov_mup_func.h" +#endif + #define hypre_CTAllocF(type, count, funcs, location) \ ( (type *)(*(funcs->CAlloc))((size_t)(count), (size_t)sizeof(type), location) ) @@ -133,7 +137,8 @@ typedef struct void *q; void *matvec_data; - void *precond_data; + void *precond_data; + void *precond_Mat; hypre_BiCGSTABFunctions * functions; @@ -444,6 +449,7 @@ typedef struct void *matvec_data; void *precond_data; + void *precond_Mat; hypre_GMRESFunctions * functions; @@ -1136,6 +1142,7 @@ typedef struct HYPRE_Int owns_matvec_data; /* normally 1; if 0, don't delete it */ void *matvec_data; void *precond_data; + void *precond_Mat; hypre_PCGFunctions * functions; @@ -1221,6 +1228,8 @@ HYPRE_Int hypre_BiCGSTABSetPrecond ( void *bicgstab_vdata, HYPRE_Int (*precond ) void*, void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); HYPRE_Int hypre_BiCGSTABGetPrecond ( void *bicgstab_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_BiCGSTABSetPrecondMatrix( void *bicgstab_vdata, void *precond_matrix ); +HYPRE_Int hypre_BiCGSTABGetPrecondMatrix( void *bicgstab_vdata, HYPRE_Matrix *precond_matrix_ptr ) ; HYPRE_Int hypre_BiCGSTABSetLogging ( void *bicgstab_vdata, HYPRE_Int logging ); HYPRE_Int hypre_BiCGSTABSetHybrid ( void *bicgstab_vdata, HYPRE_Int logging ); HYPRE_Int hypre_BiCGSTABSetPrintLevel ( void *bicgstab_vdata, HYPRE_Int print_level ); @@ -1275,8 +1284,10 @@ HYPRE_Int hypre_GMRESSetStopCrit ( void *gmres_vdata, HYPRE_Int stop_crit ); HYPRE_Int hypre_GMRESGetStopCrit ( void *gmres_vdata, HYPRE_Int *stop_crit ); HYPRE_Int hypre_GMRESSetPrecond ( void *gmres_vdata, HYPRE_Int (*precond )(void*, void*, void*, void*), - HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); HYPRE_Int hypre_GMRESGetPrecond ( void *gmres_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_GMRESSetPrecondMatrix ( void *gmres_vdata, void *precond_matrix ); +HYPRE_Int hypre_GMRESGetPrecondMatrix ( void *gmres_vdata, HYPRE_Matrix *precond_matrix_ptr ); HYPRE_Int hypre_GMRESSetPrintLevel ( void *gmres_vdata, HYPRE_Int level ); HYPRE_Int hypre_GMRESGetPrintLevel ( void *gmres_vdata, HYPRE_Int *level ); HYPRE_Int hypre_GMRESSetLogging ( void *gmres_vdata, HYPRE_Int level ); @@ -1414,6 +1425,8 @@ HYPRE_Int HYPRE_BiCGSTABSetStopCrit ( HYPRE_Solver solver, HYPRE_Int stop_crit ) HYPRE_Int HYPRE_BiCGSTABSetPrecond ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); HYPRE_Int HYPRE_BiCGSTABGetPrecond ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_BiCGSTABSetPrecondMatrix ( HYPRE_Solver solver , HYPRE_Matrix precond_matrix ); +HYPRE_Int HYPRE_BiCGSTABGetPrecondMatrix ( HYPRE_Solver solver , HYPRE_Matrix *precond_matrix_ptr ); HYPRE_Int HYPRE_BiCGSTABSetLogging ( HYPRE_Solver solver, HYPRE_Int logging ); HYPRE_Int HYPRE_BiCGSTABSetPrintLevel ( HYPRE_Solver solver, HYPRE_Int print_level ); HYPRE_Int HYPRE_BiCGSTABGetNumIterations ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); @@ -1459,6 +1472,8 @@ HYPRE_Int HYPRE_GMRESGetSkipRealResidualCheck ( HYPRE_Solver solver, HYPRE_Int * HYPRE_Int HYPRE_GMRESSetPrecond ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); HYPRE_Int HYPRE_GMRESGetPrecond ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_GMRESSetPrecondMatrix ( HYPRE_Solver solver , HYPRE_Matrix precond_matrix ); +HYPRE_Int HYPRE_GMRESGetPrecondMatrix ( HYPRE_Solver solver , HYPRE_Matrix *precond_matrix_ptr ); HYPRE_Int HYPRE_GMRESSetPrintLevel ( HYPRE_Solver solver, HYPRE_Int level ); HYPRE_Int HYPRE_GMRESGetPrintLevel ( HYPRE_Solver solver, HYPRE_Int *level ); HYPRE_Int HYPRE_GMRESSetLogging ( HYPRE_Solver solver, HYPRE_Int level ); @@ -1598,8 +1613,10 @@ HYPRE_Int HYPRE_PCGSetFlex ( HYPRE_Solver solver, HYPRE_Int flex ); HYPRE_Int HYPRE_PCGGetFlex ( HYPRE_Solver solver, HYPRE_Int *flex ); HYPRE_Int HYPRE_PCGSetPrecond ( HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_PCGSetPrecondMatrix ( HYPRE_Solver solver , HYPRE_Matrix precond_matrix ); HYPRE_Int HYPRE_PCGSetPreconditioner ( HYPRE_Solver solver, HYPRE_Solver precond_solver ); HYPRE_Int HYPRE_PCGGetPrecond ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_PCGGetPrecondMatrix ( HYPRE_Solver solver , HYPRE_Matrix *precond_matrix_ptr ); HYPRE_Int HYPRE_PCGSetLogging ( HYPRE_Solver solver, HYPRE_Int level ); HYPRE_Int HYPRE_PCGGetLogging ( HYPRE_Solver solver, HYPRE_Int *level ); HYPRE_Int HYPRE_PCGSetPrintLevel ( HYPRE_Solver solver, HYPRE_Int level ); @@ -1642,10 +1659,12 @@ HYPRE_Int hypre_PCGGetSkipBreak ( void *pcg_vdata, HYPRE_Int *skip_break ); HYPRE_Int hypre_PCGSetFlex ( void *pcg_vdata, HYPRE_Int flex ); HYPRE_Int hypre_PCGGetFlex ( void *pcg_vdata, HYPRE_Int *flex ); HYPRE_Int hypre_PCGGetPrecond ( void *pcg_vdata, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int hypre_PCGGetPrecondMatrix( void *pcg_vdata, HYPRE_Matrix *precond_matrix_ptr ); HYPRE_Int hypre_PCGSetPrecond ( void *pcg_vdata, HYPRE_Int (*precond )(void*, void*, void*, void*), HYPRE_Int (*precond_setup )(void*, void*, void*, void*), void *precond_data ); +HYPRE_Int hypre_PCGSetPrecondMatrix( void *pcg_vdata, void *precond_matrix ); HYPRE_Int hypre_PCGSetPreconditioner ( void *pcg_vdata, void *precond_data ); HYPRE_Int hypre_PCGSetPrintLevel ( void *pcg_vdata, HYPRE_Int level ); HYPRE_Int hypre_PCGGetPrintLevel ( void *pcg_vdata, HYPRE_Int *level ); diff --git a/src/krylov/krylov_func_header b/src/krylov/krylov_func_header new file mode 100755 index 0000000000..20ad4efd48 --- /dev/null +++ b/src/krylov/krylov_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=krylov_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'krylov_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef KRYLOV_MUP_FUNC_HEADER +#define KRYLOV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=krylov_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/krylov/krylov_functions.saved b/src/krylov/krylov_functions.saved new file mode 100644 index 0000000000..1fc2353f42 --- /dev/null +++ b/src/krylov/krylov_functions.saved @@ -0,0 +1,442 @@ +hypre_BiCGSTABCreate +hypre_BiCGSTABDestroy +hypre_BiCGSTABFunctionsCreate +hypre_BiCGSTABGetConverged +hypre_BiCGSTABGetFinalRelativeResidualNorm +hypre_BiCGSTABGetNumIterations +hypre_BiCGSTABGetPrecond +hypre_BiCGSTABGetPrecondMatrix +hypre_BiCGSTABGetResidual +hypre_BiCGSTABSetAbsoluteTol +hypre_BiCGSTABSetConvergenceFactorTol +hypre_BiCGSTABSetHybrid +hypre_BiCGSTABSetLogging +hypre_BiCGSTABSetMaxIter +hypre_BiCGSTABSetMinIter +hypre_BiCGSTABSetPrecond +hypre_BiCGSTABSetPrecondMatrix +hypre_BiCGSTABSetPrintLevel +hypre_BiCGSTABSetStopCrit +hypre_BiCGSTABSetTol +hypre_BiCGSTABSetup +hypre_BiCGSTABSolve +hypre_CGNRCreate +hypre_CGNRDestroy +hypre_CGNRFunctionsCreate +hypre_CGNRGetFinalRelativeResidualNorm +hypre_CGNRGetNumIterations +hypre_CGNRGetPrecond +hypre_CGNRSetLogging +hypre_CGNRSetMaxIter +hypre_CGNRSetMinIter +hypre_CGNRSetPrecond +hypre_CGNRSetStopCrit +hypre_CGNRSetTol +hypre_CGNRSetup +hypre_CGNRSolve +hypre_COGMRESCreate +hypre_COGMRESDestroy +hypre_COGMRESFunctionsCreate +hypre_COGMRESGetAbsoluteTol +hypre_COGMRESGetCGS +hypre_COGMRESGetConverged +hypre_COGMRESGetConvergenceFactorTol +hypre_COGMRESGetFinalRelativeResidualNorm +hypre_COGMRESGetKDim +hypre_COGMRESGetLogging +hypre_COGMRESGetMaxIter +hypre_COGMRESGetMinIter +hypre_COGMRESGetNumIterations +hypre_COGMRESGetPrecond +hypre_COGMRESGetPrintLevel +hypre_COGMRESGetRelChange +hypre_COGMRESGetResidual +hypre_COGMRESGetSkipRealResidualCheck +hypre_COGMRESGetTol +hypre_COGMRESGetUnroll +hypre_COGMRESSetAbsoluteTol +hypre_COGMRESSetCGS +hypre_COGMRESSetConvergenceFactorTol +hypre_COGMRESSetKDim +hypre_COGMRESSetLogging +hypre_COGMRESSetMaxIter +hypre_COGMRESSetMinIter +hypre_COGMRESSetModifyPC +hypre_COGMRESSetPrecond +hypre_COGMRESSetPrintLevel +hypre_COGMRESSetRelChange +hypre_COGMRESSetSkipRealResidualCheck +hypre_COGMRESSetTol +hypre_COGMRESSetUnroll +hypre_COGMRESSetup +hypre_COGMRESSolve +hypre_FlexGMRESCreate +hypre_FlexGMRESDestroy +hypre_FlexGMRESFunctionsCreate +hypre_FlexGMRESGetAbsoluteTol +hypre_FlexGMRESGetConverged +hypre_FlexGMRESGetConvergenceFactorTol +hypre_FlexGMRESGetFinalRelativeResidualNorm +hypre_FlexGMRESGetKDim +hypre_FlexGMRESGetLogging +hypre_FlexGMRESGetMaxIter +hypre_FlexGMRESGetMinIter +hypre_FlexGMRESGetNumIterations +hypre_FlexGMRESGetPrecond +hypre_FlexGMRESGetPrintLevel +hypre_FlexGMRESGetResidual +hypre_FlexGMRESGetStopCrit +hypre_FlexGMRESGetTol +hypre_FlexGMRESModifyPCDefault +hypre_FlexGMRESSetAbsoluteTol +hypre_FlexGMRESSetConvergenceFactorTol +hypre_FlexGMRESSetKDim +hypre_FlexGMRESSetLogging +hypre_FlexGMRESSetMaxIter +hypre_FlexGMRESSetMinIter +hypre_FlexGMRESSetModifyPC +hypre_FlexGMRESSetPrecond +hypre_FlexGMRESSetPrintLevel +hypre_FlexGMRESSetStopCrit +hypre_FlexGMRESSetTol +hypre_FlexGMRESSetup +hypre_FlexGMRESSolve +hypre_GMRESCreate +hypre_GMRESDestroy +hypre_GMRESFunctionsCreate +hypre_GMRESGetAbsoluteTol +hypre_GMRESGetConverged +hypre_GMRESGetConvergenceFactorTol +hypre_GMRESGetFinalRelativeResidualNorm +hypre_GMRESGetKDim +hypre_GMRESGetLogging +hypre_GMRESGetMaxIter +hypre_GMRESGetMinIter +hypre_GMRESGetNumIterations +hypre_GMRESGetPrecond +hypre_GMRESGetPrecondMatrix +hypre_GMRESGetPrintLevel +hypre_GMRESGetRelChange +hypre_GMRESGetResidual +hypre_GMRESGetSkipRealResidualCheck +hypre_GMRESGetStopCrit +hypre_GMRESGetTol +hypre_GMRESSetAbsoluteTol +hypre_GMRESSetConvergenceFactorTol +hypre_GMRESSetHybrid +hypre_GMRESSetKDim +hypre_GMRESSetLogging +hypre_GMRESSetMaxIter +hypre_GMRESSetMinIter +hypre_GMRESSetPrecond +hypre_GMRESSetPrecondMatrix +hypre_GMRESSetPrintLevel +hypre_GMRESSetRelChange +hypre_GMRESSetSkipRealResidualCheck +hypre_GMRESSetStopCrit +hypre_GMRESSetTol +hypre_GMRESSetup +hypre_GMRESSolve +HYPRE_BiCGSTABDestroy +HYPRE_BiCGSTABGetFinalRelativeResidualNorm +HYPRE_BiCGSTABGetNumIterations +HYPRE_BiCGSTABGetPrecond +HYPRE_BiCGSTABGetPrecondMatrix +HYPRE_BiCGSTABGetResidual +HYPRE_BiCGSTABSetAbsoluteTol +HYPRE_BiCGSTABSetConvergenceFactorTol +HYPRE_BiCGSTABSetLogging +HYPRE_BiCGSTABSetMaxIter +HYPRE_BiCGSTABSetMinIter +HYPRE_BiCGSTABSetPrecond +HYPRE_BiCGSTABSetPrecondMatrix +HYPRE_BiCGSTABSetPrintLevel +HYPRE_BiCGSTABSetStopCrit +HYPRE_BiCGSTABSetTol +HYPRE_BiCGSTABSetup +HYPRE_BiCGSTABSolve +HYPRE_CGNRDestroy +HYPRE_CGNRGetFinalRelativeResidualNorm +HYPRE_CGNRGetNumIterations +HYPRE_CGNRGetPrecond +HYPRE_CGNRSetLogging +HYPRE_CGNRSetMaxIter +HYPRE_CGNRSetMinIter +HYPRE_CGNRSetPrecond +HYPRE_CGNRSetStopCrit +HYPRE_CGNRSetTol +HYPRE_CGNRSetup +HYPRE_CGNRSolve +HYPRE_COGMRESGetAbsoluteTol +HYPRE_COGMRESGetCGS +HYPRE_COGMRESGetConverged +HYPRE_COGMRESGetConvergenceFactorTol +HYPRE_COGMRESGetFinalRelativeResidualNorm +HYPRE_COGMRESGetKDim +HYPRE_COGMRESGetLogging +HYPRE_COGMRESGetMaxIter +HYPRE_COGMRESGetMinIter +HYPRE_COGMRESGetNumIterations +HYPRE_COGMRESGetPrecond +HYPRE_COGMRESGetPrintLevel +HYPRE_COGMRESGetResidual +HYPRE_COGMRESGetTol +HYPRE_COGMRESGetUnroll +HYPRE_COGMRESSetAbsoluteTol +HYPRE_COGMRESSetCGS +HYPRE_COGMRESSetConvergenceFactorTol +HYPRE_COGMRESSetKDim +HYPRE_COGMRESSetLogging +HYPRE_COGMRESSetMaxIter +HYPRE_COGMRESSetMinIter +HYPRE_COGMRESSetModifyPC +HYPRE_COGMRESSetPrecond +HYPRE_COGMRESSetPrintLevel +HYPRE_COGMRESSetTol +HYPRE_COGMRESSetUnroll +HYPRE_COGMRESSetup +HYPRE_COGMRESSolve +HYPRE_FlexGMRESGetAbsoluteTol +HYPRE_FlexGMRESGetConverged +HYPRE_FlexGMRESGetConvergenceFactorTol +HYPRE_FlexGMRESGetFinalRelativeResidualNorm +HYPRE_FlexGMRESGetKDim +HYPRE_FlexGMRESGetLogging +HYPRE_FlexGMRESGetMaxIter +HYPRE_FlexGMRESGetMinIter +HYPRE_FlexGMRESGetNumIterations +HYPRE_FlexGMRESGetPrecond +HYPRE_FlexGMRESGetPrintLevel +HYPRE_FlexGMRESGetResidual +HYPRE_FlexGMRESGetTol +HYPRE_FlexGMRESSetAbsoluteTol +HYPRE_FlexGMRESSetConvergenceFactorTol +HYPRE_FlexGMRESSetKDim +HYPRE_FlexGMRESSetLogging +HYPRE_FlexGMRESSetMaxIter +HYPRE_FlexGMRESSetMinIter +HYPRE_FlexGMRESSetModifyPC +HYPRE_FlexGMRESSetPrecond +HYPRE_FlexGMRESSetPrintLevel +HYPRE_FlexGMRESSetTol +HYPRE_FlexGMRESSetup +HYPRE_FlexGMRESSolve +HYPRE_GMRESGetAbsoluteTol +HYPRE_GMRESGetConverged +HYPRE_GMRESGetConvergenceFactorTol +HYPRE_GMRESGetFinalRelativeResidualNorm +HYPRE_GMRESGetKDim +HYPRE_GMRESGetLogging +HYPRE_GMRESGetMaxIter +HYPRE_GMRESGetMinIter +HYPRE_GMRESGetNumIterations +HYPRE_GMRESGetPrecond +HYPRE_GMRESGetPrecondMatrix +HYPRE_GMRESGetPrintLevel +HYPRE_GMRESGetRelChange +HYPRE_GMRESGetResidual +HYPRE_GMRESGetSkipRealResidualCheck +HYPRE_GMRESGetStopCrit +HYPRE_GMRESGetTol +HYPRE_GMRESSetAbsoluteTol +HYPRE_GMRESSetConvergenceFactorTol +HYPRE_GMRESSetKDim +HYPRE_GMRESSetLogging +HYPRE_GMRESSetMaxIter +HYPRE_GMRESSetMinIter +HYPRE_GMRESSetPrecond +HYPRE_GMRESSetPrecondMatrix +HYPRE_GMRESSetPrintLevel +HYPRE_GMRESSetRelChange +HYPRE_GMRESSetSkipRealResidualCheck +HYPRE_GMRESSetStopCrit +HYPRE_GMRESSetTol +HYPRE_GMRESSetup +HYPRE_GMRESSolve +HYPRE_LGMRESGetAbsoluteTol +HYPRE_LGMRESGetAugDim +HYPRE_LGMRESGetConverged +HYPRE_LGMRESGetConvergenceFactorTol +HYPRE_LGMRESGetFinalRelativeResidualNorm +HYPRE_LGMRESGetKDim +HYPRE_LGMRESGetLogging +HYPRE_LGMRESGetMaxIter +HYPRE_LGMRESGetMinIter +HYPRE_LGMRESGetNumIterations +HYPRE_LGMRESGetPrecond +HYPRE_LGMRESGetPrintLevel +HYPRE_LGMRESGetResidual +HYPRE_LGMRESGetTol +HYPRE_LGMRESSetAbsoluteTol +HYPRE_LGMRESSetAugDim +HYPRE_LGMRESSetConvergenceFactorTol +HYPRE_LGMRESSetKDim +HYPRE_LGMRESSetLogging +HYPRE_LGMRESSetMaxIter +HYPRE_LGMRESSetMinIter +HYPRE_LGMRESSetPrecond +HYPRE_LGMRESSetPrintLevel +HYPRE_LGMRESSetTol +HYPRE_LGMRESSetup +HYPRE_LGMRESSolve +HYPRE_LOBPCGCreate +HYPRE_LOBPCGDestroy +HYPRE_LOBPCGEigenvaluesHistory +HYPRE_LOBPCGGetPrecond +HYPRE_LOBPCGIterations +HYPRE_LOBPCGResidualNorms +HYPRE_LOBPCGResidualNormsHistory +HYPRE_LOBPCGSetMaxIter +HYPRE_LOBPCGSetPrecond +HYPRE_LOBPCGSetPrecondUsageMode +HYPRE_LOBPCGSetPrintLevel +HYPRE_LOBPCGSetRTol +HYPRE_LOBPCGSetTol +HYPRE_LOBPCGSetup +HYPRE_LOBPCGSetupB +HYPRE_LOBPCGSetupT +HYPRE_LOBPCGSolve +HYPRE_PCGGetAbsoluteTol +HYPRE_PCGGetAbsoluteTolFactor +HYPRE_PCGGetConverged +HYPRE_PCGGetConvergenceFactorTol +HYPRE_PCGGetFinalRelativeResidualNorm +HYPRE_PCGGetFlex +HYPRE_PCGGetLogging +HYPRE_PCGGetMaxIter +HYPRE_PCGGetNumIterations +HYPRE_PCGGetPrecond +HYPRE_PCGGetPrecondMatrix +HYPRE_PCGGetPrintLevel +HYPRE_PCGGetRecomputeResidual +HYPRE_PCGGetRecomputeResidualP +HYPRE_PCGGetRelChange +HYPRE_PCGGetResidual +HYPRE_PCGGetResidualTol +HYPRE_PCGGetSkipBreak +HYPRE_PCGGetStopCrit +HYPRE_PCGGetTol +HYPRE_PCGGetTwoNorm +HYPRE_PCGSetAbsoluteTol +HYPRE_PCGSetAbsoluteTolFactor +HYPRE_PCGSetConvergenceFactorTol +HYPRE_PCGSetFlex +HYPRE_PCGSetLogging +HYPRE_PCGSetMaxIter +HYPRE_PCGSetPrecond +HYPRE_PCGSetPreconditioner +HYPRE_PCGSetPrecondMatrix +HYPRE_PCGSetPrintLevel +HYPRE_PCGSetRecomputeResidual +HYPRE_PCGSetRecomputeResidualP +HYPRE_PCGSetRelChange +HYPRE_PCGSetResidualTol +HYPRE_PCGSetSkipBreak +HYPRE_PCGSetStopCrit +HYPRE_PCGSetTol +HYPRE_PCGSetTwoNorm +HYPRE_PCGSetup +HYPRE_PCGSolve +hypre_LGMRESCreate +hypre_LGMRESDestroy +hypre_LGMRESFunctionsCreate +hypre_LGMRESGetAbsoluteTol +hypre_LGMRESGetAugDim +hypre_LGMRESGetConverged +hypre_LGMRESGetConvergenceFactorTol +hypre_LGMRESGetFinalRelativeResidualNorm +hypre_LGMRESGetKDim +hypre_LGMRESGetLogging +hypre_LGMRESGetMaxIter +hypre_LGMRESGetMinIter +hypre_LGMRESGetNumIterations +hypre_LGMRESGetPrecond +hypre_LGMRESGetPrintLevel +hypre_LGMRESGetResidual +hypre_LGMRESGetStopCrit +hypre_LGMRESGetTol +hypre_LGMRESSetAbsoluteTol +hypre_LGMRESSetAugDim +hypre_LGMRESSetConvergenceFactorTol +hypre_LGMRESSetKDim +hypre_LGMRESSetLogging +hypre_LGMRESSetMaxIter +hypre_LGMRESSetMinIter +hypre_LGMRESSetPrecond +hypre_LGMRESSetPrintLevel +hypre_LGMRESSetStopCrit +hypre_LGMRESSetTol +hypre_LGMRESSetup +hypre_LGMRESSolve +hypre_LOBPCGDestroy +hypre_LOBPCGEigenvaluesHistory +hypre_LOBPCGGetPrecond +hypre_LOBPCGIterations +hypre_LOBPCGMultiOperatorA +hypre_LOBPCGMultiOperatorB +hypre_LOBPCGMultiPreconditioner +hypre_LOBPCGOperatorA +hypre_LOBPCGOperatorB +hypre_LOBPCGPreconditioner +hypre_LOBPCGResidualNorms +hypre_LOBPCGResidualNormsHistory +hypre_LOBPCGSetMaxIter +hypre_LOBPCGSetPrecond +hypre_LOBPCGSetPrecondUsageMode +hypre_LOBPCGSetPrintLevel +hypre_LOBPCGSetRTol +hypre_LOBPCGSetTol +hypre_LOBPCGSetup +hypre_LOBPCGSetupB +hypre_LOBPCGSetupT +hypre_LOBPCGSolve +lobpcg_clean +lobpcg_initialize +lobpcg_MultiVectorByMultiVector +lobpcg_solve +hypre_PCGCreate +hypre_PCGDestroy +hypre_PCGFunctionsCreate +hypre_PCGGetAbsoluteTol +hypre_PCGGetAbsoluteTolFactor +hypre_PCGGetConverged +hypre_PCGGetConvergenceFactorTol +hypre_PCGGetFinalRelativeResidualNorm +hypre_PCGGetFlex +hypre_PCGGetLogging +hypre_PCGGetMaxIter +hypre_PCGGetNumIterations +hypre_PCGGetPrecond +hypre_PCGGetPrecondMatrix +hypre_PCGGetPrintLevel +hypre_PCGGetRecomputeResidual +hypre_PCGGetRecomputeResidualP +hypre_PCGGetRelChange +hypre_PCGGetResidual +hypre_PCGGetResidualTol +hypre_PCGGetSkipBreak +hypre_PCGGetStopCrit +hypre_PCGGetTol +hypre_PCGGetTwoNorm +hypre_PCGPrintLogging +hypre_PCGSetAbsoluteTol +hypre_PCGSetAbsoluteTolFactor +hypre_PCGSetConvergenceFactorTol +hypre_PCGSetFlex +hypre_PCGSetHybrid +hypre_PCGSetLogging +hypre_PCGSetMaxIter +hypre_PCGSetPrecond +hypre_PCGSetPreconditioner +hypre_PCGSetPrecondMatrix +hypre_PCGSetPrintLevel +hypre_PCGSetRecomputeResidual +hypre_PCGSetRecomputeResidualP +hypre_PCGSetRelChange +hypre_PCGSetResidualTol +hypre_PCGSetSkipBreak +hypre_PCGSetStopCrit +hypre_PCGSetTol +hypre_PCGSetTwoNorm +hypre_PCGSetup +hypre_PCGSolve diff --git a/src/krylov/krylov_mup_func.h b/src/krylov/krylov_mup_func.h new file mode 100644 index 0000000000..591d546a6a --- /dev/null +++ b/src/krylov/krylov_mup_func.h @@ -0,0 +1,462 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'krylov_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef KRYLOV_MUP_FUNC_HEADER +#define KRYLOV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_BiCGSTABCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABCreate ) +#define hypre_BiCGSTABDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABDestroy ) +#define hypre_BiCGSTABFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABFunctionsCreate ) +#define hypre_BiCGSTABGetConverged HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABGetConverged ) +#define hypre_BiCGSTABGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABGetFinalRelativeResidualNorm ) +#define hypre_BiCGSTABGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABGetNumIterations ) +#define hypre_BiCGSTABGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABGetPrecond ) +#define hypre_BiCGSTABGetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABGetPrecondMatrix ) +#define hypre_BiCGSTABGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABGetResidual ) +#define hypre_BiCGSTABSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetAbsoluteTol ) +#define hypre_BiCGSTABSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetConvergenceFactorTol ) +#define hypre_BiCGSTABSetHybrid HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetHybrid ) +#define hypre_BiCGSTABSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetLogging ) +#define hypre_BiCGSTABSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetMaxIter ) +#define hypre_BiCGSTABSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetMinIter ) +#define hypre_BiCGSTABSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetPrecond ) +#define hypre_BiCGSTABSetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetPrecondMatrix ) +#define hypre_BiCGSTABSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetPrintLevel ) +#define hypre_BiCGSTABSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetStopCrit ) +#define hypre_BiCGSTABSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetTol ) +#define hypre_BiCGSTABSetup HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSetup ) +#define hypre_BiCGSTABSolve HYPRE_MULTIPRECISION_FUNC ( hypre_BiCGSTABSolve ) +#define hypre_CGNRCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRCreate ) +#define hypre_CGNRDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRDestroy ) +#define hypre_CGNRFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRFunctionsCreate ) +#define hypre_CGNRGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRGetFinalRelativeResidualNorm ) +#define hypre_CGNRGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRGetNumIterations ) +#define hypre_CGNRGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRGetPrecond ) +#define hypre_CGNRSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetLogging ) +#define hypre_CGNRSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetMaxIter ) +#define hypre_CGNRSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetMinIter ) +#define hypre_CGNRSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetPrecond ) +#define hypre_CGNRSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetStopCrit ) +#define hypre_CGNRSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetTol ) +#define hypre_CGNRSetup HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSetup ) +#define hypre_CGNRSolve HYPRE_MULTIPRECISION_FUNC ( hypre_CGNRSolve ) +#define hypre_COGMRESCreate HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESCreate ) +#define hypre_COGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESDestroy ) +#define hypre_COGMRESFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESFunctionsCreate ) +#define hypre_COGMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetAbsoluteTol ) +#define hypre_COGMRESGetCGS HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetCGS ) +#define hypre_COGMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetConverged ) +#define hypre_COGMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetConvergenceFactorTol ) +#define hypre_COGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetFinalRelativeResidualNorm ) +#define hypre_COGMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetKDim ) +#define hypre_COGMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetLogging ) +#define hypre_COGMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetMaxIter ) +#define hypre_COGMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetMinIter ) +#define hypre_COGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetNumIterations ) +#define hypre_COGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetPrecond ) +#define hypre_COGMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetPrintLevel ) +#define hypre_COGMRESGetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetRelChange ) +#define hypre_COGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetResidual ) +#define hypre_COGMRESGetSkipRealResidualCheck HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetSkipRealResidualCheck ) +#define hypre_COGMRESGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetTol ) +#define hypre_COGMRESGetUnroll HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESGetUnroll ) +#define hypre_COGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetAbsoluteTol ) +#define hypre_COGMRESSetCGS HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetCGS ) +#define hypre_COGMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetConvergenceFactorTol ) +#define hypre_COGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetKDim ) +#define hypre_COGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetLogging ) +#define hypre_COGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetMaxIter ) +#define hypre_COGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetMinIter ) +#define hypre_COGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetModifyPC ) +#define hypre_COGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetPrecond ) +#define hypre_COGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetPrintLevel ) +#define hypre_COGMRESSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetRelChange ) +#define hypre_COGMRESSetSkipRealResidualCheck HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetSkipRealResidualCheck ) +#define hypre_COGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetTol ) +#define hypre_COGMRESSetUnroll HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetUnroll ) +#define hypre_COGMRESSetup HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSetup ) +#define hypre_COGMRESSolve HYPRE_MULTIPRECISION_FUNC ( hypre_COGMRESSolve ) +#define hypre_FlexGMRESCreate HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESCreate ) +#define hypre_FlexGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESDestroy ) +#define hypre_FlexGMRESFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESFunctionsCreate ) +#define hypre_FlexGMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetAbsoluteTol ) +#define hypre_FlexGMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetConverged ) +#define hypre_FlexGMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetConvergenceFactorTol ) +#define hypre_FlexGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetFinalRelativeResidualNorm ) +#define hypre_FlexGMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetKDim ) +#define hypre_FlexGMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetLogging ) +#define hypre_FlexGMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetMaxIter ) +#define hypre_FlexGMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetMinIter ) +#define hypre_FlexGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetNumIterations ) +#define hypre_FlexGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetPrecond ) +#define hypre_FlexGMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetPrintLevel ) +#define hypre_FlexGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetResidual ) +#define hypre_FlexGMRESGetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetStopCrit ) +#define hypre_FlexGMRESGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESGetTol ) +#define hypre_FlexGMRESModifyPCDefault HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESModifyPCDefault ) +#define hypre_FlexGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetAbsoluteTol ) +#define hypre_FlexGMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetConvergenceFactorTol ) +#define hypre_FlexGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetKDim ) +#define hypre_FlexGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetLogging ) +#define hypre_FlexGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetMaxIter ) +#define hypre_FlexGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetMinIter ) +#define hypre_FlexGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetModifyPC ) +#define hypre_FlexGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetPrecond ) +#define hypre_FlexGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetPrintLevel ) +#define hypre_FlexGMRESSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetStopCrit ) +#define hypre_FlexGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetTol ) +#define hypre_FlexGMRESSetup HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSetup ) +#define hypre_FlexGMRESSolve HYPRE_MULTIPRECISION_FUNC ( hypre_FlexGMRESSolve ) +#define hypre_GMRESCreate HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESCreate ) +#define hypre_GMRESDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESDestroy ) +#define hypre_GMRESFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESFunctionsCreate ) +#define hypre_GMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetAbsoluteTol ) +#define hypre_GMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetConverged ) +#define hypre_GMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetConvergenceFactorTol ) +#define hypre_GMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetFinalRelativeResidualNorm ) +#define hypre_GMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetKDim ) +#define hypre_GMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetLogging ) +#define hypre_GMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetMaxIter ) +#define hypre_GMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetMinIter ) +#define hypre_GMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetNumIterations ) +#define hypre_GMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetPrecond ) +#define hypre_GMRESGetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetPrecondMatrix ) +#define hypre_GMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetPrintLevel ) +#define hypre_GMRESGetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetRelChange ) +#define hypre_GMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetResidual ) +#define hypre_GMRESGetSkipRealResidualCheck HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetSkipRealResidualCheck ) +#define hypre_GMRESGetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetStopCrit ) +#define hypre_GMRESGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESGetTol ) +#define hypre_GMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetAbsoluteTol ) +#define hypre_GMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetConvergenceFactorTol ) +#define hypre_GMRESSetHybrid HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetHybrid ) +#define hypre_GMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetKDim ) +#define hypre_GMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetLogging ) +#define hypre_GMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetMaxIter ) +#define hypre_GMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetMinIter ) +#define hypre_GMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetPrecond ) +#define hypre_GMRESSetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetPrecondMatrix ) +#define hypre_GMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetPrintLevel ) +#define hypre_GMRESSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetRelChange ) +#define hypre_GMRESSetSkipRealResidualCheck HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetSkipRealResidualCheck ) +#define hypre_GMRESSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetStopCrit ) +#define hypre_GMRESSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetTol ) +#define hypre_GMRESSetup HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSetup ) +#define hypre_GMRESSolve HYPRE_MULTIPRECISION_FUNC ( hypre_GMRESSolve ) +#define HYPRE_BiCGSTABDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABDestroy ) +#define HYPRE_BiCGSTABGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABGetFinalRelativeResidualNorm ) +#define HYPRE_BiCGSTABGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABGetNumIterations ) +#define HYPRE_BiCGSTABGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABGetPrecond ) +#define HYPRE_BiCGSTABGetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABGetPrecondMatrix ) +#define HYPRE_BiCGSTABGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABGetResidual ) +#define HYPRE_BiCGSTABSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetAbsoluteTol ) +#define HYPRE_BiCGSTABSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetConvergenceFactorTol ) +#define HYPRE_BiCGSTABSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetLogging ) +#define HYPRE_BiCGSTABSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetMaxIter ) +#define HYPRE_BiCGSTABSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetMinIter ) +#define HYPRE_BiCGSTABSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetPrecond ) +#define HYPRE_BiCGSTABSetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetPrecondMatrix ) +#define HYPRE_BiCGSTABSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetPrintLevel ) +#define HYPRE_BiCGSTABSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetStopCrit ) +#define HYPRE_BiCGSTABSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetTol ) +#define HYPRE_BiCGSTABSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSetup ) +#define HYPRE_BiCGSTABSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_BiCGSTABSolve ) +#define HYPRE_CGNRDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRDestroy ) +#define HYPRE_CGNRGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRGetFinalRelativeResidualNorm ) +#define HYPRE_CGNRGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRGetNumIterations ) +#define HYPRE_CGNRGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRGetPrecond ) +#define HYPRE_CGNRSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetLogging ) +#define HYPRE_CGNRSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetMaxIter ) +#define HYPRE_CGNRSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetMinIter ) +#define HYPRE_CGNRSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetPrecond ) +#define HYPRE_CGNRSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetStopCrit ) +#define HYPRE_CGNRSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetTol ) +#define HYPRE_CGNRSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSetup ) +#define HYPRE_CGNRSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_CGNRSolve ) +#define HYPRE_COGMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetAbsoluteTol ) +#define HYPRE_COGMRESGetCGS HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetCGS ) +#define HYPRE_COGMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetConverged ) +#define HYPRE_COGMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetConvergenceFactorTol ) +#define HYPRE_COGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_COGMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetKDim ) +#define HYPRE_COGMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetLogging ) +#define HYPRE_COGMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetMaxIter ) +#define HYPRE_COGMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetMinIter ) +#define HYPRE_COGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetNumIterations ) +#define HYPRE_COGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetPrecond ) +#define HYPRE_COGMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetPrintLevel ) +#define HYPRE_COGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetResidual ) +#define HYPRE_COGMRESGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetTol ) +#define HYPRE_COGMRESGetUnroll HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESGetUnroll ) +#define HYPRE_COGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetAbsoluteTol ) +#define HYPRE_COGMRESSetCGS HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetCGS ) +#define HYPRE_COGMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetConvergenceFactorTol ) +#define HYPRE_COGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetKDim ) +#define HYPRE_COGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetLogging ) +#define HYPRE_COGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetMaxIter ) +#define HYPRE_COGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetMinIter ) +#define HYPRE_COGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetModifyPC ) +#define HYPRE_COGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetPrecond ) +#define HYPRE_COGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetPrintLevel ) +#define HYPRE_COGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetTol ) +#define HYPRE_COGMRESSetUnroll HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetUnroll ) +#define HYPRE_COGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSetup ) +#define HYPRE_COGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_COGMRESSolve ) +#define HYPRE_FlexGMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetAbsoluteTol ) +#define HYPRE_FlexGMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetConverged ) +#define HYPRE_FlexGMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetConvergenceFactorTol ) +#define HYPRE_FlexGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_FlexGMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetKDim ) +#define HYPRE_FlexGMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetLogging ) +#define HYPRE_FlexGMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetMaxIter ) +#define HYPRE_FlexGMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetMinIter ) +#define HYPRE_FlexGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetNumIterations ) +#define HYPRE_FlexGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetPrecond ) +#define HYPRE_FlexGMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetPrintLevel ) +#define HYPRE_FlexGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetResidual ) +#define HYPRE_FlexGMRESGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESGetTol ) +#define HYPRE_FlexGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetAbsoluteTol ) +#define HYPRE_FlexGMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetConvergenceFactorTol ) +#define HYPRE_FlexGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetKDim ) +#define HYPRE_FlexGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetLogging ) +#define HYPRE_FlexGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetMaxIter ) +#define HYPRE_FlexGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetMinIter ) +#define HYPRE_FlexGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetModifyPC ) +#define HYPRE_FlexGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetPrecond ) +#define HYPRE_FlexGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetPrintLevel ) +#define HYPRE_FlexGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetTol ) +#define HYPRE_FlexGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSetup ) +#define HYPRE_FlexGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_FlexGMRESSolve ) +#define HYPRE_GMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetAbsoluteTol ) +#define HYPRE_GMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetConverged ) +#define HYPRE_GMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetConvergenceFactorTol ) +#define HYPRE_GMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetFinalRelativeResidualNorm ) +#define HYPRE_GMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetKDim ) +#define HYPRE_GMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetLogging ) +#define HYPRE_GMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetMaxIter ) +#define HYPRE_GMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetMinIter ) +#define HYPRE_GMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetNumIterations ) +#define HYPRE_GMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetPrecond ) +#define HYPRE_GMRESGetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetPrecondMatrix ) +#define HYPRE_GMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetPrintLevel ) +#define HYPRE_GMRESGetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetRelChange ) +#define HYPRE_GMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetResidual ) +#define HYPRE_GMRESGetSkipRealResidualCheck HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetSkipRealResidualCheck ) +#define HYPRE_GMRESGetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetStopCrit ) +#define HYPRE_GMRESGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESGetTol ) +#define HYPRE_GMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetAbsoluteTol ) +#define HYPRE_GMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetConvergenceFactorTol ) +#define HYPRE_GMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetKDim ) +#define HYPRE_GMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetLogging ) +#define HYPRE_GMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetMaxIter ) +#define HYPRE_GMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetMinIter ) +#define HYPRE_GMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetPrecond ) +#define HYPRE_GMRESSetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetPrecondMatrix ) +#define HYPRE_GMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetPrintLevel ) +#define HYPRE_GMRESSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetRelChange ) +#define HYPRE_GMRESSetSkipRealResidualCheck HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetSkipRealResidualCheck ) +#define HYPRE_GMRESSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetStopCrit ) +#define HYPRE_GMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetTol ) +#define HYPRE_GMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSetup ) +#define HYPRE_GMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_GMRESSolve ) +#define HYPRE_LGMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetAbsoluteTol ) +#define HYPRE_LGMRESGetAugDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetAugDim ) +#define HYPRE_LGMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetConverged ) +#define HYPRE_LGMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetConvergenceFactorTol ) +#define HYPRE_LGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_LGMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetKDim ) +#define HYPRE_LGMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetLogging ) +#define HYPRE_LGMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetMaxIter ) +#define HYPRE_LGMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetMinIter ) +#define HYPRE_LGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetNumIterations ) +#define HYPRE_LGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetPrecond ) +#define HYPRE_LGMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetPrintLevel ) +#define HYPRE_LGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetResidual ) +#define HYPRE_LGMRESGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESGetTol ) +#define HYPRE_LGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetAbsoluteTol ) +#define HYPRE_LGMRESSetAugDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetAugDim ) +#define HYPRE_LGMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetConvergenceFactorTol ) +#define HYPRE_LGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetKDim ) +#define HYPRE_LGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetLogging ) +#define HYPRE_LGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetMaxIter ) +#define HYPRE_LGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetMinIter ) +#define HYPRE_LGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetPrecond ) +#define HYPRE_LGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetPrintLevel ) +#define HYPRE_LGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetTol ) +#define HYPRE_LGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSetup ) +#define HYPRE_LGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_LGMRESSolve ) +#define HYPRE_LOBPCGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGCreate ) +#define HYPRE_LOBPCGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGDestroy ) +#define HYPRE_LOBPCGEigenvaluesHistory HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGEigenvaluesHistory ) +#define HYPRE_LOBPCGGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGGetPrecond ) +#define HYPRE_LOBPCGIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGIterations ) +#define HYPRE_LOBPCGResidualNorms HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGResidualNorms ) +#define HYPRE_LOBPCGResidualNormsHistory HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGResidualNormsHistory ) +#define HYPRE_LOBPCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetMaxIter ) +#define HYPRE_LOBPCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetPrecond ) +#define HYPRE_LOBPCGSetPrecondUsageMode HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetPrecondUsageMode ) +#define HYPRE_LOBPCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetPrintLevel ) +#define HYPRE_LOBPCGSetRTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetRTol ) +#define HYPRE_LOBPCGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetTol ) +#define HYPRE_LOBPCGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetup ) +#define HYPRE_LOBPCGSetupB HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetupB ) +#define HYPRE_LOBPCGSetupT HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSetupT ) +#define HYPRE_LOBPCGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_LOBPCGSolve ) +#define HYPRE_PCGGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetAbsoluteTol ) +#define HYPRE_PCGGetAbsoluteTolFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetAbsoluteTolFactor ) +#define HYPRE_PCGGetConverged HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetConverged ) +#define HYPRE_PCGGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetConvergenceFactorTol ) +#define HYPRE_PCGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetFinalRelativeResidualNorm ) +#define HYPRE_PCGGetFlex HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetFlex ) +#define HYPRE_PCGGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetLogging ) +#define HYPRE_PCGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetMaxIter ) +#define HYPRE_PCGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetNumIterations ) +#define HYPRE_PCGGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetPrecond ) +#define HYPRE_PCGGetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetPrecondMatrix ) +#define HYPRE_PCGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetPrintLevel ) +#define HYPRE_PCGGetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetRecomputeResidual ) +#define HYPRE_PCGGetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetRecomputeResidualP ) +#define HYPRE_PCGGetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetRelChange ) +#define HYPRE_PCGGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetResidual ) +#define HYPRE_PCGGetResidualTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetResidualTol ) +#define HYPRE_PCGGetSkipBreak HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetSkipBreak ) +#define HYPRE_PCGGetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetStopCrit ) +#define HYPRE_PCGGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetTol ) +#define HYPRE_PCGGetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGGetTwoNorm ) +#define HYPRE_PCGSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetAbsoluteTol ) +#define HYPRE_PCGSetAbsoluteTolFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetAbsoluteTolFactor ) +#define HYPRE_PCGSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetConvergenceFactorTol ) +#define HYPRE_PCGSetFlex HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetFlex ) +#define HYPRE_PCGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetLogging ) +#define HYPRE_PCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetMaxIter ) +#define HYPRE_PCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetPrecond ) +#define HYPRE_PCGSetPreconditioner HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetPreconditioner ) +#define HYPRE_PCGSetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetPrecondMatrix ) +#define HYPRE_PCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetPrintLevel ) +#define HYPRE_PCGSetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetRecomputeResidual ) +#define HYPRE_PCGSetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetRecomputeResidualP ) +#define HYPRE_PCGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetRelChange ) +#define HYPRE_PCGSetResidualTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetResidualTol ) +#define HYPRE_PCGSetSkipBreak HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetSkipBreak ) +#define HYPRE_PCGSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetStopCrit ) +#define HYPRE_PCGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetTol ) +#define HYPRE_PCGSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetTwoNorm ) +#define HYPRE_PCGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSetup ) +#define HYPRE_PCGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_PCGSolve ) +#define hypre_LGMRESCreate HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESCreate ) +#define hypre_LGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESDestroy ) +#define hypre_LGMRESFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESFunctionsCreate ) +#define hypre_LGMRESGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetAbsoluteTol ) +#define hypre_LGMRESGetAugDim HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetAugDim ) +#define hypre_LGMRESGetConverged HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetConverged ) +#define hypre_LGMRESGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetConvergenceFactorTol ) +#define hypre_LGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetFinalRelativeResidualNorm ) +#define hypre_LGMRESGetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetKDim ) +#define hypre_LGMRESGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetLogging ) +#define hypre_LGMRESGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetMaxIter ) +#define hypre_LGMRESGetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetMinIter ) +#define hypre_LGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetNumIterations ) +#define hypre_LGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetPrecond ) +#define hypre_LGMRESGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetPrintLevel ) +#define hypre_LGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetResidual ) +#define hypre_LGMRESGetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetStopCrit ) +#define hypre_LGMRESGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESGetTol ) +#define hypre_LGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetAbsoluteTol ) +#define hypre_LGMRESSetAugDim HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetAugDim ) +#define hypre_LGMRESSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetConvergenceFactorTol ) +#define hypre_LGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetKDim ) +#define hypre_LGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetLogging ) +#define hypre_LGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetMaxIter ) +#define hypre_LGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetMinIter ) +#define hypre_LGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetPrecond ) +#define hypre_LGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetPrintLevel ) +#define hypre_LGMRESSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetStopCrit ) +#define hypre_LGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetTol ) +#define hypre_LGMRESSetup HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSetup ) +#define hypre_LGMRESSolve HYPRE_MULTIPRECISION_FUNC ( hypre_LGMRESSolve ) +#define hypre_LOBPCGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGDestroy ) +#define hypre_LOBPCGEigenvaluesHistory HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGEigenvaluesHistory ) +#define hypre_LOBPCGGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGGetPrecond ) +#define hypre_LOBPCGIterations HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGIterations ) +#define hypre_LOBPCGMultiOperatorA HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGMultiOperatorA ) +#define hypre_LOBPCGMultiOperatorB HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGMultiOperatorB ) +#define hypre_LOBPCGMultiPreconditioner HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGMultiPreconditioner ) +#define hypre_LOBPCGOperatorA HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGOperatorA ) +#define hypre_LOBPCGOperatorB HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGOperatorB ) +#define hypre_LOBPCGPreconditioner HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGPreconditioner ) +#define hypre_LOBPCGResidualNorms HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGResidualNorms ) +#define hypre_LOBPCGResidualNormsHistory HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGResidualNormsHistory ) +#define hypre_LOBPCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetMaxIter ) +#define hypre_LOBPCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetPrecond ) +#define hypre_LOBPCGSetPrecondUsageMode HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetPrecondUsageMode ) +#define hypre_LOBPCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetPrintLevel ) +#define hypre_LOBPCGSetRTol HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetRTol ) +#define hypre_LOBPCGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetTol ) +#define hypre_LOBPCGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetup ) +#define hypre_LOBPCGSetupB HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetupB ) +#define hypre_LOBPCGSetupT HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSetupT ) +#define hypre_LOBPCGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_LOBPCGSolve ) +#define lobpcg_clean HYPRE_MULTIPRECISION_FUNC ( lobpcg_clean ) +#define lobpcg_initialize HYPRE_MULTIPRECISION_FUNC ( lobpcg_initialize ) +#define lobpcg_MultiVectorByMultiVector HYPRE_MULTIPRECISION_FUNC ( lobpcg_MultiVectorByMultiVector ) +#define lobpcg_solve HYPRE_MULTIPRECISION_FUNC ( lobpcg_solve ) +#define hypre_PCGCreate HYPRE_MULTIPRECISION_FUNC ( hypre_PCGCreate ) +#define hypre_PCGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_PCGDestroy ) +#define hypre_PCGFunctionsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_PCGFunctionsCreate ) +#define hypre_PCGGetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetAbsoluteTol ) +#define hypre_PCGGetAbsoluteTolFactor HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetAbsoluteTolFactor ) +#define hypre_PCGGetConverged HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetConverged ) +#define hypre_PCGGetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetConvergenceFactorTol ) +#define hypre_PCGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetFinalRelativeResidualNorm ) +#define hypre_PCGGetFlex HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetFlex ) +#define hypre_PCGGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetLogging ) +#define hypre_PCGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetMaxIter ) +#define hypre_PCGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetNumIterations ) +#define hypre_PCGGetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetPrecond ) +#define hypre_PCGGetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetPrecondMatrix ) +#define hypre_PCGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetPrintLevel ) +#define hypre_PCGGetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetRecomputeResidual ) +#define hypre_PCGGetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetRecomputeResidualP ) +#define hypre_PCGGetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetRelChange ) +#define hypre_PCGGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetResidual ) +#define hypre_PCGGetResidualTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetResidualTol ) +#define hypre_PCGGetSkipBreak HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetSkipBreak ) +#define hypre_PCGGetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetStopCrit ) +#define hypre_PCGGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetTol ) +#define hypre_PCGGetTwoNorm HYPRE_MULTIPRECISION_FUNC ( hypre_PCGGetTwoNorm ) +#define hypre_PCGPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_PCGPrintLogging ) +#define hypre_PCGSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetAbsoluteTol ) +#define hypre_PCGSetAbsoluteTolFactor HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetAbsoluteTolFactor ) +#define hypre_PCGSetConvergenceFactorTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetConvergenceFactorTol ) +#define hypre_PCGSetFlex HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetFlex ) +#define hypre_PCGSetHybrid HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetHybrid ) +#define hypre_PCGSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetLogging ) +#define hypre_PCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetMaxIter ) +#define hypre_PCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetPrecond ) +#define hypre_PCGSetPreconditioner HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetPreconditioner ) +#define hypre_PCGSetPrecondMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetPrecondMatrix ) +#define hypre_PCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetPrintLevel ) +#define hypre_PCGSetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetRecomputeResidual ) +#define hypre_PCGSetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetRecomputeResidualP ) +#define hypre_PCGSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetRelChange ) +#define hypre_PCGSetResidualTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetResidualTol ) +#define hypre_PCGSetSkipBreak HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetSkipBreak ) +#define hypre_PCGSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetStopCrit ) +#define hypre_PCGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetTol ) +#define hypre_PCGSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetTwoNorm ) +#define hypre_PCGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSetup ) +#define hypre_PCGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_PCGSolve ) + +#endif diff --git a/src/krylov/lobpcg.c b/src/krylov/lobpcg.c index 5b5f807ab0..0af5ff1a15 100644 --- a/src/krylov/lobpcg.c +++ b/src/krylov/lobpcg.c @@ -19,6 +19,23 @@ #include "lobpcg.h" #include "fortran_matrix.h" #include "multivector.h" +#include "HYPRE_MatvecFunctions.h" +#include "_hypre_lapack.h" + +static HYPRE_Int dsygv_interface (HYPRE_Int *itype, char *jobz, char *uplo, HYPRE_Int * + n, HYPRE_Real *a, HYPRE_Int *lda, HYPRE_Real *b, HYPRE_Int *ldb, + HYPRE_Real *w, HYPRE_Real *work, HYPRE_Int *lwork, HYPRE_Int *info) +{ + hypre_dsygv(itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, info); + return 0; +} + +static HYPRE_Int dpotrf_interface (const char *uplo, HYPRE_Int *n, HYPRE_Real *a, HYPRE_Int * + lda, HYPRE_Int *info) +{ + hypre_dpotrf(uplo, n, a, lda, info); + return 0; +} static HYPRE_Int lobpcg_chol( utilities_FortranMatrix* a, @@ -83,21 +100,6 @@ lobpcg_solveGEVP( } - -static void -lobpcg_MultiVectorByMultiVector( - mv_MultiVectorPtr x, - mv_MultiVectorPtr y, - utilities_FortranMatrix* xy -) -{ - mv_MultiVectorByMultiVector( x, y, - utilities_FortranMatrixGlobalHeight( xy ), - utilities_FortranMatrixHeight( xy ), - utilities_FortranMatrixWidth( xy ), - utilities_FortranMatrixValues( xy ) ); -} - static void lobpcg_MultiVectorByMatrix( mv_MultiVectorPtr x, @@ -1081,3 +1083,425 @@ lobpcg_solve( mv_MultiVectorPtr blockVectorX, return exitFlag; } + +HYPRE_Int +lobpcg_initialize( lobpcg_Data* data ) +{ + (data->tolerance).absolute = 1.0e-06; + (data->tolerance).relative = 1.0e-06; + (data->maxIterations) = 500; + (data->precondUsageMode) = 0; + (data->verbosityLevel) = 0; + (data->eigenvaluesHistory) = utilities_FortranMatrixCreate(); + (data->residualNorms) = utilities_FortranMatrixCreate(); + (data->residualNormsHistory) = utilities_FortranMatrixCreate(); + + return 0; +} + +HYPRE_Int +lobpcg_clean( lobpcg_Data* data ) +{ + utilities_FortranMatrixDestroy( data->eigenvaluesHistory ); + utilities_FortranMatrixDestroy( data->residualNorms ); + utilities_FortranMatrixDestroy( data->residualNormsHistory ); + + return 0; +} + +HYPRE_Int +hypre_LOBPCGDestroy( void *pcg_vdata ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + if (pcg_data) + { + HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; + if ( pcg_data->matvecData != NULL ) + { + (*(mv->MatvecDestroy))(pcg_data->matvecData); + pcg_data->matvecData = NULL; + } + if ( pcg_data->matvecDataB != NULL ) + { + (*(mv->MatvecDestroy))(pcg_data->matvecDataB); + pcg_data->matvecDataB = NULL; + } + if ( pcg_data->matvecDataT != NULL ) + { + (*(mv->MatvecDestroy))(pcg_data->matvecDataT); + pcg_data->matvecDataT = NULL; + } + + lobpcg_clean( &(pcg_data->lobpcgData) ); + + hypre_TFree( pcg_vdata, HYPRE_MEMORY_HOST); + } + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetup( void *pcg_vdata, void *A, void *b, void *x ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; + HYPRE_Int (*precond_setup)(void*, void*, void*, void*) = (pcg_data->precondFunctions).PrecondSetup; + void *precond_data = (pcg_data->precondData); + + (pcg_data->A) = A; + + if ( pcg_data->matvecData != NULL ) + { + (*(mv->MatvecDestroy))(pcg_data->matvecData); + } + (pcg_data->matvecData) = (*(mv->MatvecCreate))(A, x); + + if ( precond_setup != NULL ) + { + if ( pcg_data->T == NULL ) + { + precond_setup(precond_data, A, b, x); + } + else + { + precond_setup(precond_data, pcg_data->T, b, x); + } + } + + return hypre_error_flag; +} + +void +lobpcg_MultiVectorByMultiVector( + mv_MultiVectorPtr x, + mv_MultiVectorPtr y, + utilities_FortranMatrix* xy +) +{ + mv_MultiVectorByMultiVector( x, y, + utilities_FortranMatrixGlobalHeight( xy ), + utilities_FortranMatrixHeight( xy ), + utilities_FortranMatrixWidth( xy ), + utilities_FortranMatrixValues( xy ) ); +} + +HYPRE_Int +hypre_LOBPCGSetupB( void *pcg_vdata, void *B, void *x ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; + + (pcg_data->B) = B; + + if ( pcg_data->matvecDataB != NULL ) + { + (*(mv->MatvecDestroy))(pcg_data -> matvecDataB); + } + (pcg_data->matvecDataB) = (*(mv->MatvecCreate))(B, x); + if ( B != NULL ) + { + (pcg_data->matvecDataB) = (*(mv->MatvecCreate))(B, x); + } + else + { + (pcg_data->matvecDataB) = NULL; + } + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetupT( void *pcg_vdata, void *T, void *x ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; + + (pcg_data -> T) = T; + + if ( pcg_data->matvecDataT != NULL ) + { + (*(mv->MatvecDestroy))(pcg_data->matvecDataT); + } + if ( T != NULL ) + { + (pcg_data->matvecDataT) = (*(mv->MatvecCreate))(T, x); + } + else + { + (pcg_data->matvecDataT) = NULL; + } + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetTol( void* pcg_vdata, HYPRE_Real tol ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + lobpcg_absoluteTolerance(pcg_data->lobpcgData) = tol; + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetRTol( void* pcg_vdata, HYPRE_Real tol ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*) pcg_vdata; + + lobpcg_relativeTolerance(pcg_data->lobpcgData) = tol; + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetMaxIter( void* pcg_vdata, HYPRE_Int max_iter ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + lobpcg_maxIterations(pcg_data->lobpcgData) = max_iter; + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetPrecondUsageMode( void* pcg_vdata, HYPRE_Int mode ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + lobpcg_precondUsageMode(pcg_data->lobpcgData) = mode; + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGGetPrecond( void *pcg_vdata, + HYPRE_Solver *precond_data_ptr ) +{ + hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + *precond_data_ptr = (HYPRE_Solver)(pcg_data -> precondData); + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetPrecond( void *pcg_vdata, + HYPRE_Int (*precond)(void*, void*, void*, void*), + HYPRE_Int (*precond_setup)(void*, void*, void*, void*), + void *precond_data ) +{ + hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + (pcg_data->precondFunctions).Precond = precond; + (pcg_data->precondFunctions).PrecondSetup = precond_setup; + (pcg_data->precondData) = precond_data; + + return hypre_error_flag; +} + +HYPRE_Int +hypre_LOBPCGSetPrintLevel( void *pcg_vdata, HYPRE_Int level ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)pcg_vdata; + + lobpcg_verbosityLevel(pcg_data->lobpcgData) = level; + + return hypre_error_flag; +} + +void +hypre_LOBPCGPreconditioner( void *vdata, void* x, void* y ) +{ + hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; + mv_InterfaceInterpreter* ii = data->interpreter; + HYPRE_Int (*precond)(void*, void*, void*, void*) = (data->precondFunctions).Precond; + + if ( precond == NULL ) + { + (*(ii->CopyVector))(x, y); + return; + } + + if ( lobpcg_precondUsageMode(data->lobpcgData) == 0 ) + { + (*(ii->ClearVector))(y); + } + else + { + (*(ii->CopyVector))(x, y); + } + + if ( data->T == NULL ) + { + precond(data->precondData, data->A, x, y); + } + else + { + precond(data->precondData, data->T, x, y); + } +} + +void +hypre_LOBPCGOperatorA( void *pcg_vdata, void* x, void* y ) +{ + hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; + HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; + void* matvec_data = (pcg_data -> matvecData); + + (*(mv->Matvec))(matvec_data, 1.0, pcg_data->A, x, 0.0, y); +} + +void +hypre_LOBPCGOperatorB( void *pcg_vdata, void* x, void* y ) +{ + hypre_LOBPCGData* pcg_data = (hypre_LOBPCGData*)pcg_vdata; + mv_InterfaceInterpreter* ii = pcg_data->interpreter; + HYPRE_MatvecFunctions * mv = pcg_data->matvecFunctions; + void* matvec_data = (pcg_data -> matvecDataB); + + if ( pcg_data->B == NULL ) + { + (*(ii->CopyVector))(x, y); + + /* a test */ + /* + (*(ii->ScaleVector))(2.0, y); + */ + + return; + } + + (*(mv->Matvec))(matvec_data, 1.0, pcg_data->B, x, 0.0, y); +} + +void +hypre_LOBPCGMultiPreconditioner( void *data, void * x, void* y ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)data; + mv_InterfaceInterpreter* ii = pcg_data->interpreter; + + ii->Eval( hypre_LOBPCGPreconditioner, data, x, y ); +} + +void +hypre_LOBPCGMultiOperatorA( void *data, void * x, void* y ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)data; + mv_InterfaceInterpreter* ii = pcg_data->interpreter; + + ii->Eval( hypre_LOBPCGOperatorA, data, x, y ); +} + +void +hypre_LOBPCGMultiOperatorB( void *data, void * x, void* y ) +{ + hypre_LOBPCGData *pcg_data = (hypre_LOBPCGData*)data; + mv_InterfaceInterpreter* ii = pcg_data->interpreter; + + ii->Eval( hypre_LOBPCGOperatorB, data, x, y ); +} + +HYPRE_Int +hypre_LOBPCGSolve( void *vdata, + mv_MultiVectorPtr con, + mv_MultiVectorPtr vec, + HYPRE_Real* val ) +{ + hypre_LOBPCGData* data = (hypre_LOBPCGData*)vdata; + HYPRE_Int (*precond)(void*, void*, void*, void*) = (data->precondFunctions).Precond; + void* opB = data->B; + + void (*prec)( void*, void*, void* ); + void (*operatorA)( void*, void*, void* ); + void (*operatorB)( void*, void*, void* ); + + HYPRE_Int maxit = lobpcg_maxIterations(data->lobpcgData); + HYPRE_Int verb = lobpcg_verbosityLevel(data->lobpcgData); + + HYPRE_Int n = mv_MultiVectorWidth( vec ); + lobpcg_BLASLAPACKFunctions blap_fn; + + utilities_FortranMatrix* lambdaHistory; + utilities_FortranMatrix* residuals; + utilities_FortranMatrix* residualsHistory; + + lambdaHistory = lobpcg_eigenvaluesHistory(data->lobpcgData); + residuals = lobpcg_residualNorms(data->lobpcgData); + residualsHistory = lobpcg_residualNormsHistory(data->lobpcgData); + + utilities_FortranMatrixAllocateData( n, maxit + 1, lambdaHistory ); + utilities_FortranMatrixAllocateData( n, 1, residuals ); + utilities_FortranMatrixAllocateData( n, maxit + 1, residualsHistory ); + + if ( precond != NULL ) + { + prec = hypre_LOBPCGMultiPreconditioner; + } + else + { + prec = NULL; + } + + operatorA = hypre_LOBPCGMultiOperatorA; + + if ( opB != NULL ) + { + operatorB = hypre_LOBPCGMultiOperatorB; + } + else + { + operatorB = NULL; + } + + blap_fn.dsygv = dsygv_interface; + blap_fn.dpotrf = dpotrf_interface; + + lobpcg_solve( vec, + vdata, operatorA, + vdata, operatorB, + vdata, prec, + con, + blap_fn, + lobpcg_tolerance(data->lobpcgData), maxit, verb, + &(lobpcg_iterationNumber(data->lobpcgData)), + val, + utilities_FortranMatrixValues(lambdaHistory), + utilities_FortranMatrixGlobalHeight(lambdaHistory), + utilities_FortranMatrixValues(residuals), + utilities_FortranMatrixValues(residualsHistory), + utilities_FortranMatrixGlobalHeight(residualsHistory) + ); + + return hypre_error_flag; +} + +utilities_FortranMatrix* +hypre_LOBPCGResidualNorms( void *vdata ) +{ + hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; + return (lobpcg_residualNorms(data->lobpcgData)); +} + +utilities_FortranMatrix* +hypre_LOBPCGResidualNormsHistory( void *vdata ) +{ + hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; + return (lobpcg_residualNormsHistory(data->lobpcgData)); +} + +utilities_FortranMatrix* +hypre_LOBPCGEigenvaluesHistory( void *vdata ) +{ + hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; + return (lobpcg_eigenvaluesHistory(data->lobpcgData)); +} + +HYPRE_Int +hypre_LOBPCGIterations( void* vdata ) +{ + hypre_LOBPCGData *data = (hypre_LOBPCGData*)vdata; + return (lobpcg_iterationNumber(data->lobpcgData)); +} + diff --git a/src/krylov/lobpcg.h b/src/krylov/lobpcg.h index 74fba25619..5eaa26324d 100644 --- a/src/krylov/lobpcg.h +++ b/src/krylov/lobpcg.h @@ -7,6 +7,13 @@ #include "multivector.h" #include "_hypre_utilities.h" +#include "fortran_matrix.h" +#include "HYPRE_MatvecFunctions.h" +#include "HYPRE_krylov.h" + +#ifdef HYPRE_MIXED_PRECISION +#include "krylov_mup_func.h" +#endif #ifndef LOCALLY_OPTIMAL_BLOCK_PRECONDITIONED_CONJUGATE_GRADIENTS #define LOCALLY_OPTIMAL_BLOCK_PRECONDITIONED_CONJUGATE_GRADIENTS @@ -28,6 +35,59 @@ typedef struct } lobpcg_Tolerance; +typedef struct +{ + HYPRE_Int (*Precond)(void*, void*, void*, void*); + HYPRE_Int (*PrecondSetup)(void*, void*, void*, void*); + +} hypre_LOBPCGPrecond; + +typedef struct +{ + lobpcg_Tolerance tolerance; + HYPRE_Int maxIterations; + HYPRE_Int verbosityLevel; + HYPRE_Int precondUsageMode; + HYPRE_Int iterationNumber; + utilities_FortranMatrix* eigenvaluesHistory; + utilities_FortranMatrix* residualNorms; + utilities_FortranMatrix* residualNormsHistory; + +} lobpcg_Data; + +#define lobpcg_tolerance(data) ((data).tolerance) +#define lobpcg_absoluteTolerance(data) ((data).tolerance.absolute) +#define lobpcg_relativeTolerance(data) ((data).tolerance.relative) +#define lobpcg_maxIterations(data) ((data).maxIterations) +#define lobpcg_verbosityLevel(data) ((data).verbosityLevel) +#define lobpcg_precondUsageMode(data) ((data).precondUsageMode) +#define lobpcg_iterationNumber(data) ((data).iterationNumber) +#define lobpcg_eigenvaluesHistory(data) ((data).eigenvaluesHistory) +#define lobpcg_residualNorms(data) ((data).residualNorms) +#define lobpcg_residualNormsHistory(data) ((data).residualNormsHistory) + +typedef struct +{ + + lobpcg_Data lobpcgData; + + mv_InterfaceInterpreter* interpreter; + + void* A; + void* matvecData; + void* precondData; + + void* B; + void* matvecDataB; + void* T; + void* matvecDataT; + + hypre_LOBPCGPrecond precondFunctions; + + HYPRE_MatvecFunctions* matvecFunctions; + +} hypre_LOBPCGData; + typedef struct { @@ -83,6 +143,69 @@ lobpcg_solve( mv_MultiVectorPtr blockVectorX, ); +HYPRE_Int +lobpcg_initialize( lobpcg_Data* data ); +HYPRE_Int +lobpcg_clean( lobpcg_Data* data ); +HYPRE_Int +hypre_LOBPCGDestroy( void *pcg_vdata ); +HYPRE_Int +hypre_LOBPCGSetup( void *pcg_vdata, void *A, void *b, void *x ); +HYPRE_Int +hypre_LOBPCGSetupB( void *pcg_vdata, void *B, void *x ); +HYPRE_Int +hypre_LOBPCGSetupT( void *pcg_vdata, void *T, void *x ); +HYPRE_Int +hypre_LOBPCGSetTol( void* pcg_vdata, HYPRE_Real tol ); +HYPRE_Int +hypre_LOBPCGSetRTol( void* pcg_vdata, HYPRE_Real tol ); +HYPRE_Int +hypre_LOBPCGSetMaxIter( void* pcg_vdata, HYPRE_Int max_iter ); +HYPRE_Int +hypre_LOBPCGSetPrecondUsageMode( void* pcg_vdata, HYPRE_Int mode ); +HYPRE_Int +hypre_LOBPCGGetPrecond( void *pcg_vdata, + HYPRE_Solver *precond_data_ptr ); +HYPRE_Int +hypre_LOBPCGSetPrecond( void *pcg_vdata, + HYPRE_Int (*precond)(void*, void*, void*, void*), + HYPRE_Int (*precond_setup)(void*, void*, void*, void*), + void *precond_data ); +HYPRE_Int +hypre_LOBPCGSetPrintLevel( void *pcg_vdata, HYPRE_Int level ); +void +hypre_LOBPCGPreconditioner( void *vdata, void* x, void* y ); +void +hypre_LOBPCGOperatorA( void *pcg_vdata, void* x, void* y ); +void +hypre_LOBPCGOperatorB( void *pcg_vdata, void* x, void* y ); +void +hypre_LOBPCGMultiPreconditioner( void *data, void * x, void* y ); +void +hypre_LOBPCGMultiOperatorA( void *data, void * x, void* y ); +void +hypre_LOBPCGMultiOperatorB( void *data, void * x, void* y ); +HYPRE_Int +hypre_LOBPCGSolve( void *vdata, + mv_MultiVectorPtr con, + mv_MultiVectorPtr vec, + HYPRE_Real* val ); +utilities_FortranMatrix* +hypre_LOBPCGResidualNorms( void *vdata ); +utilities_FortranMatrix* +hypre_LOBPCGResidualNormsHistory( void *vdata ); +utilities_FortranMatrix* +hypre_LOBPCGEigenvaluesHistory( void *vdata ); +HYPRE_Int +hypre_LOBPCGIterations( void* vdata ); +void hypre_LOBPCGMultiOperatorB(void *data, + void *x, + void *y); + +void lobpcg_MultiVectorByMultiVector(mv_MultiVectorPtr x, + mv_MultiVectorPtr y, + utilities_FortranMatrix *xy); + #ifdef __cplusplus } #endif diff --git a/src/krylov/pcg.c b/src/krylov/pcg.c index 37b59453ed..a83604a9aa 100644 --- a/src/krylov/pcg.c +++ b/src/krylov/pcg.c @@ -105,6 +105,7 @@ hypre_PCGCreate( hypre_PCGFunctions *pcg_functions ) (pcg_data -> owns_matvec_data ) = 1; (pcg_data -> matvec_data) = NULL; (pcg_data -> precond_data) = NULL; + (pcg_data -> precond_Mat) = NULL; (pcg_data -> print_level) = 0; (pcg_data -> logging) = 0; (pcg_data -> norms) = NULL; @@ -215,9 +216,17 @@ hypre_PCGSetup( void *pcg_vdata, HYPRE_Int flex = (pcg_data -> flex); HYPRE_Int (*precond_setup)(void*, void*, void*, void*) = (pcg_functions -> precond_setup); void *precond_data = (pcg_data -> precond_data); + void *precond_Mat = (pcg_data -> precond_Mat) ; HYPRE_ANNOTATE_FUNC_BEGIN; + //set preconditioning matrix + if((pcg_data -> precond_Mat) == NULL) + { + (pcg_data -> precond_Mat) = A; + precond_Mat = (pcg_data -> precond_Mat) ; + } + (pcg_data -> A) = A; /*-------------------------------------------------- @@ -268,7 +277,7 @@ hypre_PCGSetup( void *pcg_vdata, (pcg_data -> v) = (*(pcg_functions->CreateVector))(b); } - precond_setup(precond_data, A, b, x); + precond_setup(precond_data, precond_Mat, b, x); /*----------------------------------------------------- * Allocate space for log info @@ -353,6 +362,8 @@ hypre_PCGSolve( void *pcg_vdata, void *matvec_data = (pcg_data -> matvec_data); HYPRE_Int (*precond)(void*, void*, void*, void*) = (pcg_functions -> precond); void *precond_data = (pcg_data -> precond_data); + // preconditioning matrix + void *precond_Mat = (pcg_data -> precond_Mat) ; HYPRE_Int print_level = (pcg_data -> print_level); HYPRE_Int logging = (pcg_data -> logging); HYPRE_Real *norms = (pcg_data -> norms); @@ -412,7 +423,7 @@ hypre_PCGSolve( void *pcg_vdata, { /* bi_prod = */ (*(pcg_functions->ClearVector))(p); - precond(precond_data, A, b, p); + precond(precond_data, precond_Mat, b, p); bi_prod = (*(pcg_functions->InnerProd))(p, b); if (print_level > 1 && my_id == 0) { @@ -493,7 +504,7 @@ hypre_PCGSolve( void *pcg_vdata, //hypre_ParVectorUpdateHost(r); /* p = C*r */ (*(pcg_functions->ClearVector))(p); - precond(precond_data, A, r, p); + precond(precond_data, precond_Mat, r, p); /* gamma = = */ gamma = (*(pcg_functions->InnerProd))(r, p); @@ -713,7 +724,7 @@ hypre_PCGSolve( void *pcg_vdata, /* s = C*r */ (*(pcg_functions->ClearVector))(s); - precond(precond_data, A, r, s); + precond(precond_data, precond_Mat, r, s); /* gamma = */ gamma = (*(pcg_functions->InnerProd))(r, s); @@ -819,7 +830,7 @@ hypre_PCGSolve( void *pcg_vdata, { /* s = C*r */ (*(pcg_functions->ClearVector))(s); - precond(precond_data, A, r, s); + precond(precond_data, precond_Mat, r, s); /* iprod = gamma = */ i_prod = (*(pcg_functions->InnerProd))(r, s); gamma = i_prod; @@ -1392,6 +1403,30 @@ hypre_PCGSetPrecond( void *pcg_vdata, return hypre_error_flag; } +/*-------------------------------------------------------------------------- + * hypre_PCGSetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_PCGSetPrecondMatrix( void *pcg_vdata, void *precond_matrix ) +{ + hypre_PCGData *pcg_data = (hypre_PCGData *)pcg_vdata; + (pcg_data -> precond_Mat) = precond_matrix; + return hypre_error_flag; +} + +/*-------------------------------------------------------------------------- + * hypre_PCGGetPrecondMatrix + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_PCGGetPrecondMatrix( void *pcg_vdata, HYPRE_Matrix *precond_matrix_ptr ) +{ + hypre_PCGData *pcg_data = (hypre_PCGData *)pcg_vdata; + *precond_matrix_ptr = (HYPRE_Matrix)(pcg_data -> precond_Mat) ; + return hypre_error_flag; +} + /*-------------------------------------------------------------------------- * hypre_PCGSetPreconditioner *--------------------------------------------------------------------------*/ @@ -1414,6 +1449,7 @@ hypre_PCGSetPreconditioner(void *pcg_vdata, return hypre_error_flag; } + /*-------------------------------------------------------------------------- * hypre_PCGSetPrintLevel, hypre_PCGGetPrintLevel *--------------------------------------------------------------------------*/ diff --git a/src/krylov/pcg.h b/src/krylov/pcg.h index e94932071b..ca50a31200 100644 --- a/src/krylov/pcg.h +++ b/src/krylov/pcg.h @@ -134,6 +134,7 @@ typedef struct HYPRE_Int owns_matvec_data; /* normally 1; if 0, don't delete it */ void *matvec_data; void *precond_data; + void *precond_Mat; hypre_PCGFunctions * functions; diff --git a/src/lapack/Makefile b/src/lapack/Makefile index 12f9c1113e..1b7450158f 100644 --- a/src/lapack/Makefile +++ b/src/lapack/Makefile @@ -90,22 +90,89 @@ OBJS = ${LAPACK_FILES:.c=.o} # Targets ################################################################# -all: ${OBJS} dlamch.o +all: lapack_OBJS dlamch_obj install: all cp -fR $(srcdir)/_hypre_lapack.h $(HYPRE_INC_INSTALL) -clean: +clean: clean_mup rm -rf *.o distclean: clean -################################################################# -# Rules -################################################################# +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + +################################################################## +# Build Rules +################################################################## + +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +#MKDIR_P = mkdir -p +#mkmpdir: +# ${MKDIR_P} ${MuP_OBJDIR} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${OBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c ${LAPACK_HEADERS} +# @echo "MuP_OBJDIR is ${ADD_OBJS_single} ... $%" + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +dlamch_single = ${MuP_OBJDIR_single}/dlamch.o +${dlamch_single}: dlamch.c ${LAPACK_HEADERS} + @mkdir -p ${@D} + ${CC} ${CFLAGS} -DMP_BUILD_SINGLE=1 -c -o $@ dlamch.c +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${OBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c ${LAPACK_HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +dlamch_double = ${MuP_OBJDIR_double}/dlamch.o +${dlamch_double}: dlamch.c ${LAPACK_HEADERS} + @mkdir -p ${@D} + ${CC} ${CFLAGS} -DMP_BUILD_DOUBLE=1 -c -o $@ dlamch.c +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${OBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c ${LAPACK_HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +dlamch_longdouble = ${MuP_OBJDIR_longdouble}/dlamch.o +${dlamch_longdouble}: dlamch.c ${LAPACK_HEADERS} + @mkdir -p ${@D} + ${CC} ${CFLAGS} -DMP_BUILD_LONGDOUBLE=1 -c -o $@ dlamch.c +# +# multiprecision object files +lapack_OBJS: ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} +# compile without optimization +dlamch_obj: ${dlamch_single} ${dlamch_double} ${dlamch_longdouble} + +else # compile without optimization dlamch.o : dlamch.c ${LAPACK_HEADERS} ${CC} ${CFLAGS} -c dlamch.c +dlamch_obj: dlamch.o + ${OBJS}: ${LAPACK_HEADERS} +lapack_OBJS: ${OBJS} +endif + diff --git a/src/lapack/_hypre_lapack.h b/src/lapack/_hypre_lapack.h index 12932a68e5..5bcc26e4a9 100644 --- a/src/lapack/_hypre_lapack.h +++ b/src/lapack/_hypre_lapack.h @@ -17,6 +17,10 @@ #include "_hypre_utilities.h" #include "fortran.h" +#ifdef HYPRE_MIXED_PRECISION +#include "lapack_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/lapack/hypre_lapack.h b/src/lapack/hypre_lapack.h index 0fec7348dd..5467ef1df3 100644 --- a/src/lapack/hypre_lapack.h +++ b/src/lapack/hypre_lapack.h @@ -11,6 +11,10 @@ * This header renames the functions in LAPACK to avoid conflicts *--------------------------------------------------------------------------*/ +#ifdef HYPRE_MIXED_PRECISION +#include "lapack_mup_func.h" +#endif + /* blas */ #define dasum_ hypre_dasum #define daxpy_ hypre_daxpy diff --git a/src/lapack/lapack_func_header b/src/lapack/lapack_func_header new file mode 100755 index 0000000000..2d12971126 --- /dev/null +++ b/src/lapack/lapack_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=lapack_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'lapack_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef LAPACK_MUP_FUNC_HEADER +#define LAPACK_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=lapack_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/lapack/lapack_functions.saved b/src/lapack/lapack_functions.saved new file mode 100644 index 0000000000..32bed86a17 --- /dev/null +++ b/src/lapack/lapack_functions.saved @@ -0,0 +1,78 @@ +hypre_dbdsqr +hypre_dgebd2 +hypre_dgebrd +hypre_dgelq2 +hypre_dgelqf +hypre_dgels +hypre_dgeqr2 +hypre_dgeqrf +hypre_dgesvd +hypre_dgetf2 +hypre_dgetrf +hypre_dgetri +hypre_dgetrs +hypre_dlabad +hypre_dlabrd +hypre_dlacpy +hypre_dlae2 +hypre_dlaev2 +hypre_dlamc1 +hypre_dlamc2 +hypre_dlamc3 +hypre_dlamc4 +hypre_dlamc5 +hypre_dlamch +hypre_dlange +hypre_dlanst +hypre_dlansy +hypre_dlapy2 +hypre_dlarfb +hypre_dlarfg +hypre_dlarf +hypre_dlarft +hypre_dlartg +hypre_dlas2 +hypre_dlascl +hypre_dlaset +hypre_dlasq1 +hypre_dlasq2 +hypre_dlasq3 +hypre_dlasq4 +hypre_dlasq5 +hypre_dlasq6 +hypre_dlasr +hypre_dlasrt +hypre_dlassq +hypre_dlasv2 +hypre_dlaswp +hypre_dlatrd +hypre_dorg2l +hypre_dorg2r +hypre_dorgbr +hypre_dorgl2 +hypre_dorglq +hypre_dorgql +hypre_dorgqr +hypre_dorgtr +hypre_dorm2r +hypre_dormbr +hypre_dorml2 +hypre_dormlq +hypre_dormqr +hypre_dpotf2 +hypre_dpotrf +hypre_dpotrs +hypre_dsteqr +hypre_dsterf +hypre_dsyev +hypre_dsygs2 +hypre_dsygst +hypre_dsygv +hypre_dsytd2 +hypre_dsytrd +hypre_dtrti2 +hypre_dtrtri +hypre_ieeeck +hypre_ilaenv +hypre_lapack_lsame +hypre_lapack_xerbla diff --git a/src/lapack/lapack_mup_func.h b/src/lapack/lapack_mup_func.h new file mode 100644 index 0000000000..d103bbcd88 --- /dev/null +++ b/src/lapack/lapack_mup_func.h @@ -0,0 +1,98 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'lapack_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef LAPACK_MUP_FUNC_HEADER +#define LAPACK_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_dbdsqr HYPRE_MULTIPRECISION_FUNC ( hypre_dbdsqr ) +#define hypre_dgebd2 HYPRE_MULTIPRECISION_FUNC ( hypre_dgebd2 ) +#define hypre_dgebrd HYPRE_MULTIPRECISION_FUNC ( hypre_dgebrd ) +#define hypre_dgelq2 HYPRE_MULTIPRECISION_FUNC ( hypre_dgelq2 ) +#define hypre_dgelqf HYPRE_MULTIPRECISION_FUNC ( hypre_dgelqf ) +#define hypre_dgels HYPRE_MULTIPRECISION_FUNC ( hypre_dgels ) +#define hypre_dgeqr2 HYPRE_MULTIPRECISION_FUNC ( hypre_dgeqr2 ) +#define hypre_dgeqrf HYPRE_MULTIPRECISION_FUNC ( hypre_dgeqrf ) +#define hypre_dgesvd HYPRE_MULTIPRECISION_FUNC ( hypre_dgesvd ) +#define hypre_dgetf2 HYPRE_MULTIPRECISION_FUNC ( hypre_dgetf2 ) +#define hypre_dgetrf HYPRE_MULTIPRECISION_FUNC ( hypre_dgetrf ) +#define hypre_dgetri HYPRE_MULTIPRECISION_FUNC ( hypre_dgetri ) +#define hypre_dgetrs HYPRE_MULTIPRECISION_FUNC ( hypre_dgetrs ) +#define hypre_dlabad HYPRE_MULTIPRECISION_FUNC ( hypre_dlabad ) +#define hypre_dlabrd HYPRE_MULTIPRECISION_FUNC ( hypre_dlabrd ) +#define hypre_dlacpy HYPRE_MULTIPRECISION_FUNC ( hypre_dlacpy ) +#define hypre_dlae2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlae2 ) +#define hypre_dlaev2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlaev2 ) +#define hypre_dlamc1 HYPRE_MULTIPRECISION_FUNC ( hypre_dlamc1 ) +#define hypre_dlamc2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlamc2 ) +#define hypre_dlamc3 HYPRE_MULTIPRECISION_FUNC ( hypre_dlamc3 ) +#define hypre_dlamc4 HYPRE_MULTIPRECISION_FUNC ( hypre_dlamc4 ) +#define hypre_dlamc5 HYPRE_MULTIPRECISION_FUNC ( hypre_dlamc5 ) +#define hypre_dlamch HYPRE_MULTIPRECISION_FUNC ( hypre_dlamch ) +#define hypre_dlange HYPRE_MULTIPRECISION_FUNC ( hypre_dlange ) +#define hypre_dlanst HYPRE_MULTIPRECISION_FUNC ( hypre_dlanst ) +#define hypre_dlansy HYPRE_MULTIPRECISION_FUNC ( hypre_dlansy ) +#define hypre_dlapy2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlapy2 ) +#define hypre_dlarf HYPRE_MULTIPRECISION_FUNC ( hypre_dlarf ) +#define hypre_dlarfb HYPRE_MULTIPRECISION_FUNC ( hypre_dlarfb ) +#define hypre_dlarfg HYPRE_MULTIPRECISION_FUNC ( hypre_dlarfg ) +#define hypre_dlarft HYPRE_MULTIPRECISION_FUNC ( hypre_dlarft ) +#define hypre_dlartg HYPRE_MULTIPRECISION_FUNC ( hypre_dlartg ) +#define hypre_dlas2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlas2 ) +#define hypre_dlascl HYPRE_MULTIPRECISION_FUNC ( hypre_dlascl ) +#define hypre_dlaset HYPRE_MULTIPRECISION_FUNC ( hypre_dlaset ) +#define hypre_dlasq1 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasq1 ) +#define hypre_dlasq2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasq2 ) +#define hypre_dlasq3 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasq3 ) +#define hypre_dlasq4 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasq4 ) +#define hypre_dlasq5 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasq5 ) +#define hypre_dlasq6 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasq6 ) +#define hypre_dlasr HYPRE_MULTIPRECISION_FUNC ( hypre_dlasr ) +#define hypre_dlasrt HYPRE_MULTIPRECISION_FUNC ( hypre_dlasrt ) +#define hypre_dlassq HYPRE_MULTIPRECISION_FUNC ( hypre_dlassq ) +#define hypre_dlasv2 HYPRE_MULTIPRECISION_FUNC ( hypre_dlasv2 ) +#define hypre_dlaswp HYPRE_MULTIPRECISION_FUNC ( hypre_dlaswp ) +#define hypre_dlatrd HYPRE_MULTIPRECISION_FUNC ( hypre_dlatrd ) +#define hypre_dorg2l HYPRE_MULTIPRECISION_FUNC ( hypre_dorg2l ) +#define hypre_dorg2r HYPRE_MULTIPRECISION_FUNC ( hypre_dorg2r ) +#define hypre_dorgbr HYPRE_MULTIPRECISION_FUNC ( hypre_dorgbr ) +#define hypre_dorgl2 HYPRE_MULTIPRECISION_FUNC ( hypre_dorgl2 ) +#define hypre_dorglq HYPRE_MULTIPRECISION_FUNC ( hypre_dorglq ) +#define hypre_dorgql HYPRE_MULTIPRECISION_FUNC ( hypre_dorgql ) +#define hypre_dorgqr HYPRE_MULTIPRECISION_FUNC ( hypre_dorgqr ) +#define hypre_dorgtr HYPRE_MULTIPRECISION_FUNC ( hypre_dorgtr ) +#define hypre_dorm2r HYPRE_MULTIPRECISION_FUNC ( hypre_dorm2r ) +#define hypre_dormbr HYPRE_MULTIPRECISION_FUNC ( hypre_dormbr ) +#define hypre_dorml2 HYPRE_MULTIPRECISION_FUNC ( hypre_dorml2 ) +#define hypre_dormlq HYPRE_MULTIPRECISION_FUNC ( hypre_dormlq ) +#define hypre_dormqr HYPRE_MULTIPRECISION_FUNC ( hypre_dormqr ) +#define hypre_dpotf2 HYPRE_MULTIPRECISION_FUNC ( hypre_dpotf2 ) +#define hypre_dpotrf HYPRE_MULTIPRECISION_FUNC ( hypre_dpotrf ) +#define hypre_dpotrs HYPRE_MULTIPRECISION_FUNC ( hypre_dpotrs ) +#define hypre_dsteqr HYPRE_MULTIPRECISION_FUNC ( hypre_dsteqr ) +#define hypre_dsterf HYPRE_MULTIPRECISION_FUNC ( hypre_dsterf ) +#define hypre_dsyev HYPRE_MULTIPRECISION_FUNC ( hypre_dsyev ) +#define hypre_dsygs2 HYPRE_MULTIPRECISION_FUNC ( hypre_dsygs2 ) +#define hypre_dsygst HYPRE_MULTIPRECISION_FUNC ( hypre_dsygst ) +#define hypre_dsygv HYPRE_MULTIPRECISION_FUNC ( hypre_dsygv ) +#define hypre_dsytd2 HYPRE_MULTIPRECISION_FUNC ( hypre_dsytd2 ) +#define hypre_dsytrd HYPRE_MULTIPRECISION_FUNC ( hypre_dsytrd ) +#define hypre_dtrti2 HYPRE_MULTIPRECISION_FUNC ( hypre_dtrti2 ) +#define hypre_dtrtri HYPRE_MULTIPRECISION_FUNC ( hypre_dtrtri ) +#define hypre_ieeeck HYPRE_MULTIPRECISION_FUNC ( hypre_ieeeck ) +#define hypre_ilaenv HYPRE_MULTIPRECISION_FUNC ( hypre_ilaenv ) +#define hypre_lapack_lsame HYPRE_MULTIPRECISION_FUNC ( hypre_lapack_lsame ) +#define hypre_lapack_xerbla HYPRE_MULTIPRECISION_FUNC ( hypre_lapack_xerbla ) + +#endif diff --git a/src/lib/Makefile b/src/lib/Makefile index b77c431b00..29f61fe9a2 100644 --- a/src/lib/Makefile +++ b/src/lib/Makefile @@ -5,8 +5,32 @@ include ../config/Makefile.config -FEIHYPREFILES = ${HYPRE_FEI_HYPRE_FILES} -FEMLIFILES = ${HYPRE_FEI_FEMLI_FILES} +FEIHYPREFILES = ${HYPRE_FEI_HYPRE_FILES} +FEMLIFILES = ${HYPRE_FEI_FEMLI_FILES} + +ifeq (${MP_BUILD}, 1) +PILUTFILES = ${HYPRE_SRC_TOP_DIR}/distributed_ls/pilut/MuP_obj.dir/pilut_*/*.o +EUCLIDFILES = ${HYPRE_SRC_TOP_DIR}/distributed_ls/Euclid/MuP_obj.dir/Euclid_*/*.o +PARASAILSFILES = ${HYPRE_SRC_TOP_DIR}/distributed_ls/ParaSails/MuP_obj.dir/ParaSails_*/*.o +IJMVFILES = ${HYPRE_SRC_TOP_DIR}/IJ_mv/MuP_obj.dir/IJ_mv_*/*.o ${HYPRE_SRC_TOP_DIR}/IJ_mv/MuP_obj.dir/IJ_mv_*/*.obj +DISTMATRIXFILES = ${HYPRE_SRC_TOP_DIR}/distributed_matrix/MuP_obj.dir/distributed_matrix_*/*.o +MATMATFILES = ${HYPRE_SRC_TOP_DIR}/matrix_matrix/MuP_obj.dir/matrix_matrix_*/*.o +KRYLOVFILES = ${HYPRE_SRC_TOP_DIR}/krylov/MuP_obj.dir/krylov_*/*.o +SEQMVFILES = ${HYPRE_SRC_TOP_DIR}/seq_mv/MuP_obj.dir/seq_mv_*/*.o ${HYPRE_SRC_TOP_DIR}/seq_mv/*.o ${HYPRE_SRC_TOP_DIR}/seq_mv/MuP_obj.dir/seq_mv_*/*.obj +SEQBLOCKMVFILES = ${HYPRE_SRC_TOP_DIR}/seq_block_mv/MuP_obj.dir/seq_block_mv_*/*.o +PARCSRMVFILES = ${HYPRE_SRC_TOP_DIR}/parcsr_mv/MuP_obj.dir/parcsr_mv_*/*.o ${HYPRE_SRC_TOP_DIR}/parcsr_mv/*.o ${HYPRE_SRC_TOP_DIR}/parcsr_mv/MuP_obj.dir/parcsr_mv_*/*.obj +PARCSRBLOCKMVFILES = ${HYPRE_SRC_TOP_DIR}/parcsr_block_mv/MuP_obj.dir/parcsr_block_mv_*/*.o +PARCSRLSFILES = ${HYPRE_SRC_TOP_DIR}/parcsr_ls/MuP_obj.dir/parcsr_ls_*/*.o ${HYPRE_SRC_TOP_DIR}/parcsr_ls/*.o ${HYPRE_SRC_TOP_DIR}/parcsr_ls/MuP_obj.dir/parcsr_ls_*/*.obj +MULTIVECFILES = ${HYPRE_SRC_TOP_DIR}/multivector/MuP_obj.dir/multivector_*/*.o +SSTRUCTLSFILES = ${HYPRE_SRC_TOP_DIR}/sstruct_ls/MuP_obj.dir/sstruct_ls_*/*.o ${HYPRE_SRC_TOP_DIR}/sstruct_ls/MuP_obj.dir/sstruct_ls_*/*.obj +STRUCTLSFILES = ${HYPRE_SRC_TOP_DIR}/struct_ls/MuP_obj.dir/struct_ls_*/*.o ${HYPRE_SRC_TOP_DIR}/struct_ls/MuP_obj.dir/struct_ls_*/*.obj +SSTRUCTMVFILES = ${HYPRE_SRC_TOP_DIR}/sstruct_mv/MuP_obj.dir/sstruct_mv_*/*.o ${HYPRE_SRC_TOP_DIR}/sstruct_mv/MuP_obj.dir/sstruct_mv_*/*.obj +STRUCTMVFILES = ${HYPRE_SRC_TOP_DIR}/struct_mv/MuP_obj.dir/struct_mv_*/*.o ${HYPRE_SRC_TOP_DIR}/struct_mv/MuP_obj.dir/struct_mv_*/*.obj +UTILITIESFILES = ${HYPRE_SRC_TOP_DIR}/utilities/MuP_obj.dir/utilities_*/*.o ${HYPRE_SRC_TOP_DIR}/utilities/MuP_obj.dir/utilities_*/*.obj +BLASFILES = ${HYPRE_SRC_TOP_DIR}/blas/MuP_obj.dir/blas_*/*.o +LAPACKFILES = ${HYPRE_SRC_TOP_DIR}/lapack/MuP_obj.dir/lapack_*/*.o + +else IJMVFILES = ${HYPRE_SRC_TOP_DIR}/IJ_mv/*.o ${HYPRE_SRC_TOP_DIR}/IJ_mv/*.obj EUCLIDFILES = ${HYPRE_EUCLID_FILES} PARASAILSFILES = ${HYPRE_PARASAILS_FILES} @@ -27,6 +51,7 @@ STRUCTMVFILES = ${HYPRE_SRC_TOP_DIR}/struct_mv/*.o ${HYPRE_SRC_TOP_DIR}/str UTILITIESFILES = ${HYPRE_SRC_TOP_DIR}/utilities/*.o ${HYPRE_SRC_TOP_DIR}/utilities/*.obj BLASFILES = ${HYPRE_SRC_TOP_DIR}/blas/*.o LAPACKFILES = ${HYPRE_SRC_TOP_DIR}/lapack/*.o +endif FILES_HYPRE = \ $(FEIHYPREFILES)\ diff --git a/src/matrix_matrix/HYPRE_ConvertParCSRMatrixToDistributedMatrix.c b/src/matrix_matrix/HYPRE_ConvertParCSRMatrixToDistributedMatrix.c index f16f73041a..a3ecfb7175 100644 --- a/src/matrix_matrix/HYPRE_ConvertParCSRMatrixToDistributedMatrix.c +++ b/src/matrix_matrix/HYPRE_ConvertParCSRMatrixToDistributedMatrix.c @@ -27,6 +27,9 @@ /* Matrix prototypes for ParCSR */ #include "HYPRE_parcsr_mv.h" +/* matrix_matrix protos */ +#include "HYPRE_matrix_matrix_protos.h" + /*-------------------------------------------------------------------------- * HYPRE_ConvertParCSRMatrixToDistributedMatrix *--------------------------------------------------------------------------*/ diff --git a/src/matrix_matrix/HYPRE_matrix_matrix_protos.h b/src/matrix_matrix/HYPRE_matrix_matrix_protos.h index 5cb9726618..a81a28156c 100644 --- a/src/matrix_matrix/HYPRE_matrix_matrix_protos.h +++ b/src/matrix_matrix/HYPRE_matrix_matrix_protos.h @@ -7,6 +7,10 @@ #include "HYPRE_distributed_matrix_types.h" +#ifdef HYPRE_MIXED_PRECISION +#include "matrix_matrix_mup_func.h" +#endif + #ifdef PETSC_AVAILABLE /* HYPRE_ConvertPETScMatrixToDistributedMatrix.c */ HYPRE_Int HYPRE_ConvertPETScMatrixToDistributedMatrix (Mat PETSc_matrix, diff --git a/src/matrix_matrix/Makefile b/src/matrix_matrix/Makefile index 97263c3f48..8f7552728b 100644 --- a/src/matrix_matrix/Makefile +++ b/src/matrix_matrix/Makefile @@ -22,10 +22,20 @@ EXTRA_FILES =\ HEADERS = HYPRE_matrix_matrix_protos.h FILES =\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ HYPRE_ConvertParCSRMatrixToDistributedMatrix.c\ HYPRE_ConvertPETScMatrixToDistributedMatrix.c - -OBJS = ${FILES:.c=.o} + +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} +endif SONAME = libHYPRE_MatrixMatrix-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -35,22 +45,64 @@ SONAME = libHYPRE_MatrixMatrix-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_MatrixMatrix${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/matrix_matrix_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_MatrixMatrix${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/matrix_matrix_mup_func.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o lib* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} +endif +# libHYPRE_MatrixMatrix.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/matrix_matrix/internal_protos.h b/src/matrix_matrix/internal_protos.h index 3df8943552..a3adeecebd 100644 --- a/src/matrix_matrix/internal_protos.h +++ b/src/matrix_matrix/internal_protos.h @@ -5,6 +5,10 @@ * SPDX-License-Identifier: (Apache-2.0 OR MIT) ******************************************************************************/ +#ifdef HYPRE_MIXED_PRECISION +#include "matrix_matrix_mup_func.h" +#endif + /* HYPRE_ConvertPETScMatrixToDistributedMatrix.c */ HYPRE_Int HYPRE_ConvertPETScMatrixToDistributedMatrix (Mat PETSc_matrix, HYPRE_DistributedMatrix *DistributedMatrix ); diff --git a/src/matrix_matrix/matrix_matrix_func_header b/src/matrix_matrix/matrix_matrix_func_header new file mode 100755 index 0000000000..63560e6124 --- /dev/null +++ b/src/matrix_matrix/matrix_matrix_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=matrix_matrix_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'matrix_matrix_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef MATRIX_MATRIX_MUP_FUNC_HEADER +#define MATRIX_MATRIX_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=matrix_matrix_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/matrix_matrix/matrix_matrix_functions.saved b/src/matrix_matrix/matrix_matrix_functions.saved new file mode 100644 index 0000000000..796364e36d --- /dev/null +++ b/src/matrix_matrix/matrix_matrix_functions.saved @@ -0,0 +1 @@ +HYPRE_ConvertParCSRMatrixToDistributedMatrix diff --git a/src/matrix_matrix/matrix_matrix_mup_func.h b/src/matrix_matrix/matrix_matrix_mup_func.h new file mode 100644 index 0000000000..22c4ed9392 --- /dev/null +++ b/src/matrix_matrix/matrix_matrix_mup_func.h @@ -0,0 +1,21 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'matrix_matrix_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef MATRIX_MATRIX_MUP_FUNC_HEADER +#define MATRIX_MATRIX_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define HYPRE_ConvertParCSRMatrixToDistributedMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_ConvertParCSRMatrixToDistributedMatrix ) + +#endif diff --git a/src/multivector/Makefile b/src/multivector/Makefile index 2811c2fd38..f8997a8672 100644 --- a/src/multivector/Makefile +++ b/src/multivector/Makefile @@ -37,16 +37,68 @@ install: libHYPRE_multivector${HYPRE_LIB_SUFFIX} cp -fR *.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +#MKDIR_P = mkdir -p +#mkmpdir: +# ${MKDIR_P} ${MuP_OBJDIR} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${OBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${OBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${OBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +# multiprecision object libraries +MULTIVECTORLIBS = ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +libHYPRE_multivector.a: ${MULTIVECTORLIBS} + @echo "Building $@ ... " + ${AR} $@ ${MULTIVECTORLIBS} + ${RANLIB} $@ + +libHYPRE_multivector.so libHYPRE_multivector.dylib: ${MULTIVECTORLIBS} + @echo "Building $@ ... " + ${BUILD_CC_SHARED} -o ${SONAME} ${MULTIVECTORLIBS} ${SHARED_SET_SONAME}${SONAME} + ln -s -f ${SONAME} $@ +else libHYPRE_multivector.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} @@ -58,3 +110,4 @@ libHYPRE_multivector.so libHYPRE_multivector.dylib: ${OBJS} ln -s -f ${SONAME} $@ ${OBJS}: ${HEADERS} +endif diff --git a/src/multivector/interpreter.h b/src/multivector/interpreter.h index ec4b3cb4b5..5b2f7ad3fe 100644 --- a/src/multivector/interpreter.h +++ b/src/multivector/interpreter.h @@ -10,6 +10,10 @@ #include "HYPRE_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "multivector_mup_func.h" +#endif + typedef struct { /* vector operations */ diff --git a/src/multivector/multivector_func_header b/src/multivector/multivector_func_header new file mode 100755 index 0000000000..06d9fc80ea --- /dev/null +++ b/src/multivector/multivector_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=multivector_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'blas_func_header' to generate) ***/ +@ +# Generate copyright header +/usr/WS1/osei/soft/hypre/features/unity_build/all-build/hypre/src/scripts/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef MULTIVECTOR_MUP_FUNC_HEADER +#define MULTIVECTOR_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=multivector_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/multivector/multivector_functions.saved b/src/multivector/multivector_functions.saved new file mode 100644 index 0000000000..2735870b93 --- /dev/null +++ b/src/multivector/multivector_functions.saved @@ -0,0 +1,34 @@ +mv_MultiVectorAxpy +mv_MultiVectorByDiagonal +mv_MultiVectorByMatrix +mv_MultiVectorByMultiVector +mv_MultiVectorByMultiVectorDiag +mv_MultiVectorClear +mv_MultiVectorCopy +mv_MultiVectorCreateCopy +mv_MultiVectorCreateFromSampleVector +mv_MultiVectorDestroy +mv_MultiVectorEval +mv_MultiVectorGetData +mv_MultiVectorHeight +mv_MultiVectorSetMask +mv_MultiVectorSetRandom +mv_MultiVectorWidth +mv_MultiVectorWrap +mv_MultiVectorXapy +mv_TempMultiVectorAxpy +mv_TempMultiVectorByDiagonal +mv_TempMultiVectorByMatrix +mv_TempMultiVectorByMultiVector +mv_TempMultiVectorByMultiVectorDiag +mv_TempMultiVectorClear +mv_TempMultiVectorCopy +mv_TempMultiVectorCreateCopy +mv_TempMultiVectorCreateFromSampleVector +mv_TempMultiVectorDestroy +mv_TempMultiVectorEval +mv_TempMultiVectorHeight +mv_TempMultiVectorSetMask +mv_TempMultiVectorSetRandom +mv_TempMultiVectorWidth +mv_TempMultiVectorXapy diff --git a/src/multivector/multivector_mup_func.h b/src/multivector/multivector_mup_func.h new file mode 100644 index 0000000000..e906e7bd3e --- /dev/null +++ b/src/multivector/multivector_mup_func.h @@ -0,0 +1,54 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'blas_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef MULTIVECTOR_MUP_FUNC_HEADER +#define MULTIVECTOR_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define mv_MultiVectorAxpy HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorAxpy ) +#define mv_MultiVectorByDiagonal HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorByDiagonal ) +#define mv_MultiVectorByMatrix HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorByMatrix ) +#define mv_MultiVectorByMultiVector HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorByMultiVector ) +#define mv_MultiVectorByMultiVectorDiag HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorByMultiVectorDiag ) +#define mv_MultiVectorClear HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorClear ) +#define mv_MultiVectorCopy HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorCopy ) +#define mv_MultiVectorCreateCopy HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorCreateCopy ) +#define mv_MultiVectorCreateFromSampleVector HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorCreateFromSampleVector ) +#define mv_MultiVectorDestroy HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorDestroy ) +#define mv_MultiVectorEval HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorEval ) +#define mv_MultiVectorGetData HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorGetData ) +#define mv_MultiVectorHeight HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorHeight ) +#define mv_MultiVectorSetMask HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorSetMask ) +#define mv_MultiVectorSetRandom HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorSetRandom ) +#define mv_MultiVectorWidth HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorWidth ) +#define mv_MultiVectorWrap HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorWrap ) +#define mv_MultiVectorXapy HYPRE_MULTIPRECISION_FUNC ( mv_MultiVectorXapy ) +#define mv_TempMultiVectorAxpy HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorAxpy ) +#define mv_TempMultiVectorByDiagonal HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorByDiagonal ) +#define mv_TempMultiVectorByMatrix HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorByMatrix ) +#define mv_TempMultiVectorByMultiVector HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorByMultiVector ) +#define mv_TempMultiVectorByMultiVectorDiag HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorByMultiVectorDiag ) +#define mv_TempMultiVectorClear HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorClear ) +#define mv_TempMultiVectorCopy HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorCopy ) +#define mv_TempMultiVectorCreateCopy HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorCreateCopy ) +#define mv_TempMultiVectorCreateFromSampleVector HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorCreateFromSampleVector ) +#define mv_TempMultiVectorDestroy HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorDestroy ) +#define mv_TempMultiVectorEval HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorEval ) +#define mv_TempMultiVectorHeight HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorHeight ) +#define mv_TempMultiVectorSetMask HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorSetMask ) +#define mv_TempMultiVectorSetRandom HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorSetRandom ) +#define mv_TempMultiVectorWidth HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorWidth ) +#define mv_TempMultiVectorXapy HYPRE_MULTIPRECISION_FUNC ( mv_TempMultiVectorXapy ) + +#endif diff --git a/src/parcsr_block_mv/Makefile b/src/parcsr_block_mv/Makefile index ee0b417371..c263d10f25 100644 --- a/src/parcsr_block_mv/Makefile +++ b/src/parcsr_block_mv/Makefile @@ -51,7 +51,7 @@ EXTRA_FILES = DRIVER_FILES = -OBJS = ${FILES:.c=.o} +COBJS = ${FILES:.c=.o} DRIVER_OBJS = ${DRIVER_FILES:.c=.o} SONAME = libHYPRE_parcsr_block_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -63,6 +63,7 @@ SONAME = libHYPRE_parcsr_block_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/par_csr_block_matrix.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/csr_block_matrix.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/parcsr_block_mv_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE_* $(HYPRE_BUILD_DIR)/lib/. driver: driver.o libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX} @@ -92,18 +93,60 @@ driver_boolaat: driver_boolaat.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} install: libHYPRE_parcsr_block_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/par_csr_block_matrix.h $(HYPRE_INC_INSTALL)/. cp -fR $(srcdir)/csr_block_matrix.h $(HYPRE_INC_INSTALL)/. + cp -fR $(srcdir)/parcsr_block_mv_mup_func.h $(HYPRE_INC_INSTALL)/. # cp -fR libHYPRE_* $(HYPRE_LIB_INSTALL)/. -clean: - rm -rf *.o libHYPRE_* +clean: clean_mup + rm -f *.o libHYPRE* rm -f driver driver_matvec driver_matmul distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${COBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${COBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${COBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} +endif +# libHYPRE_parcsr_block_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/parcsr_block_mv/csr_block_matrix.h b/src/parcsr_block_mv/csr_block_matrix.h index c05ba0d5ab..1305a44bc1 100644 --- a/src/parcsr_block_mv/csr_block_matrix.h +++ b/src/parcsr_block_mv/csr_block_matrix.h @@ -21,6 +21,10 @@ #include "seq_mv.h" #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_block_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/parcsr_block_mv/parcsr_block_mv_func_header b/src/parcsr_block_mv/parcsr_block_mv_func_header new file mode 100755 index 0000000000..0f53d34ff5 --- /dev/null +++ b/src/parcsr_block_mv/parcsr_block_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=parcsr_block_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_block_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARCSR_BLOCK_MV_MUP_FUNC_HEADER +#define PARCSR_BLOCK_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=parcsr_block_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/parcsr_block_mv/parcsr_block_mv_functions.saved b/src/parcsr_block_mv/parcsr_block_mv_functions.saved new file mode 100644 index 0000000000..49eed20374 --- /dev/null +++ b/src/parcsr_block_mv/parcsr_block_mv_functions.saved @@ -0,0 +1,66 @@ +hypre_CSRBlockMatrixBigInitialize +hypre_CSRBlockMatrixBlockAdd +hypre_CSRBlockMatrixBlockAddAccumulate +hypre_CSRBlockMatrixBlockAddAccumulateDiag +hypre_CSRBlockMatrixBlockAddAccumulateDiagCheckSign +hypre_CSRBlockMatrixBlockCopyData +hypre_CSRBlockMatrixBlockCopyDataDiag +hypre_CSRBlockMatrixBlockInvMatvec +hypre_CSRBlockMatrixBlockInvMult +hypre_CSRBlockMatrixBlockInvMultDiag +hypre_CSRBlockMatrixBlockInvMultDiag2 +hypre_CSRBlockMatrixBlockInvMultDiag3 +hypre_CSRBlockMatrixBlockMatvec +hypre_CSRBlockMatrixBlockMultAdd +hypre_CSRBlockMatrixBlockMultAddDiag +hypre_CSRBlockMatrixBlockMultAddDiag2 +hypre_CSRBlockMatrixBlockMultAddDiag3 +hypre_CSRBlockMatrixBlockMultAddDiagCheckSign +hypre_CSRBlockMatrixBlockMultInv +hypre_CSRBlockMatrixBlockNorm +hypre_CSRBlockMatrixBlockSetScalar +hypre_CSRBlockMatrixBlockTranspose +hypre_CSRBlockMatrixCompress +hypre_CSRBlockMatrixComputeSign +hypre_CSRBlockMatrixConvertFromCSRMatrix +hypre_CSRBlockMatrixConvertToCSRMatrix +hypre_CSRBlockMatrixCreate +hypre_CSRBlockMatrixDestroy +hypre_CSRBlockMatrixInitialize +hypre_CSRBlockMatrixSetDataOwner +hypre_CSRBlockMatrixTranspose +hypre_CSRBlockMatrixMatvec +hypre_CSRBlockMatrixMatvecT +hypre_BoomerAMGBlockCreateNodalA +hypre_ParCSRBlockCommHandleCreate +hypre_ParCSRBlockCommHandleDestroy +hypre_ParCSRBlockMatrixCreateAssumedPartition +hypre_ParCSRBlockMatrixDestroyAssumedPartition +hypre_block_qsort +hypre_BoomerAMGBlockInterpTruncation +hypre_BoomerAMGBuildBlockDirInterp +hypre_BoomerAMGBuildBlockInterp +hypre_BoomerAMGBuildBlockInterpDiag +hypre_BoomerAMGBuildBlockInterpRV +hypre_BoomerAMGBuildBlockInterpRV2 +hypre_swap_blk +hypre_BlockMatvecCommPkgCreate +hypre_ParCSRBlockMatrixCompress +hypre_ParCSRBlockMatrixConvertFromParCSRMatrix +hypre_ParCSRBlockMatrixConvertToParCSRMatrix +hypre_ParCSRBlockMatrixCreate +hypre_ParCSRBlockMatrixDestroy +hypre_ParCSRBlockMatrixExtractBExt +hypre_ParCSRBlockMatrixInitialize +hypre_ParCSRBlockMatrixSetDataOwner +hypre_ParCSRBlockMatrixSetDNumNonzeros +hypre_ParCSRBlockMatrixSetNumNonzeros +hypre_ParVectorCreateFromBlock +hypre_ParCSRBlockMatrixMatvec +hypre_ParCSRBlockMatrixMatvecT +hypre_GetCommPkgBlockRTFromCommPkgBlockA +hypre_ExchangeRAPBlockData +hypre_ParCSRBlockMatrixRAP +gselim_piv +hypre_BoomerAMGBlockRelax +hypre_BoomerAMGBlockRelaxIF diff --git a/src/parcsr_block_mv/parcsr_block_mv_mup_func.h b/src/parcsr_block_mv/parcsr_block_mv_mup_func.h new file mode 100644 index 0000000000..f252efe1c5 --- /dev/null +++ b/src/parcsr_block_mv/parcsr_block_mv_mup_func.h @@ -0,0 +1,86 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_block_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARCSR_BLOCK_MV_MUP_FUNC_HEADER +#define PARCSR_BLOCK_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_CSRBlockMatrixBigInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBigInitialize ) +#define hypre_CSRBlockMatrixBlockAdd HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockAdd ) +#define hypre_CSRBlockMatrixBlockAddAccumulate HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockAddAccumulate ) +#define hypre_CSRBlockMatrixBlockAddAccumulateDiag HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockAddAccumulateDiag ) +#define hypre_CSRBlockMatrixBlockAddAccumulateDiagCheckSign HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockAddAccumulateDiagCheckSign ) +#define hypre_CSRBlockMatrixBlockCopyData HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockCopyData ) +#define hypre_CSRBlockMatrixBlockCopyDataDiag HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockCopyDataDiag ) +#define hypre_CSRBlockMatrixBlockInvMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockInvMatvec ) +#define hypre_CSRBlockMatrixBlockInvMult HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockInvMult ) +#define hypre_CSRBlockMatrixBlockInvMultDiag HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockInvMultDiag ) +#define hypre_CSRBlockMatrixBlockInvMultDiag2 HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockInvMultDiag2 ) +#define hypre_CSRBlockMatrixBlockInvMultDiag3 HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockInvMultDiag3 ) +#define hypre_CSRBlockMatrixBlockMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMatvec ) +#define hypre_CSRBlockMatrixBlockMultAdd HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMultAdd ) +#define hypre_CSRBlockMatrixBlockMultAddDiag HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMultAddDiag ) +#define hypre_CSRBlockMatrixBlockMultAddDiag2 HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMultAddDiag2 ) +#define hypre_CSRBlockMatrixBlockMultAddDiag3 HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMultAddDiag3 ) +#define hypre_CSRBlockMatrixBlockMultAddDiagCheckSign HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMultAddDiagCheckSign ) +#define hypre_CSRBlockMatrixBlockMultInv HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockMultInv ) +#define hypre_CSRBlockMatrixBlockNorm HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockNorm ) +#define hypre_CSRBlockMatrixBlockSetScalar HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockSetScalar ) +#define hypre_CSRBlockMatrixBlockTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixBlockTranspose ) +#define hypre_CSRBlockMatrixCompress HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixCompress ) +#define hypre_CSRBlockMatrixComputeSign HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixComputeSign ) +#define hypre_CSRBlockMatrixConvertFromCSRMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixConvertFromCSRMatrix ) +#define hypre_CSRBlockMatrixConvertToCSRMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixConvertToCSRMatrix ) +#define hypre_CSRBlockMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixCreate ) +#define hypre_CSRBlockMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixDestroy ) +#define hypre_CSRBlockMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixInitialize ) +#define hypre_CSRBlockMatrixSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixSetDataOwner ) +#define hypre_CSRBlockMatrixTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixTranspose ) +#define hypre_CSRBlockMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixMatvec ) +#define hypre_CSRBlockMatrixMatvecT HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBlockMatrixMatvecT ) +#define hypre_BoomerAMGBlockCreateNodalA HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBlockCreateNodalA ) +#define hypre_ParCSRBlockCommHandleCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockCommHandleCreate ) +#define hypre_ParCSRBlockCommHandleDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockCommHandleDestroy ) +#define hypre_ParCSRBlockMatrixCreateAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixCreateAssumedPartition ) +#define hypre_ParCSRBlockMatrixDestroyAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixDestroyAssumedPartition ) +#define hypre_BoomerAMGBlockInterpTruncation HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBlockInterpTruncation ) +#define hypre_BoomerAMGBuildBlockDirInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildBlockDirInterp ) +#define hypre_BoomerAMGBuildBlockInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildBlockInterp ) +#define hypre_BoomerAMGBuildBlockInterpDiag HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildBlockInterpDiag ) +#define hypre_BoomerAMGBuildBlockInterpRV HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildBlockInterpRV ) +#define hypre_BoomerAMGBuildBlockInterpRV2 HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildBlockInterpRV2 ) +#define hypre_block_qsort HYPRE_MULTIPRECISION_FUNC ( hypre_block_qsort ) +#define hypre_swap_blk HYPRE_MULTIPRECISION_FUNC ( hypre_swap_blk ) +#define hypre_BlockMatvecCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BlockMatvecCommPkgCreate ) +#define hypre_ParCSRBlockMatrixCompress HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixCompress ) +#define hypre_ParCSRBlockMatrixConvertFromParCSRMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixConvertFromParCSRMatrix ) +#define hypre_ParCSRBlockMatrixConvertToParCSRMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixConvertToParCSRMatrix ) +#define hypre_ParCSRBlockMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixCreate ) +#define hypre_ParCSRBlockMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixDestroy ) +#define hypre_ParCSRBlockMatrixExtractBExt HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixExtractBExt ) +#define hypre_ParCSRBlockMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixInitialize ) +#define hypre_ParCSRBlockMatrixSetDNumNonzeros HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixSetDNumNonzeros ) +#define hypre_ParCSRBlockMatrixSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixSetDataOwner ) +#define hypre_ParCSRBlockMatrixSetNumNonzeros HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixSetNumNonzeros ) +#define hypre_ParVectorCreateFromBlock HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorCreateFromBlock ) +#define hypre_ParCSRBlockMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixMatvec ) +#define hypre_ParCSRBlockMatrixMatvecT HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixMatvecT ) +#define hypre_ExchangeRAPBlockData HYPRE_MULTIPRECISION_FUNC ( hypre_ExchangeRAPBlockData ) +#define hypre_ParCSRBlockMatrixRAP HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBlockMatrixRAP ) +#define hypre_GetCommPkgBlockRTFromCommPkgBlockA HYPRE_MULTIPRECISION_FUNC ( hypre_GetCommPkgBlockRTFromCommPkgBlockA ) +#define gselim_piv HYPRE_MULTIPRECISION_FUNC ( gselim_piv ) +#define hypre_BoomerAMGBlockRelax HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBlockRelax ) +#define hypre_BoomerAMGBlockRelaxIF HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBlockRelaxIF ) + +#endif diff --git a/src/parcsr_ls/HYPRE_parcsr_ls.h b/src/parcsr_ls/HYPRE_parcsr_ls.h index 5f0d0620cd..08c3723906 100644 --- a/src/parcsr_ls/HYPRE_parcsr_ls.h +++ b/src/parcsr_ls/HYPRE_parcsr_ls.h @@ -14,6 +14,10 @@ #include "HYPRE_IJ_mv.h" #include "HYPRE_lobpcg.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/parcsr_ls/HYPRE_parcsr_ls_mp.c b/src/parcsr_ls/HYPRE_parcsr_ls_mp.c new file mode 100644 index 0000000000..72a24fdfa5 --- /dev/null +++ b/src/parcsr_ls/HYPRE_parcsr_ls_mp.c @@ -0,0 +1,104 @@ +/****************************************************************************** + * 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_parcsr_ls mixed precision functions + * + *****************************************************************************/ + +#include "_hypre_parcsr_ls.h" +#include "hypre_parcsr_mv_mup.h" +#include "hypre_parcsr_ls_mup.h" + +#ifdef HYPRE_MIXED_PRECISION + +/*-------------------------------------------------------------------------- + * Mixed-precision HYPRE_BoomerAMGSetup + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_BoomerAMGSetup_mp( HYPRE_Solver solver, + HYPRE_ParCSRMatrix A, + HYPRE_ParVector b, + HYPRE_ParVector x ) +{ + hypre_ParVector *btemp = NULL; + hypre_ParVector *xtemp = NULL; + + HYPRE_ParVectorCreate_flt(hypre_ParCSRMatrixComm(A), + hypre_ParCSRMatrixGlobalNumRows(A), + hypre_ParCSRMatrixRowStarts(A), + &btemp); + HYPRE_ParVectorInitialize_flt( btemp ); + HYPRE_ParVectorCreate_flt(hypre_ParCSRMatrixComm(A), + hypre_ParCSRMatrixGlobalNumRows(A), + hypre_ParCSRMatrixRowStarts(A), + &xtemp); + HYPRE_ParVectorInitialize_flt( xtemp ); + +/* copy from double precision {b,x} to single precision {btemp,xtemp} */ + HYPRE_ParVectorCopy_mp(b, btemp); + HYPRE_ParVectorCopy_mp(x, xtemp); + +/* call setup */ + HYPRE_BoomerAMGSetup_flt( solver, A, btemp, xtemp ); + +/* copy from single precision {btemp,xtemp} to double precision {b,x} */ + HYPRE_ParVectorCopy_mp(btemp, b); + HYPRE_ParVectorCopy_mp(xtemp, x); + +/* free data */ + HYPRE_ParVectorDestroy_flt(btemp); + HYPRE_ParVectorDestroy_flt(xtemp); + + return 0; + +} + +/*-------------------------------------------------------------------------- + * Mixed-precision HYPRE_BoomerAMGSetup + *--------------------------------------------------------------------------*/ +HYPRE_Int +HYPRE_BoomerAMGSolve_mp( HYPRE_Solver solver, + HYPRE_ParCSRMatrix A, + HYPRE_ParVector b, + HYPRE_ParVector x ) +{ + hypre_ParVector *btemp = NULL; + hypre_ParVector *xtemp = NULL; + + HYPRE_ParVectorCreate_flt(hypre_ParCSRMatrixComm(A), + hypre_ParCSRMatrixGlobalNumRows(A), + hypre_ParCSRMatrixRowStarts(A), + &btemp); + HYPRE_ParVectorInitialize_flt( btemp ); + HYPRE_ParVectorCreate_flt(hypre_ParCSRMatrixComm(A), + hypre_ParCSRMatrixGlobalNumRows(A), + hypre_ParCSRMatrixRowStarts(A), + &xtemp); + HYPRE_ParVectorInitialize_flt( xtemp ); + +/* copy from double precision {b,x} to single precision {btemp,xtemp} */ + HYPRE_ParVectorCopy_mp(b, btemp); + HYPRE_ParVectorCopy_mp(x, xtemp); + +/* call setup */ + HYPRE_BoomerAMGSolve_flt( solver, A, btemp, xtemp ); + +/* copy from single precision {btemp,xtemp} to double precision {b,x} */ + HYPRE_ParVectorCopy_mp(btemp, b); + HYPRE_ParVectorCopy_mp(xtemp, x); + +/* free data */ + HYPRE_ParVectorDestroy_flt(btemp); + HYPRE_ParVectorDestroy_flt(xtemp); + + return 0; +} + +#endif diff --git a/src/parcsr_ls/HYPRE_parcsr_ls_mp.h b/src/parcsr_ls/HYPRE_parcsr_ls_mp.h new file mode 100644 index 0000000000..899ed6e0c8 --- /dev/null +++ b/src/parcsr_ls/HYPRE_parcsr_ls_mp.h @@ -0,0 +1,39 @@ +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * + * Mixed precision function protos + * + *****************************************************************************/ + +#ifndef HYPRE_PARCSR_LS_MP_HEADER +#define HYPRE_PARCSR_LS_MP_HEADER + +#ifdef HYPRE_MIXED_PRECISION + +#ifdef __cplusplus +extern "C" { +#endif + +HYPRE_Int HYPRE_BoomerAMGSetup_mp(HYPRE_Solver solver, + HYPRE_ParCSRMatrix A, + HYPRE_ParVector b, + HYPRE_ParVector x); + +HYPRE_Int HYPRE_BoomerAMGSolve_mp(HYPRE_Solver solver, + HYPRE_ParCSRMatrix A, + HYPRE_ParVector b, + HYPRE_ParVector x); + +#ifdef __cplusplus +} +#endif + +#endif + +#endif diff --git a/src/parcsr_ls/Makefile b/src/parcsr_ls/Makefile index 9eaa82ce43..600bf38ef8 100644 --- a/src/parcsr_ls/Makefile +++ b/src/parcsr_ls/Makefile @@ -31,6 +31,7 @@ C_COMPILE_FLAGS =\ HEADERS =\ HYPRE_parcsr_ls.h\ + HYPRE_parcsr_ls_mp.h\ _hypre_parcsr_ls.h\ aux_interp.h\ block_tridiag.h\ @@ -42,6 +43,40 @@ HEADERS =\ schwarz.h FILES =\ + HYPRE_parcsr_ls_mp.c + +CUFILES =\ + ads.c\ + ams.c\ + ame.c\ + dsuperlu.c\ + par_amg_setup.c\ + par_ge_device.c\ + par_ilu_setup_device.c\ + par_ilu_solve_device.c\ + par_ilu_solve.c \ + par_cheby_device.c\ + par_relax_more_device.c\ + par_coarsen_device.c\ + par_coarse_parms_device.c\ + par_indepset_device.c\ + par_interp_device.c\ + par_lr_restr_device.c\ + par_interp_trunc_device.c\ + par_lr_interp_device.c\ + par_strength_device.c\ + par_strength2nd_device.c\ + par_amgdd_fac_cycle_device.c\ + par_2s_interp_device.c\ + par_relax_device.c\ + par_mod_multi_interp_device.c\ + par_mgr_device.c\ + par_fsai_device.c + +####################### +# Multiprecision files +####################### +MuP_FILES = \ amg_hybrid.c\ aux_interp.c\ F90_hypre_laplace.c\ @@ -153,37 +188,14 @@ FILES =\ par_restr.c\ par_lr_restr.c -CUFILES =\ - ads.c\ - ams.c\ - ame.c\ - dsuperlu.c\ - par_amg_setup.c\ - par_ge_device.c\ - par_ilu_setup_device.c\ - par_ilu_solve_device.c\ - par_ilu_solve.c \ - par_cheby_device.c\ - par_relax_more_device.c\ - par_coarsen_device.c\ - par_coarse_parms_device.c\ - par_indepset_device.c\ - par_interp_device.c\ - par_lr_restr_device.c\ - par_interp_trunc_device.c\ - par_lr_interp_device.c\ - par_strength_device.c\ - par_strength2nd_device.c\ - par_amgdd_fac_cycle_device.c\ - par_2s_interp_device.c\ - par_relax_device.c\ - par_mod_multi_interp_device.c\ - par_mgr_device.c\ - par_fsai_device.c - -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_parcsr_ls-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -194,24 +206,70 @@ SONAME = libHYPRE_parcsr_ls-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_parcsr_ls${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/parcsr_ls_mup_func.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/hypre_parcsr_ls_mup.h $(HYPRE_BUILD_DIR)/include +# cp -fR $(srcdir)/HYPRE_parcsr_ls_mp.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_parcsr_ls${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_parcsr_ls.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/parcsr_ls_mup_func.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/hypre_parcsr_ls_mup.h $(HYPRE_INC_INSTALL) +# cp -fR $(srcdir)/HYPRE_parcsr_ls_mp.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_parcsr_ls.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/parcsr_ls/_hypre_parcsr_ls.h b/src/parcsr_ls/_hypre_parcsr_ls.h index c5645d9a69..62ec6bc37d 100644 --- a/src/parcsr_ls/_hypre_parcsr_ls.h +++ b/src/parcsr_ls/_hypre_parcsr_ls.h @@ -10,6 +10,11 @@ #include "krylov.h" #include "HYPRE_lobpcg.h" +#include "HYPRE_parcsr_ls_mp.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/parcsr_ls/headers b/src/parcsr_ls/headers index 4c7a5dc743..a3dd389f24 100755 --- a/src/parcsr_ls/headers +++ b/src/parcsr_ls/headers @@ -23,6 +23,11 @@ cat > $INTERNAL_HEADER <<@ #include "krylov.h" #include "HYPRE_lobpcg.h" +#include "HYPRE_parcsr_ls_mp.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/parcsr_ls/hypre_parcsr_ls_mup.h b/src/parcsr_ls/hypre_parcsr_ls_mup.h new file mode 100644 index 0000000000..cdeeabd94f --- /dev/null +++ b/src/parcsr_ls/hypre_parcsr_ls_mup.h @@ -0,0 +1,6999 @@ + +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file of multiprecision function prototypes. + * This is needed for mixed-precision algorithm development. + *****************************************************************************/ + +#ifndef HYPRE_PARCSR_LS_MUP_HEADER +#define HYPRE_PARCSR_LS_MUP_HEADER + +#include "_hypre_parcsr_ls.h" + +#if defined (HYPRE_MIXED_PRECISION) + +HYPRE_Int hypre_ADSComputePi_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *C, hypre_ParCSRMatrix *G, + hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector *z, hypre_ParCSRMatrix *PiNDx, + hypre_ParCSRMatrix *PiNDy, hypre_ParCSRMatrix *PiNDz, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_ADSComputePi_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *C, hypre_ParCSRMatrix *G, + hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector *z, hypre_ParCSRMatrix *PiNDx, + hypre_ParCSRMatrix *PiNDy, hypre_ParCSRMatrix *PiNDz, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_ADSComputePi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *C, hypre_ParCSRMatrix *G, + hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector *z, hypre_ParCSRMatrix *PiNDx, + hypre_ParCSRMatrix *PiNDy, hypre_ParCSRMatrix *PiNDz, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_ADSComputePixyz_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *C, + hypre_ParCSRMatrix *G, hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector *z, + hypre_ParCSRMatrix *PiNDx, hypre_ParCSRMatrix *PiNDy, hypre_ParCSRMatrix *PiNDz, + hypre_ParCSRMatrix **Pix_ptr, hypre_ParCSRMatrix **Piy_ptr, hypre_ParCSRMatrix **Piz_ptr ); +HYPRE_Int hypre_ADSComputePixyz_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *C, + hypre_ParCSRMatrix *G, hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector *z, + hypre_ParCSRMatrix *PiNDx, hypre_ParCSRMatrix *PiNDy, hypre_ParCSRMatrix *PiNDz, + hypre_ParCSRMatrix **Pix_ptr, hypre_ParCSRMatrix **Piy_ptr, hypre_ParCSRMatrix **Piz_ptr ); +HYPRE_Int hypre_ADSComputePixyz_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *C, + hypre_ParCSRMatrix *G, hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector *z, + hypre_ParCSRMatrix *PiNDx, hypre_ParCSRMatrix *PiNDy, hypre_ParCSRMatrix *PiNDz, + hypre_ParCSRMatrix **Pix_ptr, hypre_ParCSRMatrix **Piy_ptr, hypre_ParCSRMatrix **Piz_ptr ); +void *hypre_ADSCreate_flt ( void ); +void *hypre_ADSCreate_dbl ( void ); +void *hypre_ADSCreate_long_dbl ( void ); +HYPRE_Int hypre_ADSDestroy_flt ( void *solver ); +HYPRE_Int hypre_ADSDestroy_dbl ( void *solver ); +HYPRE_Int hypre_ADSDestroy_long_dbl ( void *solver ); +HYPRE_Int hypre_ADSGetFinalRelativeResidualNorm_flt ( void *solver, hypre_float *rel_resid_norm ); +HYPRE_Int hypre_ADSGetFinalRelativeResidualNorm_dbl ( void *solver, hypre_double *rel_resid_norm ); +HYPRE_Int hypre_ADSGetFinalRelativeResidualNorm_long_dbl ( void *solver, hypre_long_double *rel_resid_norm ); +HYPRE_Int hypre_ADSGetNumIterations_flt ( void *solver, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_ADSGetNumIterations_dbl ( void *solver, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_ADSGetNumIterations_long_dbl ( void *solver, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_ADSSetAMGOptions_flt ( void *solver, HYPRE_Int B_Pi_coarsen_type, + HYPRE_Int B_Pi_agg_levels, HYPRE_Int B_Pi_relax_type, hypre_float B_Pi_theta, + HYPRE_Int B_Pi_interp_type, HYPRE_Int B_Pi_Pmax ); +HYPRE_Int hypre_ADSSetAMGOptions_dbl ( void *solver, HYPRE_Int B_Pi_coarsen_type, + HYPRE_Int B_Pi_agg_levels, HYPRE_Int B_Pi_relax_type, hypre_double B_Pi_theta, + HYPRE_Int B_Pi_interp_type, HYPRE_Int B_Pi_Pmax ); +HYPRE_Int hypre_ADSSetAMGOptions_long_dbl ( void *solver, HYPRE_Int B_Pi_coarsen_type, + HYPRE_Int B_Pi_agg_levels, HYPRE_Int B_Pi_relax_type, hypre_long_double B_Pi_theta, + HYPRE_Int B_Pi_interp_type, HYPRE_Int B_Pi_Pmax ); +HYPRE_Int hypre_ADSSetAMSOptions_flt ( void *solver, HYPRE_Int B_C_cycle_type, + HYPRE_Int B_C_coarsen_type, HYPRE_Int B_C_agg_levels, HYPRE_Int B_C_relax_type, + hypre_float B_C_theta, HYPRE_Int B_C_interp_type, HYPRE_Int B_C_Pmax ); +HYPRE_Int hypre_ADSSetAMSOptions_dbl ( void *solver, HYPRE_Int B_C_cycle_type, + HYPRE_Int B_C_coarsen_type, HYPRE_Int B_C_agg_levels, HYPRE_Int B_C_relax_type, + hypre_double B_C_theta, HYPRE_Int B_C_interp_type, HYPRE_Int B_C_Pmax ); +HYPRE_Int hypre_ADSSetAMSOptions_long_dbl ( void *solver, HYPRE_Int B_C_cycle_type, + HYPRE_Int B_C_coarsen_type, HYPRE_Int B_C_agg_levels, HYPRE_Int B_C_relax_type, + hypre_long_double B_C_theta, HYPRE_Int B_C_interp_type, HYPRE_Int B_C_Pmax ); +HYPRE_Int hypre_ADSSetChebySmoothingOptions_flt ( void *solver, HYPRE_Int A_cheby_order, + hypre_float A_cheby_fraction ); +HYPRE_Int hypre_ADSSetChebySmoothingOptions_dbl ( void *solver, HYPRE_Int A_cheby_order, + hypre_double A_cheby_fraction ); +HYPRE_Int hypre_ADSSetChebySmoothingOptions_long_dbl ( void *solver, HYPRE_Int A_cheby_order, + hypre_long_double A_cheby_fraction ); +HYPRE_Int hypre_ADSSetCoordinateVectors_flt ( void *solver, hypre_ParVector *x, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_ADSSetCoordinateVectors_dbl ( void *solver, hypre_ParVector *x, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_ADSSetCoordinateVectors_long_dbl ( void *solver, hypre_ParVector *x, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_ADSSetCycleType_flt ( void *solver, HYPRE_Int cycle_type ); +HYPRE_Int hypre_ADSSetCycleType_dbl ( void *solver, HYPRE_Int cycle_type ); +HYPRE_Int hypre_ADSSetCycleType_long_dbl ( void *solver, HYPRE_Int cycle_type ); +HYPRE_Int hypre_ADSSetDiscreteCurl_flt ( void *solver, hypre_ParCSRMatrix *C ); +HYPRE_Int hypre_ADSSetDiscreteCurl_dbl ( void *solver, hypre_ParCSRMatrix *C ); +HYPRE_Int hypre_ADSSetDiscreteCurl_long_dbl ( void *solver, hypre_ParCSRMatrix *C ); +HYPRE_Int hypre_ADSSetDiscreteGradient_flt ( void *solver, hypre_ParCSRMatrix *G ); +HYPRE_Int hypre_ADSSetDiscreteGradient_dbl ( void *solver, hypre_ParCSRMatrix *G ); +HYPRE_Int hypre_ADSSetDiscreteGradient_long_dbl ( void *solver, hypre_ParCSRMatrix *G ); +HYPRE_Int hypre_ADSSetInterpolations_flt ( void *solver, hypre_ParCSRMatrix *RT_Pi, + hypre_ParCSRMatrix *RT_Pix, hypre_ParCSRMatrix *RT_Piy, + hypre_ParCSRMatrix *RT_Piz, hypre_ParCSRMatrix *ND_Pi, + hypre_ParCSRMatrix *ND_Pix, hypre_ParCSRMatrix *ND_Piy, + hypre_ParCSRMatrix *ND_Piz ); +HYPRE_Int hypre_ADSSetInterpolations_dbl ( void *solver, hypre_ParCSRMatrix *RT_Pi, + hypre_ParCSRMatrix *RT_Pix, hypre_ParCSRMatrix *RT_Piy, + hypre_ParCSRMatrix *RT_Piz, hypre_ParCSRMatrix *ND_Pi, + hypre_ParCSRMatrix *ND_Pix, hypre_ParCSRMatrix *ND_Piy, + hypre_ParCSRMatrix *ND_Piz ); +HYPRE_Int hypre_ADSSetInterpolations_long_dbl ( void *solver, hypre_ParCSRMatrix *RT_Pi, + hypre_ParCSRMatrix *RT_Pix, hypre_ParCSRMatrix *RT_Piy, + hypre_ParCSRMatrix *RT_Piz, hypre_ParCSRMatrix *ND_Pi, + hypre_ParCSRMatrix *ND_Pix, hypre_ParCSRMatrix *ND_Piy, + hypre_ParCSRMatrix *ND_Piz ); +HYPRE_Int hypre_ADSSetMaxIter_flt ( void *solver, HYPRE_Int maxit ); +HYPRE_Int hypre_ADSSetMaxIter_dbl ( void *solver, HYPRE_Int maxit ); +HYPRE_Int hypre_ADSSetMaxIter_long_dbl ( void *solver, HYPRE_Int maxit ); +HYPRE_Int hypre_ADSSetPrintLevel_flt ( void *solver, HYPRE_Int print_level ); +HYPRE_Int hypre_ADSSetPrintLevel_dbl ( void *solver, HYPRE_Int print_level ); +HYPRE_Int hypre_ADSSetPrintLevel_long_dbl ( void *solver, HYPRE_Int print_level ); +HYPRE_Int hypre_ADSSetSmoothingOptions_flt ( void *solver, HYPRE_Int A_relax_type, + HYPRE_Int A_relax_times, hypre_float A_relax_weight, hypre_float A_omega ); +HYPRE_Int hypre_ADSSetSmoothingOptions_dbl ( void *solver, HYPRE_Int A_relax_type, + HYPRE_Int A_relax_times, hypre_double A_relax_weight, hypre_double A_omega ); +HYPRE_Int hypre_ADSSetSmoothingOptions_long_dbl ( void *solver, HYPRE_Int A_relax_type, + HYPRE_Int A_relax_times, hypre_long_double A_relax_weight, hypre_long_double A_omega ); +HYPRE_Int hypre_ADSSetTol_flt ( void *solver, hypre_float tol ); +HYPRE_Int hypre_ADSSetTol_dbl ( void *solver, hypre_double tol ); +HYPRE_Int hypre_ADSSetTol_long_dbl ( void *solver, hypre_long_double tol ); +HYPRE_Int hypre_ADSSetup_flt ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_ADSSetup_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_ADSSetup_long_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_ADSSolve_flt ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_ADSSolve_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_ADSSolve_long_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +void *hypre_AMECreate_flt ( void ); +void *hypre_AMECreate_dbl ( void ); +void *hypre_AMECreate_long_dbl ( void ); +HYPRE_Int hypre_AMEDestroy_flt ( void *esolver ); +HYPRE_Int hypre_AMEDestroy_dbl ( void *esolver ); +HYPRE_Int hypre_AMEDestroy_long_dbl ( void *esolver ); +HYPRE_Int hypre_AMEDiscrDivFreeComponent_flt ( void *esolver, hypre_ParVector *b ); +HYPRE_Int hypre_AMEDiscrDivFreeComponent_dbl ( void *esolver, hypre_ParVector *b ); +HYPRE_Int hypre_AMEDiscrDivFreeComponent_long_dbl ( void *esolver, hypre_ParVector *b ); +HYPRE_Int hypre_AMEGetEigenvalues_flt ( void *esolver, hypre_float **eigenvalues_ptr ); +HYPRE_Int hypre_AMEGetEigenvalues_dbl ( void *esolver, hypre_double **eigenvalues_ptr ); +HYPRE_Int hypre_AMEGetEigenvalues_long_dbl ( void *esolver, hypre_long_double **eigenvalues_ptr ); +HYPRE_Int hypre_AMEGetEigenvectors_flt ( void *esolver, HYPRE_ParVector **eigenvectors_ptr ); +HYPRE_Int hypre_AMEGetEigenvectors_dbl ( void *esolver, HYPRE_ParVector **eigenvectors_ptr ); +HYPRE_Int hypre_AMEGetEigenvectors_long_dbl ( void *esolver, HYPRE_ParVector **eigenvectors_ptr ); +void hypre_AMEMultiOperatorA_flt ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorA_dbl ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorA_long_dbl ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorB_flt ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorB_dbl ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorB_long_dbl ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorM_flt ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorM_dbl ( void *data, void *x, void *y ); +void hypre_AMEMultiOperatorM_long_dbl ( void *data, void *x, void *y ); +void hypre_AMEOperatorA_flt ( void *data, void *x, void *y ); +void hypre_AMEOperatorA_dbl ( void *data, void *x, void *y ); +void hypre_AMEOperatorA_long_dbl ( void *data, void *x, void *y ); +void hypre_AMEOperatorB_flt ( void *data, void *x, void *y ); +void hypre_AMEOperatorB_dbl ( void *data, void *x, void *y ); +void hypre_AMEOperatorB_long_dbl ( void *data, void *x, void *y ); +void hypre_AMEOperatorM_flt ( void *data, void *x, void *y ); +void hypre_AMEOperatorM_dbl ( void *data, void *x, void *y ); +void hypre_AMEOperatorM_long_dbl ( void *data, void *x, void *y ); +HYPRE_Int hypre_AMESetAMSSolver_flt ( void *esolver, void *ams_solver ); +HYPRE_Int hypre_AMESetAMSSolver_dbl ( void *esolver, void *ams_solver ); +HYPRE_Int hypre_AMESetAMSSolver_long_dbl ( void *esolver, void *ams_solver ); +HYPRE_Int hypre_AMESetBlockSize_flt ( void *esolver, HYPRE_Int block_size ); +HYPRE_Int hypre_AMESetBlockSize_dbl ( void *esolver, HYPRE_Int block_size ); +HYPRE_Int hypre_AMESetBlockSize_long_dbl ( void *esolver, HYPRE_Int block_size ); +HYPRE_Int hypre_AMESetMassMatrix_flt ( void *esolver, hypre_ParCSRMatrix *M ); +HYPRE_Int hypre_AMESetMassMatrix_dbl ( void *esolver, hypre_ParCSRMatrix *M ); +HYPRE_Int hypre_AMESetMassMatrix_long_dbl ( void *esolver, hypre_ParCSRMatrix *M ); +HYPRE_Int hypre_AMESetMaxIter_flt ( void *esolver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMESetMaxIter_dbl ( void *esolver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMESetMaxIter_long_dbl ( void *esolver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMESetMaxPCGIter_flt ( void *esolver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMESetMaxPCGIter_dbl ( void *esolver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMESetMaxPCGIter_long_dbl ( void *esolver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMESetPrintLevel_flt ( void *esolver, HYPRE_Int print_level ); +HYPRE_Int hypre_AMESetPrintLevel_dbl ( void *esolver, HYPRE_Int print_level ); +HYPRE_Int hypre_AMESetPrintLevel_long_dbl ( void *esolver, HYPRE_Int print_level ); +HYPRE_Int hypre_AMESetRTol_flt ( void *esolver, hypre_float tol ); +HYPRE_Int hypre_AMESetRTol_dbl ( void *esolver, hypre_double tol ); +HYPRE_Int hypre_AMESetRTol_long_dbl ( void *esolver, hypre_long_double tol ); +HYPRE_Int hypre_AMESetTol_flt ( void *esolver, hypre_float tol ); +HYPRE_Int hypre_AMESetTol_dbl ( void *esolver, hypre_double tol ); +HYPRE_Int hypre_AMESetTol_long_dbl ( void *esolver, hypre_long_double tol ); +HYPRE_Int hypre_AMESetup_flt ( void *esolver ); +HYPRE_Int hypre_AMESetup_dbl ( void *esolver ); +HYPRE_Int hypre_AMESetup_long_dbl ( void *esolver ); +HYPRE_Int hypre_AMESolve_flt ( void *esolver ); +HYPRE_Int hypre_AMESolve_dbl ( void *esolver ); +HYPRE_Int hypre_AMESolve_long_dbl ( void *esolver ); +void *hypre_AMGHybridCreate_flt ( void ); +void *hypre_AMGHybridCreate_dbl ( void ); +void *hypre_AMGHybridCreate_long_dbl ( void ); +HYPRE_Int hypre_AMGHybridDestroy_flt ( void *AMGhybrid_vdata ); +HYPRE_Int hypre_AMGHybridDestroy_dbl ( void *AMGhybrid_vdata ); +HYPRE_Int hypre_AMGHybridDestroy_long_dbl ( void *AMGhybrid_vdata ); +HYPRE_Int hypre_AMGHybridGetDSCGNumIterations_flt ( void *AMGhybrid_vdata, HYPRE_Int *dscg_num_its ); +HYPRE_Int hypre_AMGHybridGetDSCGNumIterations_dbl ( void *AMGhybrid_vdata, HYPRE_Int *dscg_num_its ); +HYPRE_Int hypre_AMGHybridGetDSCGNumIterations_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int *dscg_num_its ); +HYPRE_Int hypre_AMGHybridGetFinalRelativeResidualNorm_flt ( void *AMGhybrid_vdata, + hypre_float *final_rel_res_norm ); +HYPRE_Int hypre_AMGHybridGetFinalRelativeResidualNorm_dbl ( void *AMGhybrid_vdata, + hypre_double *final_rel_res_norm ); +HYPRE_Int hypre_AMGHybridGetFinalRelativeResidualNorm_long_dbl ( void *AMGhybrid_vdata, + hypre_long_double *final_rel_res_norm ); +HYPRE_Int hypre_AMGHybridGetNumIterations_flt ( void *AMGhybrid_vdata, HYPRE_Int *num_its ); +HYPRE_Int hypre_AMGHybridGetNumIterations_dbl ( void *AMGhybrid_vdata, HYPRE_Int *num_its ); +HYPRE_Int hypre_AMGHybridGetNumIterations_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int *num_its ); +HYPRE_Int hypre_AMGHybridGetPCGNumIterations_flt ( void *AMGhybrid_vdata, HYPRE_Int *pcg_num_its ); +HYPRE_Int hypre_AMGHybridGetPCGNumIterations_dbl ( void *AMGhybrid_vdata, HYPRE_Int *pcg_num_its ); +HYPRE_Int hypre_AMGHybridGetPCGNumIterations_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int *pcg_num_its ); +HYPRE_Int hypre_AMGHybridGetRecomputeResidual_flt ( void *AMGhybrid_vdata, + HYPRE_Int *recompute_residual ); +HYPRE_Int hypre_AMGHybridGetRecomputeResidual_dbl ( void *AMGhybrid_vdata, + HYPRE_Int *recompute_residual ); +HYPRE_Int hypre_AMGHybridGetRecomputeResidual_long_dbl ( void *AMGhybrid_vdata, + HYPRE_Int *recompute_residual ); +HYPRE_Int hypre_AMGHybridGetRecomputeResidualP_flt ( void *AMGhybrid_vdata, + HYPRE_Int *recompute_residual_p ); +HYPRE_Int hypre_AMGHybridGetRecomputeResidualP_dbl ( void *AMGhybrid_vdata, + HYPRE_Int *recompute_residual_p ); +HYPRE_Int hypre_AMGHybridGetRecomputeResidualP_long_dbl ( void *AMGhybrid_vdata, + HYPRE_Int *recompute_residual_p ); +HYPRE_Int hypre_AMGHybridGetSetupSolveTime_flt ( void *AMGhybrid_vdata, hypre_float *time ); +HYPRE_Int hypre_AMGHybridGetSetupSolveTime_dbl ( void *AMGhybrid_vdata, hypre_double *time ); +HYPRE_Int hypre_AMGHybridGetSetupSolveTime_long_dbl ( void *AMGhybrid_vdata, hypre_long_double *time ); +HYPRE_Int hypre_AMGHybridSetAbsoluteTol_flt ( void *AMGhybrid_vdata, hypre_float a_tol ); +HYPRE_Int hypre_AMGHybridSetAbsoluteTol_dbl ( void *AMGhybrid_vdata, hypre_double a_tol ); +HYPRE_Int hypre_AMGHybridSetAbsoluteTol_long_dbl ( void *AMGhybrid_vdata, hypre_long_double a_tol ); +HYPRE_Int hypre_AMGHybridSetAggInterpType_flt ( void *AMGhybrid_vdata, HYPRE_Int agg_interp_type ); +HYPRE_Int hypre_AMGHybridSetAggInterpType_dbl ( void *AMGhybrid_vdata, HYPRE_Int agg_interp_type ); +HYPRE_Int hypre_AMGHybridSetAggInterpType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int agg_interp_type ); +HYPRE_Int hypre_AMGHybridSetAggNumLevels_flt ( void *AMGhybrid_vdata, HYPRE_Int agg_num_levels ); +HYPRE_Int hypre_AMGHybridSetAggNumLevels_dbl ( void *AMGhybrid_vdata, HYPRE_Int agg_num_levels ); +HYPRE_Int hypre_AMGHybridSetAggNumLevels_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int agg_num_levels ); +HYPRE_Int hypre_AMGHybridSetCoarsenType_flt ( void *AMGhybrid_vdata, HYPRE_Int coarsen_type ); +HYPRE_Int hypre_AMGHybridSetCoarsenType_dbl ( void *AMGhybrid_vdata, HYPRE_Int coarsen_type ); +HYPRE_Int hypre_AMGHybridSetCoarsenType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int coarsen_type ); +HYPRE_Int hypre_AMGHybridSetConvergenceTol_flt ( void *AMGhybrid_vdata, hypre_float cf_tol ); +HYPRE_Int hypre_AMGHybridSetConvergenceTol_dbl ( void *AMGhybrid_vdata, hypre_double cf_tol ); +HYPRE_Int hypre_AMGHybridSetConvergenceTol_long_dbl ( void *AMGhybrid_vdata, hypre_long_double cf_tol ); +HYPRE_Int hypre_AMGHybridSetCycleNumSweeps_flt ( void *AMGhybrid_vdata, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int hypre_AMGHybridSetCycleNumSweeps_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int hypre_AMGHybridSetCycleNumSweeps_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int hypre_AMGHybridSetCycleRelaxType_flt ( void *AMGhybrid_vdata, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int hypre_AMGHybridSetCycleRelaxType_dbl ( void *AMGhybrid_vdata, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int hypre_AMGHybridSetCycleRelaxType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int hypre_AMGHybridSetCycleType_flt ( void *AMGhybrid_vdata, HYPRE_Int cycle_type ); +HYPRE_Int hypre_AMGHybridSetCycleType_dbl ( void *AMGhybrid_vdata, HYPRE_Int cycle_type ); +HYPRE_Int hypre_AMGHybridSetCycleType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int cycle_type ); +HYPRE_Int hypre_AMGHybridSetDofFunc_flt ( void *AMGhybrid_vdata, HYPRE_Int *dof_func ); +HYPRE_Int hypre_AMGHybridSetDofFunc_dbl ( void *AMGhybrid_vdata, HYPRE_Int *dof_func ); +HYPRE_Int hypre_AMGHybridSetDofFunc_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int *dof_func ); +HYPRE_Int hypre_AMGHybridSetDSCGMaxIter_flt ( void *AMGhybrid_vdata, HYPRE_Int dscg_max_its ); +HYPRE_Int hypre_AMGHybridSetDSCGMaxIter_dbl ( void *AMGhybrid_vdata, HYPRE_Int dscg_max_its ); +HYPRE_Int hypre_AMGHybridSetDSCGMaxIter_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int dscg_max_its ); +HYPRE_Int hypre_AMGHybridSetGridRelaxPoints_flt ( void *AMGhybrid_vdata, + HYPRE_Int **grid_relax_points ); +HYPRE_Int hypre_AMGHybridSetGridRelaxPoints_dbl ( void *AMGhybrid_vdata, + HYPRE_Int **grid_relax_points ); +HYPRE_Int hypre_AMGHybridSetGridRelaxPoints_long_dbl ( void *AMGhybrid_vdata, + HYPRE_Int **grid_relax_points ); +HYPRE_Int hypre_AMGHybridSetGridRelaxType_flt ( void *AMGhybrid_vdata, HYPRE_Int *grid_relax_type ); +HYPRE_Int hypre_AMGHybridSetGridRelaxType_dbl ( void *AMGhybrid_vdata, HYPRE_Int *grid_relax_type ); +HYPRE_Int hypre_AMGHybridSetGridRelaxType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int *grid_relax_type ); +HYPRE_Int hypre_AMGHybridSetInterpType_flt ( void *AMGhybrid_vdata, HYPRE_Int interp_type ); +HYPRE_Int hypre_AMGHybridSetInterpType_dbl ( void *AMGhybrid_vdata, HYPRE_Int interp_type ); +HYPRE_Int hypre_AMGHybridSetInterpType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int interp_type ); +HYPRE_Int hypre_AMGHybridSetKDim_flt ( void *AMGhybrid_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_AMGHybridSetKDim_dbl ( void *AMGhybrid_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_AMGHybridSetKDim_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int k_dim ); +HYPRE_Int hypre_AMGHybridSetKeepTranspose_flt ( void *AMGhybrid_vdata, HYPRE_Int keepT ); +HYPRE_Int hypre_AMGHybridSetKeepTranspose_dbl ( void *AMGhybrid_vdata, HYPRE_Int keepT ); +HYPRE_Int hypre_AMGHybridSetKeepTranspose_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int keepT ); +HYPRE_Int hypre_AMGHybridSetLevelOuterWt_flt ( void *AMGhybrid_vdata, hypre_float outer_wt, + HYPRE_Int level ); +HYPRE_Int hypre_AMGHybridSetLevelOuterWt_dbl ( void *AMGhybrid_vdata, hypre_double outer_wt, + HYPRE_Int level ); +HYPRE_Int hypre_AMGHybridSetLevelOuterWt_long_dbl ( void *AMGhybrid_vdata, hypre_long_double outer_wt, + HYPRE_Int level ); +HYPRE_Int hypre_AMGHybridSetLevelRelaxWt_flt ( void *AMGhybrid_vdata, hypre_float relax_wt, + HYPRE_Int level ); +HYPRE_Int hypre_AMGHybridSetLevelRelaxWt_dbl ( void *AMGhybrid_vdata, hypre_double relax_wt, + HYPRE_Int level ); +HYPRE_Int hypre_AMGHybridSetLevelRelaxWt_long_dbl ( void *AMGhybrid_vdata, hypre_long_double relax_wt, + HYPRE_Int level ); +HYPRE_Int hypre_AMGHybridSetLogging_flt ( void *AMGhybrid_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_AMGHybridSetLogging_dbl ( void *AMGhybrid_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_AMGHybridSetLogging_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_AMGHybridSetMaxCoarseSize_flt ( void *AMGhybrid_vdata, HYPRE_Int max_coarse_size ); +HYPRE_Int hypre_AMGHybridSetMaxCoarseSize_dbl ( void *AMGhybrid_vdata, HYPRE_Int max_coarse_size ); +HYPRE_Int hypre_AMGHybridSetMaxCoarseSize_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int max_coarse_size ); +HYPRE_Int hypre_AMGHybridSetMaxLevels_flt ( void *AMGhybrid_vdata, HYPRE_Int max_levels ); +HYPRE_Int hypre_AMGHybridSetMaxLevels_dbl ( void *AMGhybrid_vdata, HYPRE_Int max_levels ); +HYPRE_Int hypre_AMGHybridSetMaxLevels_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int max_levels ); +HYPRE_Int hypre_AMGHybridSetMaxRowSum_flt ( void *AMGhybrid_vdata, hypre_float max_row_sum ); +HYPRE_Int hypre_AMGHybridSetMaxRowSum_dbl ( void *AMGhybrid_vdata, hypre_double max_row_sum ); +HYPRE_Int hypre_AMGHybridSetMaxRowSum_long_dbl ( void *AMGhybrid_vdata, hypre_long_double max_row_sum ); +HYPRE_Int hypre_AMGHybridSetMeasureType_flt ( void *AMGhybrid_vdata, HYPRE_Int measure_type ); +HYPRE_Int hypre_AMGHybridSetMeasureType_dbl ( void *AMGhybrid_vdata, HYPRE_Int measure_type ); +HYPRE_Int hypre_AMGHybridSetMeasureType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int measure_type ); +HYPRE_Int hypre_AMGHybridSetMinCoarseSize_flt ( void *AMGhybrid_vdata, HYPRE_Int min_coarse_size ); +HYPRE_Int hypre_AMGHybridSetMinCoarseSize_dbl ( void *AMGhybrid_vdata, HYPRE_Int min_coarse_size ); +HYPRE_Int hypre_AMGHybridSetMinCoarseSize_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int min_coarse_size ); +HYPRE_Int hypre_AMGHybridSetNodal_flt ( void *AMGhybrid_vdata, HYPRE_Int nodal ); +HYPRE_Int hypre_AMGHybridSetNodal_dbl ( void *AMGhybrid_vdata, HYPRE_Int nodal ); +HYPRE_Int hypre_AMGHybridSetNodal_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int nodal ); +HYPRE_Int hypre_AMGHybridSetNonGalerkinTol_flt ( void *AMGhybrid_vdata, HYPRE_Int nongalerk_num_tol, + hypre_float *nongalerkin_tol ); +HYPRE_Int hypre_AMGHybridSetNonGalerkinTol_dbl ( void *AMGhybrid_vdata, HYPRE_Int nongalerk_num_tol, + hypre_double *nongalerkin_tol ); +HYPRE_Int hypre_AMGHybridSetNonGalerkinTol_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int nongalerk_num_tol, + hypre_long_double *nongalerkin_tol ); +HYPRE_Int hypre_AMGHybridSetNumFunctions_flt ( void *AMGhybrid_vdata, HYPRE_Int num_functions ); +HYPRE_Int hypre_AMGHybridSetNumFunctions_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_functions ); +HYPRE_Int hypre_AMGHybridSetNumFunctions_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_functions ); +HYPRE_Int hypre_AMGHybridSetNumGridSweeps_flt ( void *AMGhybrid_vdata, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int hypre_AMGHybridSetNumGridSweeps_dbl ( void *AMGhybrid_vdata, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int hypre_AMGHybridSetNumGridSweeps_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int hypre_AMGHybridSetNumPaths_flt ( void *AMGhybrid_vdata, HYPRE_Int num_paths ); +HYPRE_Int hypre_AMGHybridSetNumPaths_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_paths ); +HYPRE_Int hypre_AMGHybridSetNumPaths_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_paths ); +HYPRE_Int hypre_AMGHybridSetNumSweeps_flt ( void *AMGhybrid_vdata, HYPRE_Int num_sweeps ); +HYPRE_Int hypre_AMGHybridSetNumSweeps_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_sweeps ); +HYPRE_Int hypre_AMGHybridSetNumSweeps_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int num_sweeps ); +HYPRE_Int hypre_AMGHybridSetOmega_flt ( void *AMGhybrid_vdata, hypre_float *omega ); +HYPRE_Int hypre_AMGHybridSetOmega_dbl ( void *AMGhybrid_vdata, hypre_double *omega ); +HYPRE_Int hypre_AMGHybridSetOmega_long_dbl ( void *AMGhybrid_vdata, hypre_long_double *omega ); +HYPRE_Int hypre_AMGHybridSetOuterWt_flt ( void *AMGhybrid_vdata, hypre_float outer_wt ); +HYPRE_Int hypre_AMGHybridSetOuterWt_dbl ( void *AMGhybrid_vdata, hypre_double outer_wt ); +HYPRE_Int hypre_AMGHybridSetOuterWt_long_dbl ( void *AMGhybrid_vdata, hypre_long_double outer_wt ); +HYPRE_Int hypre_AMGHybridSetPCGMaxIter_flt ( void *AMGhybrid_vdata, HYPRE_Int pcg_max_its ); +HYPRE_Int hypre_AMGHybridSetPCGMaxIter_dbl ( void *AMGhybrid_vdata, HYPRE_Int pcg_max_its ); +HYPRE_Int hypre_AMGHybridSetPCGMaxIter_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int pcg_max_its ); +HYPRE_Int hypre_AMGHybridSetPMaxElmts_flt ( void *AMGhybrid_vdata, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_AMGHybridSetPMaxElmts_dbl ( void *AMGhybrid_vdata, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_AMGHybridSetPMaxElmts_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_AMGHybridSetPrecond_flt ( void *pcg_vdata, HYPRE_Int (*pcg_precond_solve )(void*, void*, + void*, void*), HYPRE_Int (*pcg_precond_setup )(void*, void*, void*, void*), void *pcg_precond ); +HYPRE_Int hypre_AMGHybridSetPrecond_dbl ( void *pcg_vdata, HYPRE_Int (*pcg_precond_solve )(void*, void*, + void*, void*), HYPRE_Int (*pcg_precond_setup )(void*, void*, void*, void*), void *pcg_precond ); +HYPRE_Int hypre_AMGHybridSetPrecond_long_dbl ( void *pcg_vdata, HYPRE_Int (*pcg_precond_solve )(void*, void*, + void*, void*), HYPRE_Int (*pcg_precond_setup )(void*, void*, void*, void*), void *pcg_precond ); +HYPRE_Int hypre_AMGHybridSetPrintLevel_flt ( void *AMGhybrid_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_AMGHybridSetPrintLevel_dbl ( void *AMGhybrid_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_AMGHybridSetPrintLevel_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_AMGHybridSetRecomputeResidual_flt ( void *AMGhybrid_vdata, + HYPRE_Int recompute_residual ); +HYPRE_Int hypre_AMGHybridSetRecomputeResidual_dbl ( void *AMGhybrid_vdata, + HYPRE_Int recompute_residual ); +HYPRE_Int hypre_AMGHybridSetRecomputeResidual_long_dbl ( void *AMGhybrid_vdata, + HYPRE_Int recompute_residual ); +HYPRE_Int hypre_AMGHybridSetRecomputeResidualP_flt ( void *AMGhybrid_vdata, + HYPRE_Int recompute_residual_p ); +HYPRE_Int hypre_AMGHybridSetRecomputeResidualP_dbl ( void *AMGhybrid_vdata, + HYPRE_Int recompute_residual_p ); +HYPRE_Int hypre_AMGHybridSetRecomputeResidualP_long_dbl ( void *AMGhybrid_vdata, + HYPRE_Int recompute_residual_p ); +HYPRE_Int hypre_AMGHybridSetRelaxOrder_flt ( void *AMGhybrid_vdata, HYPRE_Int relax_order ); +HYPRE_Int hypre_AMGHybridSetRelaxOrder_dbl ( void *AMGhybrid_vdata, HYPRE_Int relax_order ); +HYPRE_Int hypre_AMGHybridSetRelaxOrder_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int relax_order ); +HYPRE_Int hypre_AMGHybridSetRelaxType_flt ( void *AMGhybrid_vdata, HYPRE_Int relax_type ); +HYPRE_Int hypre_AMGHybridSetRelaxType_dbl ( void *AMGhybrid_vdata, HYPRE_Int relax_type ); +HYPRE_Int hypre_AMGHybridSetRelaxType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int relax_type ); +HYPRE_Int hypre_AMGHybridSetRelaxWeight_flt ( void *AMGhybrid_vdata, hypre_float *relax_weight ); +HYPRE_Int hypre_AMGHybridSetRelaxWeight_dbl ( void *AMGhybrid_vdata, hypre_double *relax_weight ); +HYPRE_Int hypre_AMGHybridSetRelaxWeight_long_dbl ( void *AMGhybrid_vdata, hypre_long_double *relax_weight ); +HYPRE_Int hypre_AMGHybridSetRelaxWt_flt ( void *AMGhybrid_vdata, hypre_float relax_wt ); +HYPRE_Int hypre_AMGHybridSetRelaxWt_dbl ( void *AMGhybrid_vdata, hypre_double relax_wt ); +HYPRE_Int hypre_AMGHybridSetRelaxWt_long_dbl ( void *AMGhybrid_vdata, hypre_long_double relax_wt ); +HYPRE_Int hypre_AMGHybridSetRelChange_flt ( void *AMGhybrid_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_AMGHybridSetRelChange_dbl ( void *AMGhybrid_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_AMGHybridSetRelChange_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int rel_change ); +HYPRE_Int hypre_AMGHybridSetSeqThreshold_flt ( void *AMGhybrid_vdata, HYPRE_Int seq_threshold ); +HYPRE_Int hypre_AMGHybridSetSeqThreshold_dbl ( void *AMGhybrid_vdata, HYPRE_Int seq_threshold ); +HYPRE_Int hypre_AMGHybridSetSeqThreshold_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int seq_threshold ); +HYPRE_Int hypre_AMGHybridSetSetupType_flt ( void *AMGhybrid_vdata, HYPRE_Int setup_type ); +HYPRE_Int hypre_AMGHybridSetSetupType_dbl ( void *AMGhybrid_vdata, HYPRE_Int setup_type ); +HYPRE_Int hypre_AMGHybridSetSetupType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int setup_type ); +HYPRE_Int hypre_AMGHybridSetSolverType_flt ( void *AMGhybrid_vdata, HYPRE_Int solver_type ); +HYPRE_Int hypre_AMGHybridSetSolverType_dbl ( void *AMGhybrid_vdata, HYPRE_Int solver_type ); +HYPRE_Int hypre_AMGHybridSetSolverType_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int solver_type ); +HYPRE_Int hypre_AMGHybridSetStopCrit_flt ( void *AMGhybrid_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_AMGHybridSetStopCrit_dbl ( void *AMGhybrid_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_AMGHybridSetStopCrit_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int stop_crit ); +HYPRE_Int hypre_AMGHybridSetStrongThreshold_flt ( void *AMGhybrid_vdata, hypre_float strong_threshold ); +HYPRE_Int hypre_AMGHybridSetStrongThreshold_dbl ( void *AMGhybrid_vdata, hypre_double strong_threshold ); +HYPRE_Int hypre_AMGHybridSetStrongThreshold_long_dbl ( void *AMGhybrid_vdata, hypre_long_double strong_threshold ); +HYPRE_Int hypre_AMGHybridSetTol_flt ( void *AMGhybrid_vdata, hypre_float tol ); +HYPRE_Int hypre_AMGHybridSetTol_dbl ( void *AMGhybrid_vdata, hypre_double tol ); +HYPRE_Int hypre_AMGHybridSetTol_long_dbl ( void *AMGhybrid_vdata, hypre_long_double tol ); +HYPRE_Int hypre_AMGHybridSetTruncFactor_flt ( void *AMGhybrid_vdata, hypre_float trunc_factor ); +HYPRE_Int hypre_AMGHybridSetTruncFactor_dbl ( void *AMGhybrid_vdata, hypre_double trunc_factor ); +HYPRE_Int hypre_AMGHybridSetTruncFactor_long_dbl ( void *AMGhybrid_vdata, hypre_long_double trunc_factor ); +HYPRE_Int hypre_AMGHybridSetTwoNorm_flt ( void *AMGhybrid_vdata, HYPRE_Int two_norm ); +HYPRE_Int hypre_AMGHybridSetTwoNorm_dbl ( void *AMGhybrid_vdata, HYPRE_Int two_norm ); +HYPRE_Int hypre_AMGHybridSetTwoNorm_long_dbl ( void *AMGhybrid_vdata, HYPRE_Int two_norm ); +HYPRE_Int hypre_AMGHybridSetup_flt ( void *AMGhybrid_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMGHybridSetup_dbl ( void *AMGhybrid_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMGHybridSetup_long_dbl ( void *AMGhybrid_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMGHybridSolve_flt ( void *AMGhybrid_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMGHybridSolve_dbl ( void *AMGhybrid_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMGHybridSolve_long_dbl ( void *AMGhybrid_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMSComputeGPi_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **GPi_ptr ); +HYPRE_Int hypre_AMSComputeGPi_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **GPi_ptr ); +HYPRE_Int hypre_AMSComputeGPi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **GPi_ptr ); +HYPRE_Int hypre_AMSComputePi_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_AMSComputePi_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_AMSComputePi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_AMSComputePixyz_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **Pix_ptr, + hypre_ParCSRMatrix **Piy_ptr, hypre_ParCSRMatrix **Piz_ptr ); +HYPRE_Int hypre_AMSComputePixyz_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **Pix_ptr, + hypre_ParCSRMatrix **Piy_ptr, hypre_ParCSRMatrix **Piz_ptr ); +HYPRE_Int hypre_AMSComputePixyz_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *G, hypre_ParVector *Gx, + hypre_ParVector *Gy, hypre_ParVector *Gz, HYPRE_Int dim, hypre_ParCSRMatrix **Pix_ptr, + hypre_ParCSRMatrix **Piy_ptr, hypre_ParCSRMatrix **Piz_ptr ); +HYPRE_Int hypre_AMSConstructDiscreteGradient_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *x_coord, + HYPRE_BigInt *edge_vertex, HYPRE_Int edge_orientation, hypre_ParCSRMatrix **G_ptr ); +HYPRE_Int hypre_AMSConstructDiscreteGradient_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *x_coord, + HYPRE_BigInt *edge_vertex, HYPRE_Int edge_orientation, hypre_ParCSRMatrix **G_ptr ); +HYPRE_Int hypre_AMSConstructDiscreteGradient_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *x_coord, + HYPRE_BigInt *edge_vertex, HYPRE_Int edge_orientation, hypre_ParCSRMatrix **G_ptr ); +void *hypre_AMSCreate_flt ( void ); +void *hypre_AMSCreate_dbl ( void ); +void *hypre_AMSCreate_long_dbl ( void ); +HYPRE_Int hypre_AMSDestroy_flt ( void *solver ); +HYPRE_Int hypre_AMSDestroy_dbl ( void *solver ); +HYPRE_Int hypre_AMSDestroy_long_dbl ( void *solver ); +HYPRE_Int hypre_AMSFEIDestroy_flt ( void *solver ); +HYPRE_Int hypre_AMSFEIDestroy_dbl ( void *solver ); +HYPRE_Int hypre_AMSFEIDestroy_long_dbl ( void *solver ); +HYPRE_Int hypre_AMSFEISetup_flt ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x, HYPRE_Int num_vert, HYPRE_Int num_local_vert, HYPRE_BigInt *vert_number, + hypre_float *vert_coord, HYPRE_Int num_edges, HYPRE_BigInt *edge_vertex ); +HYPRE_Int hypre_AMSFEISetup_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x, HYPRE_Int num_vert, HYPRE_Int num_local_vert, HYPRE_BigInt *vert_number, + hypre_double *vert_coord, HYPRE_Int num_edges, HYPRE_BigInt *edge_vertex ); +HYPRE_Int hypre_AMSFEISetup_long_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x, HYPRE_Int num_vert, HYPRE_Int num_local_vert, HYPRE_BigInt *vert_number, + hypre_long_double *vert_coord, HYPRE_Int num_edges, HYPRE_BigInt *edge_vertex ); +HYPRE_Int hypre_AMSGetFinalRelativeResidualNorm_flt ( void *solver, hypre_float *rel_resid_norm ); +HYPRE_Int hypre_AMSGetFinalRelativeResidualNorm_dbl ( void *solver, hypre_double *rel_resid_norm ); +HYPRE_Int hypre_AMSGetFinalRelativeResidualNorm_long_dbl ( void *solver, hypre_long_double *rel_resid_norm ); +HYPRE_Int hypre_AMSGetNumIterations_flt ( void *solver, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_AMSGetNumIterations_dbl ( void *solver, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_AMSGetNumIterations_long_dbl ( void *solver, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_AMSProjectOutGradients_flt ( void *solver, hypre_ParVector *x ); +HYPRE_Int hypre_AMSProjectOutGradients_dbl ( void *solver, hypre_ParVector *x ); +HYPRE_Int hypre_AMSProjectOutGradients_long_dbl ( void *solver, hypre_ParVector *x ); +HYPRE_Int hypre_AMSSetAlphaAMGCoarseRelaxType_flt ( void *solver, HYPRE_Int B_Pi_coarse_relax_type ); +HYPRE_Int hypre_AMSSetAlphaAMGCoarseRelaxType_dbl ( void *solver, HYPRE_Int B_Pi_coarse_relax_type ); +HYPRE_Int hypre_AMSSetAlphaAMGCoarseRelaxType_long_dbl ( void *solver, HYPRE_Int B_Pi_coarse_relax_type ); +HYPRE_Int hypre_AMSSetAlphaAMGOptions_flt ( void *solver, HYPRE_Int B_Pi_coarsen_type, + HYPRE_Int B_Pi_agg_levels, HYPRE_Int B_Pi_relax_type, hypre_float B_Pi_theta, + HYPRE_Int B_Pi_interp_type, HYPRE_Int B_Pi_Pmax ); +HYPRE_Int hypre_AMSSetAlphaAMGOptions_dbl ( void *solver, HYPRE_Int B_Pi_coarsen_type, + HYPRE_Int B_Pi_agg_levels, HYPRE_Int B_Pi_relax_type, hypre_double B_Pi_theta, + HYPRE_Int B_Pi_interp_type, HYPRE_Int B_Pi_Pmax ); +HYPRE_Int hypre_AMSSetAlphaAMGOptions_long_dbl ( void *solver, HYPRE_Int B_Pi_coarsen_type, + HYPRE_Int B_Pi_agg_levels, HYPRE_Int B_Pi_relax_type, hypre_long_double B_Pi_theta, + HYPRE_Int B_Pi_interp_type, HYPRE_Int B_Pi_Pmax ); +HYPRE_Int hypre_AMSSetAlphaPoissonMatrix_flt ( void *solver, hypre_ParCSRMatrix *A_Pi ); +HYPRE_Int hypre_AMSSetAlphaPoissonMatrix_dbl ( void *solver, hypre_ParCSRMatrix *A_Pi ); +HYPRE_Int hypre_AMSSetAlphaPoissonMatrix_long_dbl ( void *solver, hypre_ParCSRMatrix *A_Pi ); +HYPRE_Int hypre_AMSSetBetaAMGCoarseRelaxType_flt ( void *solver, HYPRE_Int B_G_coarse_relax_type ); +HYPRE_Int hypre_AMSSetBetaAMGCoarseRelaxType_dbl ( void *solver, HYPRE_Int B_G_coarse_relax_type ); +HYPRE_Int hypre_AMSSetBetaAMGCoarseRelaxType_long_dbl ( void *solver, HYPRE_Int B_G_coarse_relax_type ); +HYPRE_Int hypre_AMSSetBetaAMGOptions_flt ( void *solver, HYPRE_Int B_G_coarsen_type, + HYPRE_Int B_G_agg_levels, HYPRE_Int B_G_relax_type, hypre_float B_G_theta, HYPRE_Int B_G_interp_type, + HYPRE_Int B_G_Pmax ); +HYPRE_Int hypre_AMSSetBetaAMGOptions_dbl ( void *solver, HYPRE_Int B_G_coarsen_type, + HYPRE_Int B_G_agg_levels, HYPRE_Int B_G_relax_type, hypre_double B_G_theta, HYPRE_Int B_G_interp_type, + HYPRE_Int B_G_Pmax ); +HYPRE_Int hypre_AMSSetBetaAMGOptions_long_dbl ( void *solver, HYPRE_Int B_G_coarsen_type, + HYPRE_Int B_G_agg_levels, HYPRE_Int B_G_relax_type, hypre_long_double B_G_theta, HYPRE_Int B_G_interp_type, + HYPRE_Int B_G_Pmax ); +HYPRE_Int hypre_AMSSetBetaPoissonMatrix_flt ( void *solver, hypre_ParCSRMatrix *A_G ); +HYPRE_Int hypre_AMSSetBetaPoissonMatrix_dbl ( void *solver, hypre_ParCSRMatrix *A_G ); +HYPRE_Int hypre_AMSSetBetaPoissonMatrix_long_dbl ( void *solver, hypre_ParCSRMatrix *A_G ); +HYPRE_Int hypre_AMSSetChebySmoothingOptions_flt ( void *solver, HYPRE_Int A_cheby_order, + hypre_float A_cheby_fraction ); +HYPRE_Int hypre_AMSSetChebySmoothingOptions_dbl ( void *solver, HYPRE_Int A_cheby_order, + hypre_double A_cheby_fraction ); +HYPRE_Int hypre_AMSSetChebySmoothingOptions_long_dbl ( void *solver, HYPRE_Int A_cheby_order, + hypre_long_double A_cheby_fraction ); +HYPRE_Int hypre_AMSSetCoordinateVectors_flt ( void *solver, hypre_ParVector *x, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_AMSSetCoordinateVectors_dbl ( void *solver, hypre_ParVector *x, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_AMSSetCoordinateVectors_long_dbl ( void *solver, hypre_ParVector *x, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_AMSSetCycleType_flt ( void *solver, HYPRE_Int cycle_type ); +HYPRE_Int hypre_AMSSetCycleType_dbl ( void *solver, HYPRE_Int cycle_type ); +HYPRE_Int hypre_AMSSetCycleType_long_dbl ( void *solver, HYPRE_Int cycle_type ); +HYPRE_Int hypre_AMSSetDimension_flt ( void *solver, HYPRE_Int dim ); +HYPRE_Int hypre_AMSSetDimension_dbl ( void *solver, HYPRE_Int dim ); +HYPRE_Int hypre_AMSSetDimension_long_dbl ( void *solver, HYPRE_Int dim ); +HYPRE_Int hypre_AMSSetDiscreteGradient_flt ( void *solver, hypre_ParCSRMatrix *G ); +HYPRE_Int hypre_AMSSetDiscreteGradient_dbl ( void *solver, hypre_ParCSRMatrix *G ); +HYPRE_Int hypre_AMSSetDiscreteGradient_long_dbl ( void *solver, hypre_ParCSRMatrix *G ); +HYPRE_Int hypre_AMSSetEdgeConstantVectors_flt ( void *solver, hypre_ParVector *Gx, hypre_ParVector *Gy, + hypre_ParVector *Gz ); +HYPRE_Int hypre_AMSSetEdgeConstantVectors_dbl ( void *solver, hypre_ParVector *Gx, hypre_ParVector *Gy, + hypre_ParVector *Gz ); +HYPRE_Int hypre_AMSSetEdgeConstantVectors_long_dbl ( void *solver, hypre_ParVector *Gx, hypre_ParVector *Gy, + hypre_ParVector *Gz ); +HYPRE_Int hypre_AMSSetInteriorNodes_flt ( void *solver, hypre_ParVector *interior_nodes ); +HYPRE_Int hypre_AMSSetInteriorNodes_dbl ( void *solver, hypre_ParVector *interior_nodes ); +HYPRE_Int hypre_AMSSetInteriorNodes_long_dbl ( void *solver, hypre_ParVector *interior_nodes ); +HYPRE_Int hypre_AMSSetInterpolations_flt ( void *solver, hypre_ParCSRMatrix *Pi, + hypre_ParCSRMatrix *Pix, hypre_ParCSRMatrix *Piy, hypre_ParCSRMatrix *Piz ); +HYPRE_Int hypre_AMSSetInterpolations_dbl ( void *solver, hypre_ParCSRMatrix *Pi, + hypre_ParCSRMatrix *Pix, hypre_ParCSRMatrix *Piy, hypre_ParCSRMatrix *Piz ); +HYPRE_Int hypre_AMSSetInterpolations_long_dbl ( void *solver, hypre_ParCSRMatrix *Pi, + hypre_ParCSRMatrix *Pix, hypre_ParCSRMatrix *Piy, hypre_ParCSRMatrix *Piz ); +HYPRE_Int hypre_AMSSetMaxIter_flt ( void *solver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMSSetMaxIter_dbl ( void *solver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMSSetMaxIter_long_dbl ( void *solver, HYPRE_Int maxit ); +HYPRE_Int hypre_AMSSetPrintLevel_flt ( void *solver, HYPRE_Int print_level ); +HYPRE_Int hypre_AMSSetPrintLevel_dbl ( void *solver, HYPRE_Int print_level ); +HYPRE_Int hypre_AMSSetPrintLevel_long_dbl ( void *solver, HYPRE_Int print_level ); +HYPRE_Int hypre_AMSSetProjectionFrequency_flt ( void *solver, HYPRE_Int projection_frequency ); +HYPRE_Int hypre_AMSSetProjectionFrequency_dbl ( void *solver, HYPRE_Int projection_frequency ); +HYPRE_Int hypre_AMSSetProjectionFrequency_long_dbl ( void *solver, HYPRE_Int projection_frequency ); +HYPRE_Int hypre_AMSSetSmoothingOptions_flt ( void *solver, HYPRE_Int A_relax_type, + HYPRE_Int A_relax_times, hypre_float A_relax_weight, hypre_float A_omega ); +HYPRE_Int hypre_AMSSetSmoothingOptions_dbl ( void *solver, HYPRE_Int A_relax_type, + HYPRE_Int A_relax_times, hypre_double A_relax_weight, hypre_double A_omega ); +HYPRE_Int hypre_AMSSetSmoothingOptions_long_dbl ( void *solver, HYPRE_Int A_relax_type, + HYPRE_Int A_relax_times, hypre_long_double A_relax_weight, hypre_long_double A_omega ); +HYPRE_Int hypre_AMSSetTol_flt ( void *solver, hypre_float tol ); +HYPRE_Int hypre_AMSSetTol_dbl ( void *solver, hypre_double tol ); +HYPRE_Int hypre_AMSSetTol_long_dbl ( void *solver, hypre_long_double tol ); +HYPRE_Int hypre_AMSSetup_flt ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMSSetup_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMSSetup_long_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMSSolve_flt ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMSSolve_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_AMSSolve_long_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGBlockSolve_flt ( void *B, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGBlockSolve_dbl ( void *B, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGBlockSolve_long_dbl ( void *B, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_ParCSRComputeL1Norms_flt ( hypre_ParCSRMatrix *A, HYPRE_Int option, + HYPRE_Int *cf_marker, hypre_float **l1_norm_ptr ); +HYPRE_Int hypre_ParCSRComputeL1Norms_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int option, + HYPRE_Int *cf_marker, hypre_double **l1_norm_ptr ); +HYPRE_Int hypre_ParCSRComputeL1Norms_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int option, + HYPRE_Int *cf_marker, hypre_long_double **l1_norm_ptr ); +HYPRE_Int hypre_ParCSRComputeL1NormsThreads_flt ( hypre_ParCSRMatrix *A, HYPRE_Int option, + HYPRE_Int num_threads, HYPRE_Int *cf_marker, hypre_float **l1_norm_ptr ); +HYPRE_Int hypre_ParCSRComputeL1NormsThreads_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int option, + HYPRE_Int num_threads, HYPRE_Int *cf_marker, hypre_double **l1_norm_ptr ); +HYPRE_Int hypre_ParCSRComputeL1NormsThreads_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int option, + HYPRE_Int num_threads, HYPRE_Int *cf_marker, hypre_long_double **l1_norm_ptr ); +HYPRE_Int hypre_ParCSRMatrixFixZeroRows_flt ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixFixZeroRows_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixFixZeroRows_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixSetDiagRows_flt ( hypre_ParCSRMatrix *A, hypre_float d ); +HYPRE_Int hypre_ParCSRMatrixSetDiagRows_dbl ( hypre_ParCSRMatrix *A, hypre_double d ); +HYPRE_Int hypre_ParCSRMatrixSetDiagRows_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double d ); +HYPRE_Int hypre_ParCSRRelax_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_float *l1_norms, hypre_float relax_weight, hypre_float omega, + hypre_float max_eig_est, hypre_float min_eig_est, HYPRE_Int cheby_order, hypre_float cheby_fraction, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *z ); +HYPRE_Int hypre_ParCSRRelax_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_double *l1_norms, hypre_double relax_weight, hypre_double omega, + hypre_double max_eig_est, hypre_double min_eig_est, HYPRE_Int cheby_order, hypre_double cheby_fraction, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *z ); +HYPRE_Int hypre_ParCSRRelax_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_long_double *l1_norms, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double max_eig_est, hypre_long_double min_eig_est, HYPRE_Int cheby_order, hypre_long_double cheby_fraction, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *z ); +HYPRE_Int hypre_ParCSRSubspacePrec_flt ( hypre_ParCSRMatrix *A0, HYPRE_Int A0_relax_type, + HYPRE_Int A0_relax_times, hypre_float *A0_l1_norms, hypre_float A0_relax_weight, hypre_float A0_omega, + hypre_float A0_max_eig_est, hypre_float A0_min_eig_est, HYPRE_Int A0_cheby_order, + hypre_float A0_cheby_fraction, hypre_ParCSRMatrix **A, HYPRE_Solver *B, HYPRE_PtrToSolverFcn *HB, + hypre_ParCSRMatrix **P, hypre_ParVector **r, hypre_ParVector **g, hypre_ParVector *x, + hypre_ParVector *y, hypre_ParVector *r0, hypre_ParVector *g0, char *cycle, hypre_ParVector *z ); +HYPRE_Int hypre_ParCSRSubspacePrec_dbl ( hypre_ParCSRMatrix *A0, HYPRE_Int A0_relax_type, + HYPRE_Int A0_relax_times, hypre_double *A0_l1_norms, hypre_double A0_relax_weight, hypre_double A0_omega, + hypre_double A0_max_eig_est, hypre_double A0_min_eig_est, HYPRE_Int A0_cheby_order, + hypre_double A0_cheby_fraction, hypre_ParCSRMatrix **A, HYPRE_Solver *B, HYPRE_PtrToSolverFcn *HB, + hypre_ParCSRMatrix **P, hypre_ParVector **r, hypre_ParVector **g, hypre_ParVector *x, + hypre_ParVector *y, hypre_ParVector *r0, hypre_ParVector *g0, char *cycle, hypre_ParVector *z ); +HYPRE_Int hypre_ParCSRSubspacePrec_long_dbl ( hypre_ParCSRMatrix *A0, HYPRE_Int A0_relax_type, + HYPRE_Int A0_relax_times, hypre_long_double *A0_l1_norms, hypre_long_double A0_relax_weight, hypre_long_double A0_omega, + hypre_long_double A0_max_eig_est, hypre_long_double A0_min_eig_est, HYPRE_Int A0_cheby_order, + hypre_long_double A0_cheby_fraction, hypre_ParCSRMatrix **A, HYPRE_Solver *B, HYPRE_PtrToSolverFcn *HB, + hypre_ParCSRMatrix **P, hypre_ParVector **r, hypre_ParVector **g, hypre_ParVector *x, + hypre_ParVector *y, hypre_ParVector *r0, hypre_ParVector *g0, char *cycle, hypre_ParVector *z ); +HYPRE_Int hypre_ParVectorBlockGather_flt ( hypre_ParVector *x, hypre_ParVector *x_ [3 ], + HYPRE_Int dim ); +HYPRE_Int hypre_ParVectorBlockGather_dbl ( hypre_ParVector *x, hypre_ParVector *x_ [3 ], + HYPRE_Int dim ); +HYPRE_Int hypre_ParVectorBlockGather_long_dbl ( hypre_ParVector *x, hypre_ParVector *x_ [3 ], + HYPRE_Int dim ); +HYPRE_Int hypre_ParVectorBlockSplit_flt ( hypre_ParVector *x, hypre_ParVector *x_ [3 ], HYPRE_Int dim ); +HYPRE_Int hypre_ParVectorBlockSplit_dbl ( hypre_ParVector *x, hypre_ParVector *x_ [3 ], HYPRE_Int dim ); +HYPRE_Int hypre_ParVectorBlockSplit_long_dbl ( hypre_ParVector *x, hypre_ParVector *x_ [3 ], HYPRE_Int dim ); +hypre_ParVector *hypre_ParVectorInDomainOf_flt ( hypre_ParCSRMatrix *A ); +hypre_ParVector *hypre_ParVectorInDomainOf_dbl ( hypre_ParCSRMatrix *A ); +hypre_ParVector *hypre_ParVectorInDomainOf_long_dbl ( hypre_ParCSRMatrix *A ); +hypre_ParVector *hypre_ParVectorInRangeOf_flt ( hypre_ParCSRMatrix *A ); +hypre_ParVector *hypre_ParVectorInRangeOf_dbl ( hypre_ParCSRMatrix *A ); +hypre_ParVector *hypre_ParVectorInRangeOf_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_alt_insert_new_nodes_flt ( hypre_ParCSRCommPkg *comm_pkg, + hypre_ParCSRCommPkg *extend_comm_pkg, HYPRE_Int *IN_marker, HYPRE_Int full_off_procNodes, + HYPRE_Int *OUT_marker ); +HYPRE_Int hypre_alt_insert_new_nodes_dbl ( hypre_ParCSRCommPkg *comm_pkg, + hypre_ParCSRCommPkg *extend_comm_pkg, HYPRE_Int *IN_marker, HYPRE_Int full_off_procNodes, + HYPRE_Int *OUT_marker ); +HYPRE_Int hypre_alt_insert_new_nodes_long_dbl ( hypre_ParCSRCommPkg *comm_pkg, + hypre_ParCSRCommPkg *extend_comm_pkg, HYPRE_Int *IN_marker, HYPRE_Int full_off_procNodes, + HYPRE_Int *OUT_marker ); +HYPRE_Int hypre_big_insert_new_nodes_flt ( hypre_ParCSRCommPkg *comm_pkg, + hypre_ParCSRCommPkg *extend_comm_pkg, HYPRE_Int *IN_marker, HYPRE_Int full_off_procNodes, + HYPRE_BigInt offset, HYPRE_BigInt *OUT_marker ); +HYPRE_Int hypre_big_insert_new_nodes_dbl ( hypre_ParCSRCommPkg *comm_pkg, + hypre_ParCSRCommPkg *extend_comm_pkg, HYPRE_Int *IN_marker, HYPRE_Int full_off_procNodes, + HYPRE_BigInt offset, HYPRE_BigInt *OUT_marker ); +HYPRE_Int hypre_big_insert_new_nodes_long_dbl ( hypre_ParCSRCommPkg *comm_pkg, + hypre_ParCSRCommPkg *extend_comm_pkg, HYPRE_Int *IN_marker, HYPRE_Int full_off_procNodes, + HYPRE_BigInt offset, HYPRE_BigInt *OUT_marker ); +void hypre_build_interp_colmap_flt (hypre_ParCSRMatrix *P, HYPRE_Int full_off_procNodes, + HYPRE_Int *tmp_CF_marker_offd, HYPRE_BigInt *fine_to_coarse_offd); +void hypre_build_interp_colmap_dbl (hypre_ParCSRMatrix *P, HYPRE_Int full_off_procNodes, + HYPRE_Int *tmp_CF_marker_offd, HYPRE_BigInt *fine_to_coarse_offd); +void hypre_build_interp_colmap_long_dbl (hypre_ParCSRMatrix *P, HYPRE_Int full_off_procNodes, + HYPRE_Int *tmp_CF_marker_offd, HYPRE_BigInt *fine_to_coarse_offd); +HYPRE_Int hypre_exchange_interp_data_flt ( HYPRE_Int **CF_marker_offd, HYPRE_Int **dof_func_offd, + hypre_CSRMatrix **A_ext, HYPRE_Int *full_off_procNodes, hypre_CSRMatrix **Sop, + hypre_ParCSRCommPkg **extend_comm_pkg, hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int skip_fine_or_same_sign); +HYPRE_Int hypre_exchange_interp_data_dbl ( HYPRE_Int **CF_marker_offd, HYPRE_Int **dof_func_offd, + hypre_CSRMatrix **A_ext, HYPRE_Int *full_off_procNodes, hypre_CSRMatrix **Sop, + hypre_ParCSRCommPkg **extend_comm_pkg, hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int skip_fine_or_same_sign); +HYPRE_Int hypre_exchange_interp_data_long_dbl ( HYPRE_Int **CF_marker_offd, HYPRE_Int **dof_func_offd, + hypre_CSRMatrix **A_ext, HYPRE_Int *full_off_procNodes, hypre_CSRMatrix **Sop, + hypre_ParCSRCommPkg **extend_comm_pkg, hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int skip_fine_or_same_sign); +HYPRE_Int hypre_exchange_marker_flt (hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int *IN_marker, + HYPRE_Int *OUT_marker); +HYPRE_Int hypre_exchange_marker_dbl (hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int *IN_marker, + HYPRE_Int *OUT_marker); +HYPRE_Int hypre_exchange_marker_long_dbl (hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int *IN_marker, + HYPRE_Int *OUT_marker); +HYPRE_Int hypre_index_of_minimum_flt ( HYPRE_BigInt *data, HYPRE_Int n ); +HYPRE_Int hypre_index_of_minimum_dbl ( HYPRE_BigInt *data, HYPRE_Int n ); +HYPRE_Int hypre_index_of_minimum_long_dbl ( HYPRE_BigInt *data, HYPRE_Int n ); +void hypre_initialize_vecs_flt ( HYPRE_Int diag_n, HYPRE_Int offd_n, HYPRE_Int *diag_ftc, + HYPRE_BigInt *offd_ftc, HYPRE_Int *diag_pm, HYPRE_Int *offd_pm, HYPRE_Int *tmp_CF ); +void hypre_initialize_vecs_dbl ( HYPRE_Int diag_n, HYPRE_Int offd_n, HYPRE_Int *diag_ftc, + HYPRE_BigInt *offd_ftc, HYPRE_Int *diag_pm, HYPRE_Int *offd_pm, HYPRE_Int *tmp_CF ); +void hypre_initialize_vecs_long_dbl ( HYPRE_Int diag_n, HYPRE_Int offd_n, HYPRE_Int *diag_ftc, + HYPRE_BigInt *offd_ftc, HYPRE_Int *diag_pm, HYPRE_Int *offd_pm, HYPRE_Int *tmp_CF ); +HYPRE_Int hypre_ssort_flt ( HYPRE_BigInt *data, HYPRE_Int n ); +HYPRE_Int hypre_ssort_dbl ( HYPRE_BigInt *data, HYPRE_Int n ); +HYPRE_Int hypre_ssort_long_dbl ( HYPRE_BigInt *data, HYPRE_Int n ); +void hypre_swap_int_flt ( HYPRE_BigInt *data, HYPRE_Int a, HYPRE_Int b ); +void hypre_swap_int_dbl ( HYPRE_BigInt *data, HYPRE_Int a, HYPRE_Int b ); +void hypre_swap_int_long_dbl ( HYPRE_BigInt *data, HYPRE_Int a, HYPRE_Int b ); +void *hypre_BlockTridiagCreate_flt ( void ); +void *hypre_BlockTridiagCreate_dbl ( void ); +void *hypre_BlockTridiagCreate_long_dbl ( void ); +HYPRE_Int hypre_BlockTridiagDestroy_flt ( void *data ); +HYPRE_Int hypre_BlockTridiagDestroy_dbl ( void *data ); +HYPRE_Int hypre_BlockTridiagDestroy_long_dbl ( void *data ); +HYPRE_Int hypre_BlockTridiagSetAMGNumSweeps_flt ( void *data, HYPRE_Int nsweeps ); +HYPRE_Int hypre_BlockTridiagSetAMGNumSweeps_dbl ( void *data, HYPRE_Int nsweeps ); +HYPRE_Int hypre_BlockTridiagSetAMGNumSweeps_long_dbl ( void *data, HYPRE_Int nsweeps ); +HYPRE_Int hypre_BlockTridiagSetAMGRelaxType_flt ( void *data, HYPRE_Int relax_type ); +HYPRE_Int hypre_BlockTridiagSetAMGRelaxType_dbl ( void *data, HYPRE_Int relax_type ); +HYPRE_Int hypre_BlockTridiagSetAMGRelaxType_long_dbl ( void *data, HYPRE_Int relax_type ); +HYPRE_Int hypre_BlockTridiagSetAMGStrengthThreshold_flt ( void *data, hypre_float thresh ); +HYPRE_Int hypre_BlockTridiagSetAMGStrengthThreshold_dbl ( void *data, hypre_double thresh ); +HYPRE_Int hypre_BlockTridiagSetAMGStrengthThreshold_long_dbl ( void *data, hypre_long_double thresh ); +HYPRE_Int hypre_BlockTridiagSetIndexSet_flt ( void *data, HYPRE_Int n, HYPRE_Int *inds ); +HYPRE_Int hypre_BlockTridiagSetIndexSet_dbl ( void *data, HYPRE_Int n, HYPRE_Int *inds ); +HYPRE_Int hypre_BlockTridiagSetIndexSet_long_dbl ( void *data, HYPRE_Int n, HYPRE_Int *inds ); +HYPRE_Int hypre_BlockTridiagSetPrintLevel_flt ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_BlockTridiagSetPrintLevel_dbl ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_BlockTridiagSetPrintLevel_long_dbl ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_BlockTridiagSetup_flt ( void *data, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BlockTridiagSetup_dbl ( void *data, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BlockTridiagSetup_long_dbl ( void *data, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BlockTridiagSolve_flt ( void *data, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BlockTridiagSolve_dbl ( void *data, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BlockTridiagSolve_long_dbl ( void *data, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_GenerateSubComm_flt ( MPI_Comm comm, HYPRE_Int participate, MPI_Comm *new_comm_ptr ); +HYPRE_Int hypre_GenerateSubComm_dbl ( MPI_Comm comm, HYPRE_Int participate, MPI_Comm *new_comm_ptr ); +HYPRE_Int hypre_GenerateSubComm_long_dbl ( MPI_Comm comm, HYPRE_Int participate, MPI_Comm *new_comm_ptr ); +void hypre_merge_lists_flt ( HYPRE_Int *list1, HYPRE_Int *list2, hypre_int *np1, + hypre_MPI_Datatype *dptr ); +void hypre_merge_lists_dbl ( HYPRE_Int *list1, HYPRE_Int *list2, hypre_int *np1, + hypre_MPI_Datatype *dptr ); +void hypre_merge_lists_long_dbl ( HYPRE_Int *list1, HYPRE_Int *list2, hypre_int *np1, + hypre_MPI_Datatype *dptr ); +HYPRE_Int hypre_seqAMGCycle_flt ( hypre_ParAMGData *amg_data, HYPRE_Int p_level, + hypre_ParVector **Par_F_array, hypre_ParVector **Par_U_array ); +HYPRE_Int hypre_seqAMGCycle_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int p_level, + hypre_ParVector **Par_F_array, hypre_ParVector **Par_U_array ); +HYPRE_Int hypre_seqAMGCycle_long_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int p_level, + hypre_ParVector **Par_F_array, hypre_ParVector **Par_U_array ); +HYPRE_Int hypre_seqAMGSetup_flt ( hypre_ParAMGData *amg_data, HYPRE_Int p_level, + HYPRE_Int coarse_threshold ); +HYPRE_Int hypre_seqAMGSetup_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int p_level, + HYPRE_Int coarse_threshold ); +HYPRE_Int hypre_seqAMGSetup_long_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int p_level, + HYPRE_Int coarse_threshold ); +HYPRE_Int HYPRE_ADSCreate_flt ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ADSCreate_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ADSCreate_long_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ADSDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ADSDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ADSDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ADSGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *rel_resid_norm ); +HYPRE_Int HYPRE_ADSGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *rel_resid_norm ); +HYPRE_Int HYPRE_ADSGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *rel_resid_norm ); +HYPRE_Int HYPRE_ADSGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ADSGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ADSGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ADSSetAMGOptions_flt ( HYPRE_Solver solver, HYPRE_Int coarsen_type, + HYPRE_Int agg_levels, HYPRE_Int relax_type, hypre_float strength_threshold, HYPRE_Int interp_type, + HYPRE_Int Pmax ); +HYPRE_Int HYPRE_ADSSetAMGOptions_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_type, + HYPRE_Int agg_levels, HYPRE_Int relax_type, hypre_double strength_threshold, HYPRE_Int interp_type, + HYPRE_Int Pmax ); +HYPRE_Int HYPRE_ADSSetAMGOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_type, + HYPRE_Int agg_levels, HYPRE_Int relax_type, hypre_long_double strength_threshold, HYPRE_Int interp_type, + HYPRE_Int Pmax ); +HYPRE_Int HYPRE_ADSSetAMSOptions_flt ( HYPRE_Solver solver, HYPRE_Int cycle_type, + HYPRE_Int coarsen_type, HYPRE_Int agg_levels, HYPRE_Int relax_type, hypre_float strength_threshold, + HYPRE_Int interp_type, HYPRE_Int Pmax ); +HYPRE_Int HYPRE_ADSSetAMSOptions_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type, + HYPRE_Int coarsen_type, HYPRE_Int agg_levels, HYPRE_Int relax_type, hypre_double strength_threshold, + HYPRE_Int interp_type, HYPRE_Int Pmax ); +HYPRE_Int HYPRE_ADSSetAMSOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type, + HYPRE_Int coarsen_type, HYPRE_Int agg_levels, HYPRE_Int relax_type, hypre_long_double strength_threshold, + HYPRE_Int interp_type, HYPRE_Int Pmax ); +HYPRE_Int HYPRE_ADSSetChebySmoothingOptions_flt ( HYPRE_Solver solver, HYPRE_Int cheby_order, + hypre_float cheby_fraction ); +HYPRE_Int HYPRE_ADSSetChebySmoothingOptions_dbl ( HYPRE_Solver solver, HYPRE_Int cheby_order, + hypre_double cheby_fraction ); +HYPRE_Int HYPRE_ADSSetChebySmoothingOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int cheby_order, + hypre_long_double cheby_fraction ); +HYPRE_Int HYPRE_ADSSetCoordinateVectors_flt ( HYPRE_Solver solver, HYPRE_ParVector x, HYPRE_ParVector y, + HYPRE_ParVector z ); +HYPRE_Int HYPRE_ADSSetCoordinateVectors_dbl ( HYPRE_Solver solver, HYPRE_ParVector x, HYPRE_ParVector y, + HYPRE_ParVector z ); +HYPRE_Int HYPRE_ADSSetCoordinateVectors_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector x, HYPRE_ParVector y, + HYPRE_ParVector z ); +HYPRE_Int HYPRE_ADSSetCycleType_flt ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_ADSSetCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_ADSSetCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_ADSSetDiscreteCurl_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix C ); +HYPRE_Int HYPRE_ADSSetDiscreteCurl_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix C ); +HYPRE_Int HYPRE_ADSSetDiscreteCurl_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix C ); +HYPRE_Int HYPRE_ADSSetDiscreteGradient_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix G ); +HYPRE_Int HYPRE_ADSSetDiscreteGradient_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix G ); +HYPRE_Int HYPRE_ADSSetDiscreteGradient_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix G ); +HYPRE_Int HYPRE_ADSSetInterpolations_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix RT_Pi, + HYPRE_ParCSRMatrix RT_Pix, HYPRE_ParCSRMatrix RT_Piy, HYPRE_ParCSRMatrix RT_Piz, + HYPRE_ParCSRMatrix ND_Pi, HYPRE_ParCSRMatrix ND_Pix, HYPRE_ParCSRMatrix ND_Piy, + HYPRE_ParCSRMatrix ND_Piz ); +HYPRE_Int HYPRE_ADSSetInterpolations_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix RT_Pi, + HYPRE_ParCSRMatrix RT_Pix, HYPRE_ParCSRMatrix RT_Piy, HYPRE_ParCSRMatrix RT_Piz, + HYPRE_ParCSRMatrix ND_Pi, HYPRE_ParCSRMatrix ND_Pix, HYPRE_ParCSRMatrix ND_Piy, + HYPRE_ParCSRMatrix ND_Piz ); +HYPRE_Int HYPRE_ADSSetInterpolations_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix RT_Pi, + HYPRE_ParCSRMatrix RT_Pix, HYPRE_ParCSRMatrix RT_Piy, HYPRE_ParCSRMatrix RT_Piz, + HYPRE_ParCSRMatrix ND_Pi, HYPRE_ParCSRMatrix ND_Pix, HYPRE_ParCSRMatrix ND_Piy, + HYPRE_ParCSRMatrix ND_Piz ); +HYPRE_Int HYPRE_ADSSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_ADSSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_ADSSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_ADSSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ADSSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ADSSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ADSSetSmoothingOptions_flt ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_float relax_weight, hypre_float omega ); +HYPRE_Int HYPRE_ADSSetSmoothingOptions_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_double relax_weight, hypre_double omega ); +HYPRE_Int HYPRE_ADSSetSmoothingOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_long_double relax_weight, hypre_long_double omega ); +HYPRE_Int HYPRE_ADSSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ADSSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ADSSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ADSSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ADSSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ADSSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ADSSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ADSSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ADSSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMECreate_flt ( HYPRE_Solver *esolver ); +HYPRE_Int HYPRE_AMECreate_dbl ( HYPRE_Solver *esolver ); +HYPRE_Int HYPRE_AMECreate_long_dbl ( HYPRE_Solver *esolver ); +HYPRE_Int HYPRE_AMEDestroy_flt ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMEDestroy_dbl ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMEDestroy_long_dbl ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMEGetEigenvalues_flt ( HYPRE_Solver esolver, hypre_float **eigenvalues ); +HYPRE_Int HYPRE_AMEGetEigenvalues_dbl ( HYPRE_Solver esolver, hypre_double **eigenvalues ); +HYPRE_Int HYPRE_AMEGetEigenvalues_long_dbl ( HYPRE_Solver esolver, hypre_long_double **eigenvalues ); +HYPRE_Int HYPRE_AMEGetEigenvectors_flt ( HYPRE_Solver esolver, HYPRE_ParVector **eigenvectors ); +HYPRE_Int HYPRE_AMEGetEigenvectors_dbl ( HYPRE_Solver esolver, HYPRE_ParVector **eigenvectors ); +HYPRE_Int HYPRE_AMEGetEigenvectors_long_dbl ( HYPRE_Solver esolver, HYPRE_ParVector **eigenvectors ); +HYPRE_Int HYPRE_AMESetAMSSolver_flt ( HYPRE_Solver esolver, HYPRE_Solver ams_solver ); +HYPRE_Int HYPRE_AMESetAMSSolver_dbl ( HYPRE_Solver esolver, HYPRE_Solver ams_solver ); +HYPRE_Int HYPRE_AMESetAMSSolver_long_dbl ( HYPRE_Solver esolver, HYPRE_Solver ams_solver ); +HYPRE_Int HYPRE_AMESetBlockSize_flt ( HYPRE_Solver esolver, HYPRE_Int block_size ); +HYPRE_Int HYPRE_AMESetBlockSize_dbl ( HYPRE_Solver esolver, HYPRE_Int block_size ); +HYPRE_Int HYPRE_AMESetBlockSize_long_dbl ( HYPRE_Solver esolver, HYPRE_Int block_size ); +HYPRE_Int HYPRE_AMESetMassMatrix_flt ( HYPRE_Solver esolver, HYPRE_ParCSRMatrix M ); +HYPRE_Int HYPRE_AMESetMassMatrix_dbl ( HYPRE_Solver esolver, HYPRE_ParCSRMatrix M ); +HYPRE_Int HYPRE_AMESetMassMatrix_long_dbl ( HYPRE_Solver esolver, HYPRE_ParCSRMatrix M ); +HYPRE_Int HYPRE_AMESetMaxIter_flt ( HYPRE_Solver esolver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMESetMaxIter_dbl ( HYPRE_Solver esolver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMESetMaxIter_long_dbl ( HYPRE_Solver esolver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMESetMaxPCGIter_flt ( HYPRE_Solver esolver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMESetMaxPCGIter_dbl ( HYPRE_Solver esolver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMESetMaxPCGIter_long_dbl ( HYPRE_Solver esolver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMESetPrintLevel_flt ( HYPRE_Solver esolver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_AMESetPrintLevel_dbl ( HYPRE_Solver esolver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_AMESetPrintLevel_long_dbl ( HYPRE_Solver esolver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_AMESetRTol_flt ( HYPRE_Solver esolver, hypre_float tol ); +HYPRE_Int HYPRE_AMESetRTol_dbl ( HYPRE_Solver esolver, hypre_double tol ); +HYPRE_Int HYPRE_AMESetRTol_long_dbl ( HYPRE_Solver esolver, hypre_long_double tol ); +HYPRE_Int HYPRE_AMESetTol_flt ( HYPRE_Solver esolver, hypre_float tol ); +HYPRE_Int HYPRE_AMESetTol_dbl ( HYPRE_Solver esolver, hypre_double tol ); +HYPRE_Int HYPRE_AMESetTol_long_dbl ( HYPRE_Solver esolver, hypre_long_double tol ); +HYPRE_Int HYPRE_AMESetup_flt ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMESetup_dbl ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMESetup_long_dbl ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMESolve_flt ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMESolve_dbl ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMESolve_long_dbl ( HYPRE_Solver esolver ); +HYPRE_Int HYPRE_AMSConstructDiscreteGradient_flt ( HYPRE_ParCSRMatrix A, HYPRE_ParVector x_coord, + HYPRE_BigInt *edge_vertex, HYPRE_Int edge_orientation, HYPRE_ParCSRMatrix *G ); +HYPRE_Int HYPRE_AMSConstructDiscreteGradient_dbl ( HYPRE_ParCSRMatrix A, HYPRE_ParVector x_coord, + HYPRE_BigInt *edge_vertex, HYPRE_Int edge_orientation, HYPRE_ParCSRMatrix *G ); +HYPRE_Int HYPRE_AMSConstructDiscreteGradient_long_dbl ( HYPRE_ParCSRMatrix A, HYPRE_ParVector x_coord, + HYPRE_BigInt *edge_vertex, HYPRE_Int edge_orientation, HYPRE_ParCSRMatrix *G ); +HYPRE_Int HYPRE_AMSCreate_flt ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_AMSCreate_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_AMSCreate_long_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_AMSDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_AMSDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_AMSDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_AMSFEIDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_AMSFEIDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_AMSFEIDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_AMSFEISetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x, HYPRE_BigInt *EdgeNodeList_, HYPRE_BigInt *NodeNumbers_, HYPRE_Int numEdges_, + HYPRE_Int numLocalNodes_, HYPRE_Int numNodes_, hypre_float *NodalCoord_ ); +HYPRE_Int HYPRE_AMSFEISetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x, HYPRE_BigInt *EdgeNodeList_, HYPRE_BigInt *NodeNumbers_, HYPRE_Int numEdges_, + HYPRE_Int numLocalNodes_, HYPRE_Int numNodes_, hypre_double *NodalCoord_ ); +HYPRE_Int HYPRE_AMSFEISetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x, HYPRE_BigInt *EdgeNodeList_, HYPRE_BigInt *NodeNumbers_, HYPRE_Int numEdges_, + HYPRE_Int numLocalNodes_, HYPRE_Int numNodes_, hypre_long_double *NodalCoord_ ); +HYPRE_Int HYPRE_AMSGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *rel_resid_norm ); +HYPRE_Int HYPRE_AMSGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *rel_resid_norm ); +HYPRE_Int HYPRE_AMSGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *rel_resid_norm ); +HYPRE_Int HYPRE_AMSGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_AMSGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_AMSGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_AMSProjectOutGradients_flt ( HYPRE_Solver solver, HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSProjectOutGradients_dbl ( HYPRE_Solver solver, HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSProjectOutGradients_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSSetAlphaAMGCoarseRelaxType_flt ( HYPRE_Solver solver, + HYPRE_Int alpha_coarse_relax_type ); +HYPRE_Int HYPRE_AMSSetAlphaAMGCoarseRelaxType_dbl ( HYPRE_Solver solver, + HYPRE_Int alpha_coarse_relax_type ); +HYPRE_Int HYPRE_AMSSetAlphaAMGCoarseRelaxType_long_dbl ( HYPRE_Solver solver, + HYPRE_Int alpha_coarse_relax_type ); +HYPRE_Int HYPRE_AMSSetAlphaAMGOptions_flt ( HYPRE_Solver solver, HYPRE_Int alpha_coarsen_type, + HYPRE_Int alpha_agg_levels, HYPRE_Int alpha_relax_type, hypre_float alpha_strength_threshold, + HYPRE_Int alpha_interp_type, HYPRE_Int alpha_Pmax ); +HYPRE_Int HYPRE_AMSSetAlphaAMGOptions_dbl ( HYPRE_Solver solver, HYPRE_Int alpha_coarsen_type, + HYPRE_Int alpha_agg_levels, HYPRE_Int alpha_relax_type, hypre_double alpha_strength_threshold, + HYPRE_Int alpha_interp_type, HYPRE_Int alpha_Pmax ); +HYPRE_Int HYPRE_AMSSetAlphaAMGOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int alpha_coarsen_type, + HYPRE_Int alpha_agg_levels, HYPRE_Int alpha_relax_type, hypre_long_double alpha_strength_threshold, + HYPRE_Int alpha_interp_type, HYPRE_Int alpha_Pmax ); +HYPRE_Int HYPRE_AMSSetAlphaPoissonMatrix_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A_alpha ); +HYPRE_Int HYPRE_AMSSetAlphaPoissonMatrix_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A_alpha ); +HYPRE_Int HYPRE_AMSSetAlphaPoissonMatrix_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A_alpha ); +HYPRE_Int HYPRE_AMSSetBetaAMGCoarseRelaxType_flt ( HYPRE_Solver solver, + HYPRE_Int beta_coarse_relax_type ); +HYPRE_Int HYPRE_AMSSetBetaAMGCoarseRelaxType_dbl ( HYPRE_Solver solver, + HYPRE_Int beta_coarse_relax_type ); +HYPRE_Int HYPRE_AMSSetBetaAMGCoarseRelaxType_long_dbl ( HYPRE_Solver solver, + HYPRE_Int beta_coarse_relax_type ); +HYPRE_Int HYPRE_AMSSetBetaAMGOptions_flt ( HYPRE_Solver solver, HYPRE_Int beta_coarsen_type, + HYPRE_Int beta_agg_levels, HYPRE_Int beta_relax_type, hypre_float beta_strength_threshold, + HYPRE_Int beta_interp_type, HYPRE_Int beta_Pmax ); +HYPRE_Int HYPRE_AMSSetBetaAMGOptions_dbl ( HYPRE_Solver solver, HYPRE_Int beta_coarsen_type, + HYPRE_Int beta_agg_levels, HYPRE_Int beta_relax_type, hypre_double beta_strength_threshold, + HYPRE_Int beta_interp_type, HYPRE_Int beta_Pmax ); +HYPRE_Int HYPRE_AMSSetBetaAMGOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int beta_coarsen_type, + HYPRE_Int beta_agg_levels, HYPRE_Int beta_relax_type, hypre_long_double beta_strength_threshold, + HYPRE_Int beta_interp_type, HYPRE_Int beta_Pmax ); +HYPRE_Int HYPRE_AMSSetBetaPoissonMatrix_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A_beta ); +HYPRE_Int HYPRE_AMSSetBetaPoissonMatrix_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A_beta ); +HYPRE_Int HYPRE_AMSSetBetaPoissonMatrix_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A_beta ); +HYPRE_Int HYPRE_AMSSetChebySmoothingOptions_flt ( HYPRE_Solver solver, HYPRE_Int cheby_order, + hypre_float cheby_fraction ); +HYPRE_Int HYPRE_AMSSetChebySmoothingOptions_dbl ( HYPRE_Solver solver, HYPRE_Int cheby_order, + hypre_double cheby_fraction ); +HYPRE_Int HYPRE_AMSSetChebySmoothingOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int cheby_order, + hypre_long_double cheby_fraction ); +HYPRE_Int HYPRE_AMSSetCoordinateVectors_flt ( HYPRE_Solver solver, HYPRE_ParVector x, HYPRE_ParVector y, + HYPRE_ParVector z ); +HYPRE_Int HYPRE_AMSSetCoordinateVectors_dbl ( HYPRE_Solver solver, HYPRE_ParVector x, HYPRE_ParVector y, + HYPRE_ParVector z ); +HYPRE_Int HYPRE_AMSSetCoordinateVectors_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector x, HYPRE_ParVector y, + HYPRE_ParVector z ); +HYPRE_Int HYPRE_AMSSetCycleType_flt ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_AMSSetCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_AMSSetCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_AMSSetDimension_flt ( HYPRE_Solver solver, HYPRE_Int dim ); +HYPRE_Int HYPRE_AMSSetDimension_dbl ( HYPRE_Solver solver, HYPRE_Int dim ); +HYPRE_Int HYPRE_AMSSetDimension_long_dbl ( HYPRE_Solver solver, HYPRE_Int dim ); +HYPRE_Int HYPRE_AMSSetDiscreteGradient_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix G ); +HYPRE_Int HYPRE_AMSSetDiscreteGradient_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix G ); +HYPRE_Int HYPRE_AMSSetDiscreteGradient_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix G ); +HYPRE_Int HYPRE_AMSSetEdgeConstantVectors_flt ( HYPRE_Solver solver, HYPRE_ParVector Gx, + HYPRE_ParVector Gy, HYPRE_ParVector Gz ); +HYPRE_Int HYPRE_AMSSetEdgeConstantVectors_dbl ( HYPRE_Solver solver, HYPRE_ParVector Gx, + HYPRE_ParVector Gy, HYPRE_ParVector Gz ); +HYPRE_Int HYPRE_AMSSetEdgeConstantVectors_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector Gx, + HYPRE_ParVector Gy, HYPRE_ParVector Gz ); +HYPRE_Int HYPRE_AMSSetInteriorNodes_flt ( HYPRE_Solver solver, HYPRE_ParVector interior_nodes ); +HYPRE_Int HYPRE_AMSSetInteriorNodes_dbl ( HYPRE_Solver solver, HYPRE_ParVector interior_nodes ); +HYPRE_Int HYPRE_AMSSetInteriorNodes_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector interior_nodes ); +HYPRE_Int HYPRE_AMSSetInterpolations_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix Pi, + HYPRE_ParCSRMatrix Pix, HYPRE_ParCSRMatrix Piy, HYPRE_ParCSRMatrix Piz ); +HYPRE_Int HYPRE_AMSSetInterpolations_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix Pi, + HYPRE_ParCSRMatrix Pix, HYPRE_ParCSRMatrix Piy, HYPRE_ParCSRMatrix Piz ); +HYPRE_Int HYPRE_AMSSetInterpolations_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix Pi, + HYPRE_ParCSRMatrix Pix, HYPRE_ParCSRMatrix Piy, HYPRE_ParCSRMatrix Piz ); +HYPRE_Int HYPRE_AMSSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMSSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMSSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int maxit ); +HYPRE_Int HYPRE_AMSSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_AMSSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_AMSSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_AMSSetProjectionFrequency_flt ( HYPRE_Solver solver, HYPRE_Int projection_frequency ); +HYPRE_Int HYPRE_AMSSetProjectionFrequency_dbl ( HYPRE_Solver solver, HYPRE_Int projection_frequency ); +HYPRE_Int HYPRE_AMSSetProjectionFrequency_long_dbl ( HYPRE_Solver solver, HYPRE_Int projection_frequency ); +HYPRE_Int HYPRE_AMSSetSmoothingOptions_flt ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_float relax_weight, hypre_float omega ); +HYPRE_Int HYPRE_AMSSetSmoothingOptions_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_double relax_weight, hypre_double omega ); +HYPRE_Int HYPRE_AMSSetSmoothingOptions_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int relax_times, hypre_long_double relax_weight, hypre_long_double omega ); +HYPRE_Int HYPRE_AMSSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_AMSSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_AMSSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_AMSSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_AMSSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGDDGetAMG_flt ( HYPRE_Solver solver, HYPRE_Solver *amg_solver ); +HYPRE_Int HYPRE_BoomerAMGDDGetAMG_dbl ( HYPRE_Solver solver, HYPRE_Solver *amg_solver ); +HYPRE_Int HYPRE_BoomerAMGDDGetAMG_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *amg_solver ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACCycleType_flt ( HYPRE_Solver solver, HYPRE_Int *fac_cycle_type ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_cycle_type ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_cycle_type ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACNumCycles_flt ( HYPRE_Solver solver, HYPRE_Int *fac_num_cycles ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACNumCycles_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_num_cycles ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACNumCycles_long_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_num_cycles ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACNumRelax_flt ( HYPRE_Solver solver, HYPRE_Int *fac_num_relax ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACNumRelax_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_num_relax ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACNumRelax_long_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_num_relax ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int *fac_relax_type ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_relax_type ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *fac_relax_type ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACRelaxWeight_flt ( HYPRE_Solver solver, hypre_float *fac_relax_weight ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACRelaxWeight_dbl ( HYPRE_Solver solver, hypre_double *fac_relax_weight ); +HYPRE_Int HYPRE_BoomerAMGDDGetFACRelaxWeight_long_dbl ( HYPRE_Solver solver, hypre_long_double *fac_relax_weight ); +HYPRE_Int HYPRE_BoomerAMGDDGetNumGhostLayers_flt ( HYPRE_Solver solver, HYPRE_Int *num_ghost_layers ); +HYPRE_Int HYPRE_BoomerAMGDDGetNumGhostLayers_dbl ( HYPRE_Solver solver, HYPRE_Int *num_ghost_layers ); +HYPRE_Int HYPRE_BoomerAMGDDGetNumGhostLayers_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_ghost_layers ); +HYPRE_Int HYPRE_BoomerAMGDDGetPadding_flt ( HYPRE_Solver solver, HYPRE_Int *padding ); +HYPRE_Int HYPRE_BoomerAMGDDGetPadding_dbl ( HYPRE_Solver solver, HYPRE_Int *padding ); +HYPRE_Int HYPRE_BoomerAMGDDGetPadding_long_dbl ( HYPRE_Solver solver, HYPRE_Int *padding ); +HYPRE_Int HYPRE_BoomerAMGDDGetStartLevel_flt ( HYPRE_Solver solver, HYPRE_Int *start_level ); +HYPRE_Int HYPRE_BoomerAMGDDGetStartLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *start_level ); +HYPRE_Int HYPRE_BoomerAMGDDGetStartLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *start_level ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACCycleType_flt ( HYPRE_Solver solver, HYPRE_Int fac_cycle_type ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int fac_cycle_type ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int fac_cycle_type ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACNumCycles_flt ( HYPRE_Solver solver, HYPRE_Int fac_num_cycles ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACNumCycles_dbl ( HYPRE_Solver solver, HYPRE_Int fac_num_cycles ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACNumCycles_long_dbl ( HYPRE_Solver solver, HYPRE_Int fac_num_cycles ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACNumRelax_flt ( HYPRE_Solver solver, HYPRE_Int fac_num_relax ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACNumRelax_dbl ( HYPRE_Solver solver, HYPRE_Int fac_num_relax ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACNumRelax_long_dbl ( HYPRE_Solver solver, HYPRE_Int fac_num_relax ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int fac_relax_type ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int fac_relax_type ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int fac_relax_type ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACRelaxWeight_flt ( HYPRE_Solver solver, hypre_float fac_relax_weight ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACRelaxWeight_dbl ( HYPRE_Solver solver, hypre_double fac_relax_weight ); +HYPRE_Int HYPRE_BoomerAMGDDSetFACRelaxWeight_long_dbl ( HYPRE_Solver solver, hypre_long_double fac_relax_weight ); +HYPRE_Int HYPRE_BoomerAMGDDSetNumGhostLayers_flt ( HYPRE_Solver solver, HYPRE_Int num_ghost_layers ); +HYPRE_Int HYPRE_BoomerAMGDDSetNumGhostLayers_dbl ( HYPRE_Solver solver, HYPRE_Int num_ghost_layers ); +HYPRE_Int HYPRE_BoomerAMGDDSetNumGhostLayers_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_ghost_layers ); +HYPRE_Int HYPRE_BoomerAMGDDSetPadding_flt ( HYPRE_Solver solver, HYPRE_Int padding ); +HYPRE_Int HYPRE_BoomerAMGDDSetPadding_dbl ( HYPRE_Solver solver, HYPRE_Int padding ); +HYPRE_Int HYPRE_BoomerAMGDDSetPadding_long_dbl ( HYPRE_Solver solver, HYPRE_Int padding ); +HYPRE_Int HYPRE_BoomerAMGDDSetStartLevel_flt ( HYPRE_Solver solver, HYPRE_Int start_level ); +HYPRE_Int HYPRE_BoomerAMGDDSetStartLevel_dbl ( HYPRE_Solver solver, HYPRE_Int start_level ); +HYPRE_Int HYPRE_BoomerAMGDDSetStartLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int start_level ); +HYPRE_Int HYPRE_BoomerAMGDDSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGDDSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGDDSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGDDSetUserFACRelaxation_flt ( HYPRE_Solver solver, + HYPRE_Int (*userFACRelaxation)( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ) ); +HYPRE_Int HYPRE_BoomerAMGDDSetUserFACRelaxation_dbl ( HYPRE_Solver solver, + HYPRE_Int (*userFACRelaxation)( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ) ); +HYPRE_Int HYPRE_BoomerAMGDDSetUserFACRelaxation_long_dbl ( HYPRE_Solver solver, + HYPRE_Int (*userFACRelaxation)( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ) ); +HYPRE_Int HYPRE_BoomerAMGDDSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGDDSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGDDSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGCreate_flt ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_BoomerAMGCreate_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_BoomerAMGCreate_long_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_BoomerAMGDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BoomerAMGDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BoomerAMGDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BoomerAMGGetAdditive_flt ( HYPRE_Solver solver, HYPRE_Int *additive ); +HYPRE_Int HYPRE_BoomerAMGGetAdditive_dbl ( HYPRE_Solver solver, HYPRE_Int *additive ); +HYPRE_Int HYPRE_BoomerAMGGetAdditive_long_dbl ( HYPRE_Solver solver, HYPRE_Int *additive ); +HYPRE_Int HYPRE_BoomerAMGGetCoarsenCutFactor_flt ( HYPRE_Solver solver, HYPRE_Int *coarsen_cut_factor ); +HYPRE_Int HYPRE_BoomerAMGGetCoarsenCutFactor_dbl ( HYPRE_Solver solver, HYPRE_Int *coarsen_cut_factor ); +HYPRE_Int HYPRE_BoomerAMGGetCoarsenCutFactor_long_dbl ( HYPRE_Solver solver, HYPRE_Int *coarsen_cut_factor ); +HYPRE_Int HYPRE_BoomerAMGGetCoarsenType_flt ( HYPRE_Solver solver, HYPRE_Int *coarsen_type ); +HYPRE_Int HYPRE_BoomerAMGGetCoarsenType_dbl ( HYPRE_Solver solver, HYPRE_Int *coarsen_type ); +HYPRE_Int HYPRE_BoomerAMGGetCoarsenType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *coarsen_type ); +HYPRE_Int HYPRE_BoomerAMGGetConvergeType_flt ( HYPRE_Solver solver, HYPRE_Int *type ); +HYPRE_Int HYPRE_BoomerAMGGetConvergeType_dbl ( HYPRE_Solver solver, HYPRE_Int *type ); +HYPRE_Int HYPRE_BoomerAMGGetConvergeType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *type ); +HYPRE_Int HYPRE_BoomerAMGGetCumNnzAP_flt ( HYPRE_Solver solver, hypre_float *cum_nnz_AP ); +HYPRE_Int HYPRE_BoomerAMGGetCumNnzAP_dbl ( HYPRE_Solver solver, hypre_double *cum_nnz_AP ); +HYPRE_Int HYPRE_BoomerAMGGetCumNnzAP_long_dbl ( HYPRE_Solver solver, hypre_long_double *cum_nnz_AP ); +HYPRE_Int HYPRE_BoomerAMGGetCumNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *cum_num_iterations ); +HYPRE_Int HYPRE_BoomerAMGGetCumNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *cum_num_iterations ); +HYPRE_Int HYPRE_BoomerAMGGetCumNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *cum_num_iterations ); +HYPRE_Int HYPRE_BoomerAMGGetCycleNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int *num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGGetCycleNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int *num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGGetCycleNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGGetCycleRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int *relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGGetCycleRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int *relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGGetCycleRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGGetCycleType_flt ( HYPRE_Solver solver, HYPRE_Int *cycle_type ); +HYPRE_Int HYPRE_BoomerAMGGetCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int *cycle_type ); +HYPRE_Int HYPRE_BoomerAMGGetCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *cycle_type ); +HYPRE_Int HYPRE_BoomerAMGGetDebugFlag_flt ( HYPRE_Solver solver, HYPRE_Int *debug_flag ); +HYPRE_Int HYPRE_BoomerAMGGetDebugFlag_dbl ( HYPRE_Solver solver, HYPRE_Int *debug_flag ); +HYPRE_Int HYPRE_BoomerAMGGetDebugFlag_long_dbl ( HYPRE_Solver solver, HYPRE_Int *debug_flag ); +HYPRE_Int HYPRE_BoomerAMGGetDomainType_flt ( HYPRE_Solver solver, HYPRE_Int *domain_type ); +HYPRE_Int HYPRE_BoomerAMGGetDomainType_dbl ( HYPRE_Solver solver, HYPRE_Int *domain_type ); +HYPRE_Int HYPRE_BoomerAMGGetDomainType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *domain_type ); +HYPRE_Int HYPRE_BoomerAMGGetFCycle_flt ( HYPRE_Solver solver, HYPRE_Int *fcycle ); +HYPRE_Int HYPRE_BoomerAMGGetFCycle_dbl ( HYPRE_Solver solver, HYPRE_Int *fcycle ); +HYPRE_Int HYPRE_BoomerAMGGetFCycle_long_dbl ( HYPRE_Solver solver, HYPRE_Int *fcycle ); +HYPRE_Int HYPRE_BoomerAMGGetFilterThresholdR_flt ( HYPRE_Solver solver, hypre_float *filter_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetFilterThresholdR_dbl ( HYPRE_Solver solver, hypre_double *filter_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetFilterThresholdR_long_dbl ( HYPRE_Solver solver, hypre_long_double *filter_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, + hypre_float *rel_resid_norm ); +HYPRE_Int HYPRE_BoomerAMGGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, + hypre_double *rel_resid_norm ); +HYPRE_Int HYPRE_BoomerAMGGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, + hypre_long_double *rel_resid_norm ); +HYPRE_Int HYPRE_BoomerAMGGetGridHierarchy_flt (HYPRE_Solver solver, HYPRE_Int *cgrid ); +HYPRE_Int HYPRE_BoomerAMGGetGridHierarchy_dbl (HYPRE_Solver solver, HYPRE_Int *cgrid ); +HYPRE_Int HYPRE_BoomerAMGGetGridHierarchy_long_dbl (HYPRE_Solver solver, HYPRE_Int *cgrid ); +HYPRE_Int HYPRE_BoomerAMGGetJacobiTruncThreshold_flt ( HYPRE_Solver solver, + hypre_float *jacobi_trunc_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetJacobiTruncThreshold_dbl ( HYPRE_Solver solver, + hypre_double *jacobi_trunc_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetJacobiTruncThreshold_long_dbl ( HYPRE_Solver solver, + hypre_long_double *jacobi_trunc_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *logging ); +HYPRE_Int HYPRE_BoomerAMGGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *logging ); +HYPRE_Int HYPRE_BoomerAMGGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *logging ); +HYPRE_Int HYPRE_BoomerAMGGetMaxCoarseSize_flt ( HYPRE_Solver solver, HYPRE_Int *max_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGGetMaxCoarseSize_dbl ( HYPRE_Solver solver, HYPRE_Int *max_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGGetMaxCoarseSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGGetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_BoomerAMGGetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_BoomerAMGGetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iter ); +HYPRE_Int HYPRE_BoomerAMGGetMaxLevels_flt ( HYPRE_Solver solver, HYPRE_Int *max_levels ); +HYPRE_Int HYPRE_BoomerAMGGetMaxLevels_dbl ( HYPRE_Solver solver, HYPRE_Int *max_levels ); +HYPRE_Int HYPRE_BoomerAMGGetMaxLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_levels ); +HYPRE_Int HYPRE_BoomerAMGGetMaxRowSum_flt ( HYPRE_Solver solver, hypre_float *max_row_sum ); +HYPRE_Int HYPRE_BoomerAMGGetMaxRowSum_dbl ( HYPRE_Solver solver, hypre_double *max_row_sum ); +HYPRE_Int HYPRE_BoomerAMGGetMaxRowSum_long_dbl ( HYPRE_Solver solver, hypre_long_double *max_row_sum ); +HYPRE_Int HYPRE_BoomerAMGGetMeasureType_flt ( HYPRE_Solver solver, HYPRE_Int *measure_type ); +HYPRE_Int HYPRE_BoomerAMGGetMeasureType_dbl ( HYPRE_Solver solver, HYPRE_Int *measure_type ); +HYPRE_Int HYPRE_BoomerAMGGetMeasureType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *measure_type ); +HYPRE_Int HYPRE_BoomerAMGGetMinCoarseSize_flt ( HYPRE_Solver solver, HYPRE_Int *min_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGGetMinCoarseSize_dbl ( HYPRE_Solver solver, HYPRE_Int *min_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGGetMinCoarseSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int *min_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGGetMultAdditive_flt ( HYPRE_Solver solver, HYPRE_Int *mult_additive ); +HYPRE_Int HYPRE_BoomerAMGGetMultAdditive_dbl ( HYPRE_Solver solver, HYPRE_Int *mult_additive ); +HYPRE_Int HYPRE_BoomerAMGGetMultAdditive_long_dbl ( HYPRE_Solver solver, HYPRE_Int *mult_additive ); +HYPRE_Int HYPRE_BoomerAMGGetNumFunctions_flt ( HYPRE_Solver solver, HYPRE_Int *num_functions ); +HYPRE_Int HYPRE_BoomerAMGGetNumFunctions_dbl ( HYPRE_Solver solver, HYPRE_Int *num_functions ); +HYPRE_Int HYPRE_BoomerAMGGetNumFunctions_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_functions ); +HYPRE_Int HYPRE_BoomerAMGGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_BoomerAMGGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_BoomerAMGGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_BoomerAMGGetOverlap_flt ( HYPRE_Solver solver, HYPRE_Int *overlap ); +HYPRE_Int HYPRE_BoomerAMGGetOverlap_dbl ( HYPRE_Solver solver, HYPRE_Int *overlap ); +HYPRE_Int HYPRE_BoomerAMGGetOverlap_long_dbl ( HYPRE_Solver solver, HYPRE_Int *overlap ); +HYPRE_Int HYPRE_BoomerAMGGetPMaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int *P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGGetPMaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int *P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGGetPMaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int *P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGGetPostInterpType_flt ( HYPRE_Solver solver, HYPRE_Int *post_interp_type ); +HYPRE_Int HYPRE_BoomerAMGGetPostInterpType_dbl ( HYPRE_Solver solver, HYPRE_Int *post_interp_type ); +HYPRE_Int HYPRE_BoomerAMGGetPostInterpType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *post_interp_type ); +HYPRE_Int HYPRE_BoomerAMGGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *print_level ); +HYPRE_Int HYPRE_BoomerAMGGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *print_level ); +HYPRE_Int HYPRE_BoomerAMGGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *print_level ); +HYPRE_Int HYPRE_BoomerAMGGetRedundant_flt ( HYPRE_Solver solver, HYPRE_Int *redundant ); +HYPRE_Int HYPRE_BoomerAMGGetRedundant_dbl ( HYPRE_Solver solver, HYPRE_Int *redundant ); +HYPRE_Int HYPRE_BoomerAMGGetRedundant_long_dbl ( HYPRE_Solver solver, HYPRE_Int *redundant ); +HYPRE_Int HYPRE_BoomerAMGGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_BoomerAMGGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_BoomerAMGGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_BoomerAMGGetSchwarzRlxWeight_flt ( HYPRE_Solver solver, + hypre_float *schwarz_rlx_weight ); +HYPRE_Int HYPRE_BoomerAMGGetSchwarzRlxWeight_dbl ( HYPRE_Solver solver, + hypre_double *schwarz_rlx_weight ); +HYPRE_Int HYPRE_BoomerAMGGetSchwarzRlxWeight_long_dbl ( HYPRE_Solver solver, + hypre_long_double *schwarz_rlx_weight ); +HYPRE_Int HYPRE_BoomerAMGGetSeqThreshold_flt ( HYPRE_Solver solver, HYPRE_Int *seq_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetSeqThreshold_dbl ( HYPRE_Solver solver, HYPRE_Int *seq_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetSeqThreshold_long_dbl ( HYPRE_Solver solver, HYPRE_Int *seq_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetSimple_flt ( HYPRE_Solver solver, HYPRE_Int *simple ); +HYPRE_Int HYPRE_BoomerAMGGetSimple_dbl ( HYPRE_Solver solver, HYPRE_Int *simple ); +HYPRE_Int HYPRE_BoomerAMGGetSimple_long_dbl ( HYPRE_Solver solver, HYPRE_Int *simple ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothNumLevels_flt ( HYPRE_Solver solver, HYPRE_Int *smooth_num_levels ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothNumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int *smooth_num_levels ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothNumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int *smooth_num_levels ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int *smooth_num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int *smooth_num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int *smooth_num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothType_flt ( HYPRE_Solver solver, HYPRE_Int *smooth_type ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothType_dbl ( HYPRE_Solver solver, HYPRE_Int *smooth_type ); +HYPRE_Int HYPRE_BoomerAMGGetSmoothType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *smooth_type ); +HYPRE_Int HYPRE_BoomerAMGGetStrongThreshold_flt ( HYPRE_Solver solver, hypre_float *strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetStrongThreshold_dbl ( HYPRE_Solver solver, hypre_double *strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetStrongThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double *strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetStrongThresholdR_flt ( HYPRE_Solver solver, hypre_float *strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetStrongThresholdR_dbl ( HYPRE_Solver solver, hypre_double *strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetStrongThresholdR_long_dbl ( HYPRE_Solver solver, hypre_long_double *strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGGetTol_flt ( HYPRE_Solver solver, hypre_float *tol ); +HYPRE_Int HYPRE_BoomerAMGGetTol_dbl ( HYPRE_Solver solver, hypre_double *tol ); +HYPRE_Int HYPRE_BoomerAMGGetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double *tol ); +HYPRE_Int HYPRE_BoomerAMGGetTruncFactor_flt ( HYPRE_Solver solver, hypre_float *trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGGetTruncFactor_dbl ( HYPRE_Solver solver, hypre_double *trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGGetTruncFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double *trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGGetVariant_flt ( HYPRE_Solver solver, HYPRE_Int *variant ); +HYPRE_Int HYPRE_BoomerAMGGetVariant_dbl ( HYPRE_Solver solver, HYPRE_Int *variant ); +HYPRE_Int HYPRE_BoomerAMGGetVariant_long_dbl ( HYPRE_Solver solver, HYPRE_Int *variant ); +HYPRE_Int HYPRE_BoomerAMGInitGridRelaxation_flt ( HYPRE_Int **num_grid_sweeps_ptr, + HYPRE_Int **grid_relax_type_ptr, HYPRE_Int ***grid_relax_points_ptr, HYPRE_Int coarsen_type, + hypre_float **relax_weights_ptr, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_BoomerAMGInitGridRelaxation_dbl ( HYPRE_Int **num_grid_sweeps_ptr, + HYPRE_Int **grid_relax_type_ptr, HYPRE_Int ***grid_relax_points_ptr, HYPRE_Int coarsen_type, + hypre_double **relax_weights_ptr, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_BoomerAMGInitGridRelaxation_long_dbl ( HYPRE_Int **num_grid_sweeps_ptr, + HYPRE_Int **grid_relax_type_ptr, HYPRE_Int ***grid_relax_points_ptr, HYPRE_Int coarsen_type, + hypre_long_double **relax_weights_ptr, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_BoomerAMGSetAdditive_flt ( HYPRE_Solver solver, HYPRE_Int additive ); +HYPRE_Int HYPRE_BoomerAMGSetAdditive_dbl ( HYPRE_Solver solver, HYPRE_Int additive ); +HYPRE_Int HYPRE_BoomerAMGSetAdditive_long_dbl ( HYPRE_Solver solver, HYPRE_Int additive ); +HYPRE_Int HYPRE_BoomerAMGSetAddLastLvl_flt ( HYPRE_Solver solver, HYPRE_Int add_last_lvl ); +HYPRE_Int HYPRE_BoomerAMGSetAddLastLvl_dbl ( HYPRE_Solver solver, HYPRE_Int add_last_lvl ); +HYPRE_Int HYPRE_BoomerAMGSetAddLastLvl_long_dbl ( HYPRE_Solver solver, HYPRE_Int add_last_lvl ); +HYPRE_Int HYPRE_BoomerAMGSetAddPMaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int add_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAddPMaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int add_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAddPMaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int add_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAddRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int add_rlx_type ); +HYPRE_Int HYPRE_BoomerAMGSetAddRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int add_rlx_type ); +HYPRE_Int HYPRE_BoomerAMGSetAddRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int add_rlx_type ); +HYPRE_Int HYPRE_BoomerAMGSetAddRelaxWt_flt ( HYPRE_Solver solver, hypre_float add_rlx_wt ); +HYPRE_Int HYPRE_BoomerAMGSetAddRelaxWt_dbl ( HYPRE_Solver solver, hypre_double add_rlx_wt ); +HYPRE_Int HYPRE_BoomerAMGSetAddRelaxWt_long_dbl ( HYPRE_Solver solver, hypre_long_double add_rlx_wt ); +HYPRE_Int HYPRE_BoomerAMGSetAddTruncFactor_flt ( HYPRE_Solver solver, hypre_float add_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAddTruncFactor_dbl ( HYPRE_Solver solver, hypre_double add_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAddTruncFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double add_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetADropTol_flt ( HYPRE_Solver solver, hypre_float A_drop_tol ); +HYPRE_Int HYPRE_BoomerAMGSetADropTol_dbl ( HYPRE_Solver solver, hypre_double A_drop_tol ); +HYPRE_Int HYPRE_BoomerAMGSetADropTol_long_dbl ( HYPRE_Solver solver, hypre_long_double A_drop_tol ); +HYPRE_Int HYPRE_BoomerAMGSetADropType_flt ( HYPRE_Solver solver, HYPRE_Int A_drop_type ); +HYPRE_Int HYPRE_BoomerAMGSetADropType_dbl ( HYPRE_Solver solver, HYPRE_Int A_drop_type ); +HYPRE_Int HYPRE_BoomerAMGSetADropType_long_dbl ( HYPRE_Solver solver, HYPRE_Int A_drop_type ); +HYPRE_Int HYPRE_BoomerAMGSetAggInterpType_flt ( HYPRE_Solver solver, HYPRE_Int agg_interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetAggInterpType_dbl ( HYPRE_Solver solver, HYPRE_Int agg_interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetAggInterpType_long_dbl ( HYPRE_Solver solver, HYPRE_Int agg_interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetAggNumLevels_flt ( HYPRE_Solver solver, HYPRE_Int agg_num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetAggNumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int agg_num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetAggNumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int agg_num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetAggP12MaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int agg_P12_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAggP12MaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int agg_P12_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAggP12MaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int agg_P12_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAggP12TruncFactor_flt ( HYPRE_Solver solver, + hypre_float agg_P12_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAggP12TruncFactor_dbl ( HYPRE_Solver solver, + hypre_double agg_P12_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAggP12TruncFactor_long_dbl ( HYPRE_Solver solver, + hypre_long_double agg_P12_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAggPMaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int agg_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAggPMaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int agg_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAggPMaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int agg_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetAggTruncFactor_flt ( HYPRE_Solver solver, hypre_float agg_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAggTruncFactor_dbl ( HYPRE_Solver solver, hypre_double agg_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetAggTruncFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double agg_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetCGCIts_flt ( HYPRE_Solver solver, HYPRE_Int its ); +HYPRE_Int HYPRE_BoomerAMGSetCGCIts_dbl ( HYPRE_Solver solver, HYPRE_Int its ); +HYPRE_Int HYPRE_BoomerAMGSetCGCIts_long_dbl ( HYPRE_Solver solver, HYPRE_Int its ); +HYPRE_Int HYPRE_BoomerAMGSetChebyEigEst_flt ( HYPRE_Solver solver, HYPRE_Int eig_est ); +HYPRE_Int HYPRE_BoomerAMGSetChebyEigEst_dbl ( HYPRE_Solver solver, HYPRE_Int eig_est ); +HYPRE_Int HYPRE_BoomerAMGSetChebyEigEst_long_dbl ( HYPRE_Solver solver, HYPRE_Int eig_est ); +HYPRE_Int HYPRE_BoomerAMGSetChebyFraction_flt ( HYPRE_Solver solver, hypre_float ratio ); +HYPRE_Int HYPRE_BoomerAMGSetChebyFraction_dbl ( HYPRE_Solver solver, hypre_double ratio ); +HYPRE_Int HYPRE_BoomerAMGSetChebyFraction_long_dbl ( HYPRE_Solver solver, hypre_long_double ratio ); +HYPRE_Int HYPRE_BoomerAMGSetChebyOrder_flt ( HYPRE_Solver solver, HYPRE_Int order ); +HYPRE_Int HYPRE_BoomerAMGSetChebyOrder_dbl ( HYPRE_Solver solver, HYPRE_Int order ); +HYPRE_Int HYPRE_BoomerAMGSetChebyOrder_long_dbl ( HYPRE_Solver solver, HYPRE_Int order ); +HYPRE_Int HYPRE_BoomerAMGSetChebyScale_flt ( HYPRE_Solver solver, HYPRE_Int scale ); +HYPRE_Int HYPRE_BoomerAMGSetChebyScale_dbl ( HYPRE_Solver solver, HYPRE_Int scale ); +HYPRE_Int HYPRE_BoomerAMGSetChebyScale_long_dbl ( HYPRE_Solver solver, HYPRE_Int scale ); +HYPRE_Int HYPRE_BoomerAMGSetChebyVariant_flt ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_BoomerAMGSetChebyVariant_dbl ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_BoomerAMGSetChebyVariant_long_dbl ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_BoomerAMGSetCoarsenCutFactor_flt ( HYPRE_Solver solver, HYPRE_Int coarsen_cut_factor ); +HYPRE_Int HYPRE_BoomerAMGSetCoarsenCutFactor_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_cut_factor ); +HYPRE_Int HYPRE_BoomerAMGSetCoarsenCutFactor_long_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_cut_factor ); +HYPRE_Int HYPRE_BoomerAMGSetCoarsenType_flt ( HYPRE_Solver solver, HYPRE_Int coarsen_type ); +HYPRE_Int HYPRE_BoomerAMGSetCoarsenType_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_type ); +HYPRE_Int HYPRE_BoomerAMGSetCoarsenType_long_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_type ); +HYPRE_Int HYPRE_BoomerAMGSetConvergeType_flt ( HYPRE_Solver solver, HYPRE_Int type ); +HYPRE_Int HYPRE_BoomerAMGSetConvergeType_dbl ( HYPRE_Solver solver, HYPRE_Int type ); +HYPRE_Int HYPRE_BoomerAMGSetConvergeType_long_dbl ( HYPRE_Solver solver, HYPRE_Int type ); +HYPRE_Int HYPRE_BoomerAMGSetCoordDim_flt ( HYPRE_Solver solver, HYPRE_Int coorddim ); +HYPRE_Int HYPRE_BoomerAMGSetCoordDim_dbl ( HYPRE_Solver solver, HYPRE_Int coorddim ); +HYPRE_Int HYPRE_BoomerAMGSetCoordDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int coorddim ); +HYPRE_Int HYPRE_BoomerAMGSetCoordinates_flt ( HYPRE_Solver solver, float *coordinates ); +HYPRE_Int HYPRE_BoomerAMGSetCoordinates_dbl ( HYPRE_Solver solver, float *coordinates ); +HYPRE_Int HYPRE_BoomerAMGSetCoordinates_long_dbl ( HYPRE_Solver solver, float *coordinates ); +HYPRE_Int HYPRE_BoomerAMGSetCPoints_flt ( HYPRE_Solver solver, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index); +HYPRE_Int HYPRE_BoomerAMGSetCPoints_dbl ( HYPRE_Solver solver, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index); +HYPRE_Int HYPRE_BoomerAMGSetCPoints_long_dbl ( HYPRE_Solver solver, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index); +HYPRE_Int HYPRE_BoomerAMGSetCpointsToKeep_flt ( HYPRE_Solver solver, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index); +HYPRE_Int HYPRE_BoomerAMGSetCpointsToKeep_dbl ( HYPRE_Solver solver, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index); +HYPRE_Int HYPRE_BoomerAMGSetCpointsToKeep_long_dbl ( HYPRE_Solver solver, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index); +HYPRE_Int HYPRE_BoomerAMGSetCRRate_flt ( HYPRE_Solver solver, hypre_float CR_rate ); +HYPRE_Int HYPRE_BoomerAMGSetCRRate_dbl ( HYPRE_Solver solver, hypre_double CR_rate ); +HYPRE_Int HYPRE_BoomerAMGSetCRRate_long_dbl ( HYPRE_Solver solver, hypre_long_double CR_rate ); +HYPRE_Int HYPRE_BoomerAMGSetCRStrongTh_flt ( HYPRE_Solver solver, hypre_float CR_strong_th ); +HYPRE_Int HYPRE_BoomerAMGSetCRStrongTh_dbl ( HYPRE_Solver solver, hypre_double CR_strong_th ); +HYPRE_Int HYPRE_BoomerAMGSetCRStrongTh_long_dbl ( HYPRE_Solver solver, hypre_long_double CR_strong_th ); +HYPRE_Int HYPRE_BoomerAMGSetCRUseCG_flt ( HYPRE_Solver solver, HYPRE_Int CR_use_CG ); +HYPRE_Int HYPRE_BoomerAMGSetCRUseCG_dbl ( HYPRE_Solver solver, HYPRE_Int CR_use_CG ); +HYPRE_Int HYPRE_BoomerAMGSetCRUseCG_long_dbl ( HYPRE_Solver solver, HYPRE_Int CR_use_CG ); +HYPRE_Int HYPRE_BoomerAMGSetCumNnzAP_flt ( HYPRE_Solver solver, hypre_float cum_nnz_AP ); +HYPRE_Int HYPRE_BoomerAMGSetCumNnzAP_dbl ( HYPRE_Solver solver, hypre_double cum_nnz_AP ); +HYPRE_Int HYPRE_BoomerAMGSetCumNnzAP_long_dbl ( HYPRE_Solver solver, hypre_long_double cum_nnz_AP ); +HYPRE_Int HYPRE_BoomerAMGSetCycleNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGSetCycleNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGSetCycleNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGSetCycleRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGSetCycleRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGSetCycleRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_BoomerAMGSetCycleType_flt ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_BoomerAMGSetCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_BoomerAMGSetCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_BoomerAMGSetDebugFlag_flt ( HYPRE_Solver solver, HYPRE_Int debug_flag ); +HYPRE_Int HYPRE_BoomerAMGSetDebugFlag_dbl ( HYPRE_Solver solver, HYPRE_Int debug_flag ); +HYPRE_Int HYPRE_BoomerAMGSetDebugFlag_long_dbl ( HYPRE_Solver solver, HYPRE_Int debug_flag ); +HYPRE_Int HYPRE_BoomerAMGSetDofFunc_flt ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_BoomerAMGSetDofFunc_dbl ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_BoomerAMGSetDofFunc_long_dbl ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_BoomerAMGSetDomainType_flt ( HYPRE_Solver solver, HYPRE_Int domain_type ); +HYPRE_Int HYPRE_BoomerAMGSetDomainType_dbl ( HYPRE_Solver solver, HYPRE_Int domain_type ); +HYPRE_Int HYPRE_BoomerAMGSetDomainType_long_dbl ( HYPRE_Solver solver, HYPRE_Int domain_type ); +HYPRE_Int HYPRE_BoomerAMGSetDropTol_flt ( HYPRE_Solver solver, hypre_float drop_tol ); +HYPRE_Int HYPRE_BoomerAMGSetDropTol_dbl ( HYPRE_Solver solver, hypre_double drop_tol ); +HYPRE_Int HYPRE_BoomerAMGSetDropTol_long_dbl ( HYPRE_Solver solver, hypre_long_double drop_tol ); +HYPRE_Int HYPRE_BoomerAMGSetEuBJ_flt ( HYPRE_Solver solver, HYPRE_Int eu_bj ); +HYPRE_Int HYPRE_BoomerAMGSetEuBJ_dbl ( HYPRE_Solver solver, HYPRE_Int eu_bj ); +HYPRE_Int HYPRE_BoomerAMGSetEuBJ_long_dbl ( HYPRE_Solver solver, HYPRE_Int eu_bj ); +HYPRE_Int HYPRE_BoomerAMGSetEuclidFile_flt ( HYPRE_Solver solver, char *euclidfile ); +HYPRE_Int HYPRE_BoomerAMGSetEuclidFile_dbl ( HYPRE_Solver solver, char *euclidfile ); +HYPRE_Int HYPRE_BoomerAMGSetEuclidFile_long_dbl ( HYPRE_Solver solver, char *euclidfile ); +HYPRE_Int HYPRE_BoomerAMGSetEuLevel_flt ( HYPRE_Solver solver, HYPRE_Int eu_level ); +HYPRE_Int HYPRE_BoomerAMGSetEuLevel_dbl ( HYPRE_Solver solver, HYPRE_Int eu_level ); +HYPRE_Int HYPRE_BoomerAMGSetEuLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int eu_level ); +HYPRE_Int HYPRE_BoomerAMGSetEuSparseA_flt ( HYPRE_Solver solver, hypre_float eu_sparse_A ); +HYPRE_Int HYPRE_BoomerAMGSetEuSparseA_dbl ( HYPRE_Solver solver, hypre_double eu_sparse_A ); +HYPRE_Int HYPRE_BoomerAMGSetEuSparseA_long_dbl ( HYPRE_Solver solver, hypre_long_double eu_sparse_A ); +HYPRE_Int HYPRE_BoomerAMGSetFCycle_flt ( HYPRE_Solver solver, HYPRE_Int fcycle ); +HYPRE_Int HYPRE_BoomerAMGSetFCycle_dbl ( HYPRE_Solver solver, HYPRE_Int fcycle ); +HYPRE_Int HYPRE_BoomerAMGSetFCycle_long_dbl ( HYPRE_Solver solver, HYPRE_Int fcycle ); +HYPRE_Int HYPRE_BoomerAMGSetFilter_flt ( HYPRE_Solver solver, hypre_float filter ); +HYPRE_Int HYPRE_BoomerAMGSetFilter_dbl ( HYPRE_Solver solver, hypre_double filter ); +HYPRE_Int HYPRE_BoomerAMGSetFilter_long_dbl ( HYPRE_Solver solver, hypre_long_double filter ); +HYPRE_Int HYPRE_BoomerAMGSetFilterThresholdR_flt ( HYPRE_Solver solver, hypre_float filter_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetFilterThresholdR_dbl ( HYPRE_Solver solver, hypre_double filter_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetFilterThresholdR_long_dbl ( HYPRE_Solver solver, hypre_long_double filter_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetFPoints_flt ( HYPRE_Solver solver, HYPRE_Int num_fpt, + HYPRE_BigInt *fpt_index ); +HYPRE_Int HYPRE_BoomerAMGSetFPoints_dbl ( HYPRE_Solver solver, HYPRE_Int num_fpt, + HYPRE_BigInt *fpt_index ); +HYPRE_Int HYPRE_BoomerAMGSetFPoints_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_fpt, + HYPRE_BigInt *fpt_index ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIAlgoType_flt ( HYPRE_Solver solver, HYPRE_Int algo_type ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIAlgoType_dbl ( HYPRE_Solver solver, HYPRE_Int algo_type ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIAlgoType_long_dbl ( HYPRE_Solver solver, HYPRE_Int algo_type ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIEigMaxIters_flt ( HYPRE_Solver solver, HYPRE_Int eig_max_iters ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIEigMaxIters_dbl ( HYPRE_Solver solver, HYPRE_Int eig_max_iters ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIEigMaxIters_long_dbl ( HYPRE_Solver solver, HYPRE_Int eig_max_iters ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIKapTolerance_flt ( HYPRE_Solver solver, hypre_float kap_tolerance ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIKapTolerance_dbl ( HYPRE_Solver solver, hypre_double kap_tolerance ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIKapTolerance_long_dbl ( HYPRE_Solver solver, hypre_long_double kap_tolerance ); +HYPRE_Int HYPRE_BoomerAMGSetFSAILocalSolveType_flt ( HYPRE_Solver solver, HYPRE_Int local_solve_type ); +HYPRE_Int HYPRE_BoomerAMGSetFSAILocalSolveType_dbl ( HYPRE_Solver solver, HYPRE_Int local_solve_type ); +HYPRE_Int HYPRE_BoomerAMGSetFSAILocalSolveType_long_dbl ( HYPRE_Solver solver, HYPRE_Int local_solve_type ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxNnzRow_flt ( HYPRE_Solver solver, HYPRE_Int max_nnz_row ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxNnzRow_dbl ( HYPRE_Solver solver, HYPRE_Int max_nnz_row ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxNnzRow_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_nnz_row ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxSteps_flt ( HYPRE_Solver solver, HYPRE_Int max_steps ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxSteps_dbl ( HYPRE_Solver solver, HYPRE_Int max_steps ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxSteps_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_steps ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxStepSize_flt ( HYPRE_Solver solver, HYPRE_Int max_step_size ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxStepSize_dbl ( HYPRE_Solver solver, HYPRE_Int max_step_size ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIMaxStepSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_step_size ); +HYPRE_Int HYPRE_BoomerAMGSetFSAINumLevels_flt ( HYPRE_Solver solver, HYPRE_Int num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetFSAINumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetFSAINumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIThreshold_flt ( HYPRE_Solver solver, hypre_float threshold ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIThreshold_dbl ( HYPRE_Solver solver, hypre_double threshold ); +HYPRE_Int HYPRE_BoomerAMGSetFSAIThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double threshold ); +HYPRE_Int HYPRE_BoomerAMGSetGMRESSwitchR_flt ( HYPRE_Solver solver, HYPRE_Int gmres_switch ); +HYPRE_Int HYPRE_BoomerAMGSetGMRESSwitchR_dbl ( HYPRE_Solver solver, HYPRE_Int gmres_switch ); +HYPRE_Int HYPRE_BoomerAMGSetGMRESSwitchR_long_dbl ( HYPRE_Solver solver, HYPRE_Int gmres_switch ); +HYPRE_Int HYPRE_BoomerAMGSetGridRelaxPoints_flt ( HYPRE_Solver solver, HYPRE_Int **grid_relax_points ); +HYPRE_Int HYPRE_BoomerAMGSetGridRelaxPoints_dbl ( HYPRE_Solver solver, HYPRE_Int **grid_relax_points ); +HYPRE_Int HYPRE_BoomerAMGSetGridRelaxPoints_long_dbl ( HYPRE_Solver solver, HYPRE_Int **grid_relax_points ); +HYPRE_Int HYPRE_BoomerAMGSetGridRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int *grid_relax_type ); +HYPRE_Int HYPRE_BoomerAMGSetGridRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int *grid_relax_type ); +HYPRE_Int HYPRE_BoomerAMGSetGridRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *grid_relax_type ); +HYPRE_Int HYPRE_BoomerAMGSetGSMG_flt ( HYPRE_Solver solver, HYPRE_Int gsmg ); +HYPRE_Int HYPRE_BoomerAMGSetGSMG_dbl ( HYPRE_Solver solver, HYPRE_Int gsmg ); +HYPRE_Int HYPRE_BoomerAMGSetGSMG_long_dbl ( HYPRE_Solver solver, HYPRE_Int gsmg ); +HYPRE_Int HYPRE_BoomerAMGSetILUDroptol_flt ( HYPRE_Solver solver, hypre_float ilu_droptol); +HYPRE_Int HYPRE_BoomerAMGSetILUDroptol_dbl ( HYPRE_Solver solver, hypre_double ilu_droptol); +HYPRE_Int HYPRE_BoomerAMGSetILUDroptol_long_dbl ( HYPRE_Solver solver, hypre_long_double ilu_droptol); +HYPRE_Int HYPRE_BoomerAMGSetILULevel_flt ( HYPRE_Solver solver, HYPRE_Int ilu_lfil); +HYPRE_Int HYPRE_BoomerAMGSetILULevel_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_lfil); +HYPRE_Int HYPRE_BoomerAMGSetILULevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_lfil); +HYPRE_Int HYPRE_BoomerAMGSetILULocalReordering_flt ( HYPRE_Solver solver, HYPRE_Int ilu_reordering_type); +HYPRE_Int HYPRE_BoomerAMGSetILULocalReordering_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_reordering_type); +HYPRE_Int HYPRE_BoomerAMGSetILULocalReordering_long_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_reordering_type); +HYPRE_Int HYPRE_BoomerAMGSetILULowerJacobiIters_flt ( HYPRE_Solver solver, + HYPRE_Int ilu_lower_jacobi_iters); +HYPRE_Int HYPRE_BoomerAMGSetILULowerJacobiIters_dbl ( HYPRE_Solver solver, + HYPRE_Int ilu_lower_jacobi_iters); +HYPRE_Int HYPRE_BoomerAMGSetILULowerJacobiIters_long_dbl ( HYPRE_Solver solver, + HYPRE_Int ilu_lower_jacobi_iters); +HYPRE_Int HYPRE_BoomerAMGSetILUMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int ilu_max_iter); +HYPRE_Int HYPRE_BoomerAMGSetILUMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_max_iter); +HYPRE_Int HYPRE_BoomerAMGSetILUMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_max_iter); +HYPRE_Int HYPRE_BoomerAMGSetILUMaxRowNnz_flt ( HYPRE_Solver solver, HYPRE_Int ilu_max_row_nnz); +HYPRE_Int HYPRE_BoomerAMGSetILUMaxRowNnz_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_max_row_nnz); +HYPRE_Int HYPRE_BoomerAMGSetILUMaxRowNnz_long_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_max_row_nnz); +HYPRE_Int HYPRE_BoomerAMGSetILUTriSolve_flt ( HYPRE_Solver solver, HYPRE_Int ilu_tri_solve); +HYPRE_Int HYPRE_BoomerAMGSetILUTriSolve_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_tri_solve); +HYPRE_Int HYPRE_BoomerAMGSetILUTriSolve_long_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_tri_solve); +HYPRE_Int HYPRE_BoomerAMGSetILUType_flt ( HYPRE_Solver solver, HYPRE_Int ilu_type); +HYPRE_Int HYPRE_BoomerAMGSetILUType_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_type); +HYPRE_Int HYPRE_BoomerAMGSetILUType_long_dbl ( HYPRE_Solver solver, HYPRE_Int ilu_type); +HYPRE_Int HYPRE_BoomerAMGSetILUUpperJacobiIters_flt ( HYPRE_Solver solver, + HYPRE_Int ilu_upper_jacobi_iters); +HYPRE_Int HYPRE_BoomerAMGSetILUUpperJacobiIters_dbl ( HYPRE_Solver solver, + HYPRE_Int ilu_upper_jacobi_iters); +HYPRE_Int HYPRE_BoomerAMGSetILUUpperJacobiIters_long_dbl ( HYPRE_Solver solver, + HYPRE_Int ilu_upper_jacobi_iters); +HYPRE_Int HYPRE_BoomerAMGSetInterpRefine_flt ( HYPRE_Solver solver, HYPRE_Int num_refine ); +HYPRE_Int HYPRE_BoomerAMGSetInterpRefine_dbl ( HYPRE_Solver solver, HYPRE_Int num_refine ); +HYPRE_Int HYPRE_BoomerAMGSetInterpRefine_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_refine ); +HYPRE_Int HYPRE_BoomerAMGSetInterpType_flt ( HYPRE_Solver solver, HYPRE_Int interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetInterpType_dbl ( HYPRE_Solver solver, HYPRE_Int interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetInterpType_long_dbl ( HYPRE_Solver solver, HYPRE_Int interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecAbsQTrunc_flt ( HYPRE_Solver solver, hypre_float q_trunc ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecAbsQTrunc_dbl ( HYPRE_Solver solver, hypre_double q_trunc ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecAbsQTrunc_long_dbl ( HYPRE_Solver solver, hypre_long_double q_trunc ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecFirstLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecFirstLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecFirstLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecQMax_flt ( HYPRE_Solver solver, HYPRE_Int q_max ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecQMax_dbl ( HYPRE_Solver solver, HYPRE_Int q_max ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecQMax_long_dbl ( HYPRE_Solver solver, HYPRE_Int q_max ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVectors_flt ( HYPRE_Solver solver, HYPRE_Int num_vectors, + HYPRE_ParVector *vectors ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVectors_dbl ( HYPRE_Solver solver, HYPRE_Int num_vectors, + HYPRE_ParVector *vectors ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVectors_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_vectors, + HYPRE_ParVector *vectors ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecVariant_flt ( HYPRE_Solver solver, HYPRE_Int num ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecVariant_dbl ( HYPRE_Solver solver, HYPRE_Int num ); +HYPRE_Int HYPRE_BoomerAMGSetInterpVecVariant_long_dbl ( HYPRE_Solver solver, HYPRE_Int num ); +HYPRE_Int HYPRE_BoomerAMGSetIsolatedFPoints_flt ( HYPRE_Solver solver, HYPRE_Int num_isolated_fpt, + HYPRE_BigInt *isolated_fpt_index ); +HYPRE_Int HYPRE_BoomerAMGSetIsolatedFPoints_dbl ( HYPRE_Solver solver, HYPRE_Int num_isolated_fpt, + HYPRE_BigInt *isolated_fpt_index ); +HYPRE_Int HYPRE_BoomerAMGSetIsolatedFPoints_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_isolated_fpt, + HYPRE_BigInt *isolated_fpt_index ); +HYPRE_Int HYPRE_BoomerAMGSetIsTriangular_flt ( HYPRE_Solver solver, HYPRE_Int is_triangular ); +HYPRE_Int HYPRE_BoomerAMGSetIsTriangular_dbl ( HYPRE_Solver solver, HYPRE_Int is_triangular ); +HYPRE_Int HYPRE_BoomerAMGSetIsTriangular_long_dbl ( HYPRE_Solver solver, HYPRE_Int is_triangular ); +HYPRE_Int HYPRE_BoomerAMGSetISType_flt ( HYPRE_Solver solver, HYPRE_Int IS_type ); +HYPRE_Int HYPRE_BoomerAMGSetISType_dbl ( HYPRE_Solver solver, HYPRE_Int IS_type ); +HYPRE_Int HYPRE_BoomerAMGSetISType_long_dbl ( HYPRE_Solver solver, HYPRE_Int IS_type ); +HYPRE_Int HYPRE_BoomerAMGSetJacobiTruncThreshold_flt ( HYPRE_Solver solver, + hypre_float jacobi_trunc_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetJacobiTruncThreshold_dbl ( HYPRE_Solver solver, + hypre_double jacobi_trunc_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetJacobiTruncThreshold_long_dbl ( HYPRE_Solver solver, + hypre_long_double jacobi_trunc_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetKeepSameSign_flt ( HYPRE_Solver solver, HYPRE_Int keep_same_sign ); +HYPRE_Int HYPRE_BoomerAMGSetKeepSameSign_dbl ( HYPRE_Solver solver, HYPRE_Int keep_same_sign ); +HYPRE_Int HYPRE_BoomerAMGSetKeepSameSign_long_dbl ( HYPRE_Solver solver, HYPRE_Int keep_same_sign ); +HYPRE_Int HYPRE_BoomerAMGSetKeepTranspose_flt ( HYPRE_Solver solver, HYPRE_Int keepTranspose ); +HYPRE_Int HYPRE_BoomerAMGSetKeepTranspose_dbl ( HYPRE_Solver solver, HYPRE_Int keepTranspose ); +HYPRE_Int HYPRE_BoomerAMGSetKeepTranspose_long_dbl ( HYPRE_Solver solver, HYPRE_Int keepTranspose ); +HYPRE_Int HYPRE_BoomerAMGSetLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelNonGalerkinTol_flt ( HYPRE_Solver solver, hypre_float nongalerkin_tol, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelNonGalerkinTol_dbl ( HYPRE_Solver solver, hypre_double nongalerkin_tol, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelNonGalerkinTol_long_dbl ( HYPRE_Solver solver, hypre_long_double nongalerkin_tol, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelOuterWt_flt ( HYPRE_Solver solver, hypre_float outer_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelOuterWt_dbl ( HYPRE_Solver solver, hypre_double outer_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelOuterWt_long_dbl ( HYPRE_Solver solver, hypre_long_double outer_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelRelaxWt_flt ( HYPRE_Solver solver, hypre_float relax_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelRelaxWt_dbl ( HYPRE_Solver solver, hypre_double relax_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLevelRelaxWt_long_dbl ( HYPRE_Solver solver, hypre_long_double relax_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_BoomerAMGSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_BoomerAMGSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_BoomerAMGSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_BoomerAMGSetMaxCoarseSize_flt ( HYPRE_Solver solver, HYPRE_Int max_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGSetMaxCoarseSize_dbl ( HYPRE_Solver solver, HYPRE_Int max_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGSetMaxCoarseSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_BoomerAMGSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_BoomerAMGSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_BoomerAMGSetMaxLevels_flt ( HYPRE_Solver solver, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_BoomerAMGSetMaxLevels_dbl ( HYPRE_Solver solver, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_BoomerAMGSetMaxLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_BoomerAMGSetMaxNzPerRow_flt ( HYPRE_Solver solver, HYPRE_Int max_nz_per_row ); +HYPRE_Int HYPRE_BoomerAMGSetMaxNzPerRow_dbl ( HYPRE_Solver solver, HYPRE_Int max_nz_per_row ); +HYPRE_Int HYPRE_BoomerAMGSetMaxNzPerRow_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_nz_per_row ); +HYPRE_Int HYPRE_BoomerAMGSetMaxRowSum_flt ( HYPRE_Solver solver, hypre_float max_row_sum ); +HYPRE_Int HYPRE_BoomerAMGSetMaxRowSum_dbl ( HYPRE_Solver solver, hypre_double max_row_sum ); +HYPRE_Int HYPRE_BoomerAMGSetMaxRowSum_long_dbl ( HYPRE_Solver solver, hypre_long_double max_row_sum ); +HYPRE_Int HYPRE_BoomerAMGSetMeasureType_flt ( HYPRE_Solver solver, HYPRE_Int measure_type ); +HYPRE_Int HYPRE_BoomerAMGSetMeasureType_dbl ( HYPRE_Solver solver, HYPRE_Int measure_type ); +HYPRE_Int HYPRE_BoomerAMGSetMeasureType_long_dbl ( HYPRE_Solver solver, HYPRE_Int measure_type ); +HYPRE_Int HYPRE_BoomerAMGSetMinCoarseSize_flt ( HYPRE_Solver solver, HYPRE_Int min_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGSetMinCoarseSize_dbl ( HYPRE_Solver solver, HYPRE_Int min_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGSetMinCoarseSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_coarse_size ); +HYPRE_Int HYPRE_BoomerAMGSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_BoomerAMGSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_BoomerAMGSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_BoomerAMGSetModuleRAP2_flt ( HYPRE_Solver solver, HYPRE_Int mod_rap2 ); +HYPRE_Int HYPRE_BoomerAMGSetModuleRAP2_dbl ( HYPRE_Solver solver, HYPRE_Int mod_rap2 ); +HYPRE_Int HYPRE_BoomerAMGSetModuleRAP2_long_dbl ( HYPRE_Solver solver, HYPRE_Int mod_rap2 ); +HYPRE_Int HYPRE_BoomerAMGSetMultAdditive_flt ( HYPRE_Solver solver, HYPRE_Int mult_additive ); +HYPRE_Int HYPRE_BoomerAMGSetMultAdditive_dbl ( HYPRE_Solver solver, HYPRE_Int mult_additive ); +HYPRE_Int HYPRE_BoomerAMGSetMultAdditive_long_dbl ( HYPRE_Solver solver, HYPRE_Int mult_additive ); +HYPRE_Int HYPRE_BoomerAMGSetMultAddPMaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int add_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetMultAddPMaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int add_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetMultAddPMaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int add_P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetMultAddTruncFactor_flt ( HYPRE_Solver solver, hypre_float add_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetMultAddTruncFactor_dbl ( HYPRE_Solver solver, hypre_double add_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetMultAddTruncFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double add_trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetNodal_flt ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_BoomerAMGSetNodal_dbl ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_BoomerAMGSetNodal_long_dbl ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_BoomerAMGSetNodalDiag_flt ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_BoomerAMGSetNodalDiag_dbl ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_BoomerAMGSetNodalDiag_long_dbl ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_BoomerAMGSetNodalLevels_flt ( HYPRE_Solver solver, HYPRE_Int nodal_levels ); +HYPRE_Int HYPRE_BoomerAMGSetNodalLevels_dbl ( HYPRE_Solver solver, HYPRE_Int nodal_levels ); +HYPRE_Int HYPRE_BoomerAMGSetNodalLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int nodal_levels ); +HYPRE_Int HYPRE_BoomerAMGSetNonGalerkinTol_flt ( HYPRE_Solver solver, hypre_float nongalerkin_tol ); +HYPRE_Int HYPRE_BoomerAMGSetNonGalerkinTol_dbl ( HYPRE_Solver solver, hypre_double nongalerkin_tol ); +HYPRE_Int HYPRE_BoomerAMGSetNonGalerkinTol_long_dbl ( HYPRE_Solver solver, hypre_long_double nongalerkin_tol ); +HYPRE_Int HYPRE_BoomerAMGSetNonGalerkTol_flt ( HYPRE_Solver solver, HYPRE_Int nongalerk_num_tol, + hypre_float *nongalerk_tol ); +HYPRE_Int HYPRE_BoomerAMGSetNonGalerkTol_dbl ( HYPRE_Solver solver, HYPRE_Int nongalerk_num_tol, + hypre_double *nongalerk_tol ); +HYPRE_Int HYPRE_BoomerAMGSetNonGalerkTol_long_dbl ( HYPRE_Solver solver, HYPRE_Int nongalerk_num_tol, + hypre_long_double *nongalerk_tol ); +HYPRE_Int HYPRE_BoomerAMGSetNumCRRelaxSteps_flt ( HYPRE_Solver solver, HYPRE_Int num_CR_relax_steps ); +HYPRE_Int HYPRE_BoomerAMGSetNumCRRelaxSteps_dbl ( HYPRE_Solver solver, HYPRE_Int num_CR_relax_steps ); +HYPRE_Int HYPRE_BoomerAMGSetNumCRRelaxSteps_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_CR_relax_steps ); +HYPRE_Int HYPRE_BoomerAMGSetNumFunctions_flt ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_BoomerAMGSetNumFunctions_dbl ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_BoomerAMGSetNumFunctions_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_BoomerAMGSetNumGridSweeps_flt ( HYPRE_Solver solver, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetNumGridSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetNumGridSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetNumPaths_flt ( HYPRE_Solver solver, HYPRE_Int num_paths ); +HYPRE_Int HYPRE_BoomerAMGSetNumPaths_dbl ( HYPRE_Solver solver, HYPRE_Int num_paths ); +HYPRE_Int HYPRE_BoomerAMGSetNumPaths_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_paths ); +HYPRE_Int HYPRE_BoomerAMGSetNumSamples_flt ( HYPRE_Solver solver, HYPRE_Int gsmg ); +HYPRE_Int HYPRE_BoomerAMGSetNumSamples_dbl ( HYPRE_Solver solver, HYPRE_Int gsmg ); +HYPRE_Int HYPRE_BoomerAMGSetNumSamples_long_dbl ( HYPRE_Solver solver, HYPRE_Int gsmg ); +HYPRE_Int HYPRE_BoomerAMGSetNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetOldDefault_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BoomerAMGSetOldDefault_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BoomerAMGSetOldDefault_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BoomerAMGSetOmega_flt ( HYPRE_Solver solver, hypre_float *omega ); +HYPRE_Int HYPRE_BoomerAMGSetOmega_dbl ( HYPRE_Solver solver, hypre_double *omega ); +HYPRE_Int HYPRE_BoomerAMGSetOmega_long_dbl ( HYPRE_Solver solver, hypre_long_double *omega ); +HYPRE_Int HYPRE_BoomerAMGSetOuterWt_flt ( HYPRE_Solver solver, hypre_float outer_wt ); +HYPRE_Int HYPRE_BoomerAMGSetOuterWt_dbl ( HYPRE_Solver solver, hypre_double outer_wt ); +HYPRE_Int HYPRE_BoomerAMGSetOuterWt_long_dbl ( HYPRE_Solver solver, hypre_long_double outer_wt ); +HYPRE_Int HYPRE_BoomerAMGSetOverlap_flt ( HYPRE_Solver solver, HYPRE_Int overlap ); +HYPRE_Int HYPRE_BoomerAMGSetOverlap_dbl ( HYPRE_Solver solver, HYPRE_Int overlap ); +HYPRE_Int HYPRE_BoomerAMGSetOverlap_long_dbl ( HYPRE_Solver solver, HYPRE_Int overlap ); +HYPRE_Int HYPRE_BoomerAMGSetPlotFileName_flt ( HYPRE_Solver solver, const char *plotfilename ); +HYPRE_Int HYPRE_BoomerAMGSetPlotFileName_dbl ( HYPRE_Solver solver, const char *plotfilename ); +HYPRE_Int HYPRE_BoomerAMGSetPlotFileName_long_dbl ( HYPRE_Solver solver, const char *plotfilename ); +HYPRE_Int HYPRE_BoomerAMGSetPlotGrids_flt ( HYPRE_Solver solver, HYPRE_Int plotgrids ); +HYPRE_Int HYPRE_BoomerAMGSetPlotGrids_dbl ( HYPRE_Solver solver, HYPRE_Int plotgrids ); +HYPRE_Int HYPRE_BoomerAMGSetPlotGrids_long_dbl ( HYPRE_Solver solver, HYPRE_Int plotgrids ); +HYPRE_Int HYPRE_BoomerAMGSetPMaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetPMaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetPMaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int P_max_elmts ); +HYPRE_Int HYPRE_BoomerAMGSetPostInterpType_flt ( HYPRE_Solver solver, HYPRE_Int post_interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetPostInterpType_dbl ( HYPRE_Solver solver, HYPRE_Int post_interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetPostInterpType_long_dbl ( HYPRE_Solver solver, HYPRE_Int post_interp_type ); +HYPRE_Int HYPRE_BoomerAMGSetPrintFileName_flt ( HYPRE_Solver solver, const char *print_file_name ); +HYPRE_Int HYPRE_BoomerAMGSetPrintFileName_dbl ( HYPRE_Solver solver, const char *print_file_name ); +HYPRE_Int HYPRE_BoomerAMGSetPrintFileName_long_dbl ( HYPRE_Solver solver, const char *print_file_name ); +HYPRE_Int HYPRE_BoomerAMGSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BoomerAMGSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BoomerAMGSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BoomerAMGSetRAP2_flt ( HYPRE_Solver solver, HYPRE_Int rap2 ); +HYPRE_Int HYPRE_BoomerAMGSetRAP2_dbl ( HYPRE_Solver solver, HYPRE_Int rap2 ); +HYPRE_Int HYPRE_BoomerAMGSetRAP2_long_dbl ( HYPRE_Solver solver, HYPRE_Int rap2 ); +HYPRE_Int HYPRE_BoomerAMGSetRedundant_flt ( HYPRE_Solver solver, HYPRE_Int redundant ); +HYPRE_Int HYPRE_BoomerAMGSetRedundant_dbl ( HYPRE_Solver solver, HYPRE_Int redundant ); +HYPRE_Int HYPRE_BoomerAMGSetRedundant_long_dbl ( HYPRE_Solver solver, HYPRE_Int redundant ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxOrder_flt ( HYPRE_Solver solver, HYPRE_Int relax_order ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxOrder_dbl ( HYPRE_Solver solver, HYPRE_Int relax_order ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxOrder_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_order ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxWeight_flt ( HYPRE_Solver solver, hypre_float *relax_weight ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxWeight_dbl ( HYPRE_Solver solver, hypre_double *relax_weight ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxWeight_long_dbl ( HYPRE_Solver solver, hypre_long_double *relax_weight ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxWt_flt ( HYPRE_Solver solver, hypre_float relax_wt ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxWt_dbl ( HYPRE_Solver solver, hypre_double relax_wt ); +HYPRE_Int HYPRE_BoomerAMGSetRelaxWt_long_dbl ( HYPRE_Solver solver, hypre_long_double relax_wt ); +HYPRE_Int HYPRE_BoomerAMGSetRestriction_flt ( HYPRE_Solver solver, HYPRE_Int restr_par ); +HYPRE_Int HYPRE_BoomerAMGSetRestriction_dbl ( HYPRE_Solver solver, HYPRE_Int restr_par ); +HYPRE_Int HYPRE_BoomerAMGSetRestriction_long_dbl ( HYPRE_Solver solver, HYPRE_Int restr_par ); +HYPRE_Int HYPRE_BoomerAMGSetSabs_flt ( HYPRE_Solver solver, HYPRE_Int Sabs ); +HYPRE_Int HYPRE_BoomerAMGSetSabs_dbl ( HYPRE_Solver solver, HYPRE_Int Sabs ); +HYPRE_Int HYPRE_BoomerAMGSetSabs_long_dbl ( HYPRE_Solver solver, HYPRE_Int Sabs ); +HYPRE_Int HYPRE_BoomerAMGSetSchwarzRlxWeight_flt ( HYPRE_Solver solver, hypre_float schwarz_rlx_weight ); +HYPRE_Int HYPRE_BoomerAMGSetSchwarzRlxWeight_dbl ( HYPRE_Solver solver, hypre_double schwarz_rlx_weight ); +HYPRE_Int HYPRE_BoomerAMGSetSchwarzRlxWeight_long_dbl ( HYPRE_Solver solver, hypre_long_double schwarz_rlx_weight ); +HYPRE_Int HYPRE_BoomerAMGSetSchwarzUseNonSymm_flt ( HYPRE_Solver solver, HYPRE_Int use_nonsymm ); +HYPRE_Int HYPRE_BoomerAMGSetSchwarzUseNonSymm_dbl ( HYPRE_Solver solver, HYPRE_Int use_nonsymm ); +HYPRE_Int HYPRE_BoomerAMGSetSchwarzUseNonSymm_long_dbl ( HYPRE_Solver solver, HYPRE_Int use_nonsymm ); +HYPRE_Int HYPRE_BoomerAMGSetSCommPkgSwitch_flt ( HYPRE_Solver solver, hypre_float S_commpkg_switch ); +HYPRE_Int HYPRE_BoomerAMGSetSCommPkgSwitch_dbl ( HYPRE_Solver solver, hypre_double S_commpkg_switch ); +HYPRE_Int HYPRE_BoomerAMGSetSCommPkgSwitch_long_dbl ( HYPRE_Solver solver, hypre_long_double S_commpkg_switch ); +HYPRE_Int HYPRE_BoomerAMGSetSepWeight_flt ( HYPRE_Solver solver, HYPRE_Int sep_weight ); +HYPRE_Int HYPRE_BoomerAMGSetSepWeight_dbl ( HYPRE_Solver solver, HYPRE_Int sep_weight ); +HYPRE_Int HYPRE_BoomerAMGSetSepWeight_long_dbl ( HYPRE_Solver solver, HYPRE_Int sep_weight ); +HYPRE_Int HYPRE_BoomerAMGSetSeqThreshold_flt ( HYPRE_Solver solver, HYPRE_Int seq_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetSeqThreshold_dbl ( HYPRE_Solver solver, HYPRE_Int seq_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetSeqThreshold_long_dbl ( HYPRE_Solver solver, HYPRE_Int seq_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetSetupType_flt ( HYPRE_Solver solver, HYPRE_Int setup_type ); +HYPRE_Int HYPRE_BoomerAMGSetSetupType_dbl ( HYPRE_Solver solver, HYPRE_Int setup_type ); +HYPRE_Int HYPRE_BoomerAMGSetSetupType_long_dbl ( HYPRE_Solver solver, HYPRE_Int setup_type ); +HYPRE_Int HYPRE_BoomerAMGSetSimple_flt ( HYPRE_Solver solver, HYPRE_Int simple ); +HYPRE_Int HYPRE_BoomerAMGSetSimple_dbl ( HYPRE_Solver solver, HYPRE_Int simple ); +HYPRE_Int HYPRE_BoomerAMGSetSimple_long_dbl ( HYPRE_Solver solver, HYPRE_Int simple ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothInterpVectors_flt ( HYPRE_Solver solver, + HYPRE_Int smooth_interp_vectors ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothInterpVectors_dbl ( HYPRE_Solver solver, + HYPRE_Int smooth_interp_vectors ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothInterpVectors_long_dbl ( HYPRE_Solver solver, + HYPRE_Int smooth_interp_vectors ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothNumLevels_flt ( HYPRE_Solver solver, HYPRE_Int smooth_num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothNumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int smooth_num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothNumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int smooth_num_levels ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int smooth_num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int smooth_num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int smooth_num_sweeps ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothType_flt ( HYPRE_Solver solver, HYPRE_Int smooth_type ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothType_dbl ( HYPRE_Solver solver, HYPRE_Int smooth_type ); +HYPRE_Int HYPRE_BoomerAMGSetSmoothType_long_dbl ( HYPRE_Solver solver, HYPRE_Int smooth_type ); +HYPRE_Int HYPRE_BoomerAMGSetStrongThreshold_flt ( HYPRE_Solver solver, hypre_float strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetStrongThreshold_dbl ( HYPRE_Solver solver, hypre_double strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetStrongThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetStrongThresholdR_flt ( HYPRE_Solver solver, hypre_float strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetStrongThresholdR_dbl ( HYPRE_Solver solver, hypre_double strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetStrongThresholdR_long_dbl ( HYPRE_Solver solver, hypre_long_double strong_threshold ); +HYPRE_Int HYPRE_BoomerAMGSetSym_flt ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_BoomerAMGSetSym_dbl ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_BoomerAMGSetSym_long_dbl ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_BoomerAMGSetThreshold_flt ( HYPRE_Solver solver, hypre_float threshold ); +HYPRE_Int HYPRE_BoomerAMGSetThreshold_dbl ( HYPRE_Solver solver, hypre_double threshold ); +HYPRE_Int HYPRE_BoomerAMGSetThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double threshold ); +HYPRE_Int HYPRE_BoomerAMGSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_BoomerAMGSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_BoomerAMGSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_BoomerAMGSetTruncFactor_flt ( HYPRE_Solver solver, hypre_float trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetTruncFactor_dbl ( HYPRE_Solver solver, hypre_double trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetTruncFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double trunc_factor ); +HYPRE_Int HYPRE_BoomerAMGSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSetVariant_flt ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_BoomerAMGSetVariant_dbl ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_BoomerAMGSetVariant_long_dbl ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_BoomerAMGSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSolveT_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSolveT_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BoomerAMGSolveT_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRBiCGSTABCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, + hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, + hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, + hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRBiCGSTABGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRBiCGSTABSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BlockTridiagCreate_flt ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_BlockTridiagCreate_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_BlockTridiagCreate_long_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_BlockTridiagDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BlockTridiagDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BlockTridiagDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_BlockTridiagSetAMGNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_BlockTridiagSetAMGNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_BlockTridiagSetAMGNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_BlockTridiagSetAMGRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_BlockTridiagSetAMGRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_BlockTridiagSetAMGRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_BlockTridiagSetAMGStrengthThreshold_flt ( HYPRE_Solver solver, hypre_float thresh ); +HYPRE_Int HYPRE_BlockTridiagSetAMGStrengthThreshold_dbl ( HYPRE_Solver solver, hypre_double thresh ); +HYPRE_Int HYPRE_BlockTridiagSetAMGStrengthThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double thresh ); +HYPRE_Int HYPRE_BlockTridiagSetIndexSet_flt ( HYPRE_Solver solver, HYPRE_Int n, HYPRE_Int *inds ); +HYPRE_Int HYPRE_BlockTridiagSetIndexSet_dbl ( HYPRE_Solver solver, HYPRE_Int n, HYPRE_Int *inds ); +HYPRE_Int HYPRE_BlockTridiagSetIndexSet_long_dbl ( HYPRE_Solver solver, HYPRE_Int n, HYPRE_Int *inds ); +HYPRE_Int HYPRE_BlockTridiagSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BlockTridiagSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BlockTridiagSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_BlockTridiagSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BlockTridiagSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BlockTridiagSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BlockTridiagSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BlockTridiagSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_BlockTridiagSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCGNRCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRCGNRCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRCGNRCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRCGNRDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRCGNRDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRCGNRDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRCGNRGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRCGNRGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRCGNRGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRCGNRGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRCGNRGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRCGNRGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRCGNRSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRCGNRSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRCGNRSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRCGNRSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRCGNRSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRCGNRSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRCGNRSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRCGNRSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRCGNRSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRCGNRSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precondT, HYPRE_PtrToParSolverFcn precond_setup, + HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRCGNRSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precondT, HYPRE_PtrToParSolverFcn precond_setup, + HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRCGNRSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precondT, HYPRE_PtrToParSolverFcn precond_setup, + HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRCGNRSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRCGNRSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRCGNRSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRCGNRSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRCGNRSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRCGNRSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRCGNRSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCGNRSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCGNRSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCGNRSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCGNRSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCGNRSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCOGMRESCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRCOGMRESGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCOGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCOGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCOGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRCOGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_EuclidCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_EuclidCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_EuclidCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_EuclidDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_EuclidDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_EuclidDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_EuclidSetBJ_flt ( HYPRE_Solver solver, HYPRE_Int bj ); +HYPRE_Int HYPRE_EuclidSetBJ_dbl ( HYPRE_Solver solver, HYPRE_Int bj ); +HYPRE_Int HYPRE_EuclidSetBJ_long_dbl ( HYPRE_Solver solver, HYPRE_Int bj ); +HYPRE_Int HYPRE_EuclidSetILUT_flt ( HYPRE_Solver solver, hypre_float ilut ); +HYPRE_Int HYPRE_EuclidSetILUT_dbl ( HYPRE_Solver solver, hypre_double ilut ); +HYPRE_Int HYPRE_EuclidSetILUT_long_dbl ( HYPRE_Solver solver, hypre_long_double ilut ); +HYPRE_Int HYPRE_EuclidSetLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_EuclidSetLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_EuclidSetLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_EuclidSetMem_flt ( HYPRE_Solver solver, HYPRE_Int eu_mem ); +HYPRE_Int HYPRE_EuclidSetMem_dbl ( HYPRE_Solver solver, HYPRE_Int eu_mem ); +HYPRE_Int HYPRE_EuclidSetMem_long_dbl ( HYPRE_Solver solver, HYPRE_Int eu_mem ); +HYPRE_Int HYPRE_EuclidSetParams_flt ( HYPRE_Solver solver, HYPRE_Int argc, char *argv []); +HYPRE_Int HYPRE_EuclidSetParams_dbl ( HYPRE_Solver solver, HYPRE_Int argc, char *argv []); +HYPRE_Int HYPRE_EuclidSetParams_long_dbl ( HYPRE_Solver solver, HYPRE_Int argc, char *argv []); +HYPRE_Int HYPRE_EuclidSetParamsFromFile_flt ( HYPRE_Solver solver, char *filename ); +HYPRE_Int HYPRE_EuclidSetParamsFromFile_dbl ( HYPRE_Solver solver, char *filename ); +HYPRE_Int HYPRE_EuclidSetParamsFromFile_long_dbl ( HYPRE_Solver solver, char *filename ); +HYPRE_Int HYPRE_EuclidSetRowScale_flt ( HYPRE_Solver solver, HYPRE_Int row_scale ); +HYPRE_Int HYPRE_EuclidSetRowScale_dbl ( HYPRE_Solver solver, HYPRE_Int row_scale ); +HYPRE_Int HYPRE_EuclidSetRowScale_long_dbl ( HYPRE_Solver solver, HYPRE_Int row_scale ); +HYPRE_Int HYPRE_EuclidSetSparseA_flt ( HYPRE_Solver solver, hypre_float sparse_A ); +HYPRE_Int HYPRE_EuclidSetSparseA_dbl ( HYPRE_Solver solver, hypre_double sparse_A ); +HYPRE_Int HYPRE_EuclidSetSparseA_long_dbl ( HYPRE_Solver solver, hypre_long_double sparse_A ); +HYPRE_Int HYPRE_EuclidSetStats_flt ( HYPRE_Solver solver, HYPRE_Int eu_stats ); +HYPRE_Int HYPRE_EuclidSetStats_dbl ( HYPRE_Solver solver, HYPRE_Int eu_stats ); +HYPRE_Int HYPRE_EuclidSetStats_long_dbl ( HYPRE_Solver solver, HYPRE_Int eu_stats ); +HYPRE_Int HYPRE_EuclidSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_EuclidSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_EuclidSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_EuclidSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector bb, + HYPRE_ParVector xx ); +HYPRE_Int HYPRE_EuclidSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector bb, + HYPRE_ParVector xx ); +HYPRE_Int HYPRE_EuclidSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector bb, + HYPRE_ParVector xx ); +HYPRE_Int HYPRE_ParCSRFlexGMRESCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, + hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, + hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, + hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRFlexGMRESGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetModifyPC_flt ( HYPRE_Solver solver, + HYPRE_PtrToModifyPCFcn modify_pc ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetModifyPC_dbl ( HYPRE_Solver solver, + HYPRE_PtrToModifyPCFcn modify_pc ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetModifyPC_long_dbl ( HYPRE_Solver solver, + HYPRE_PtrToModifyPCFcn modify_pc ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRFlexGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_FSAICreate_flt ( HYPRE_Solver *solver); +HYPRE_Int HYPRE_FSAICreate_dbl ( HYPRE_Solver *solver); +HYPRE_Int HYPRE_FSAICreate_long_dbl ( HYPRE_Solver *solver); +HYPRE_Int HYPRE_FSAIDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_FSAIDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_FSAIDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_FSAIGetAlgoType_flt ( HYPRE_Solver solver, HYPRE_Int *algo_type ); +HYPRE_Int HYPRE_FSAIGetAlgoType_dbl ( HYPRE_Solver solver, HYPRE_Int *algo_type ); +HYPRE_Int HYPRE_FSAIGetAlgoType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *algo_type ); +HYPRE_Int HYPRE_FSAIGetEigMaxIters_flt ( HYPRE_Solver solver, HYPRE_Int *eig_max_iters ); +HYPRE_Int HYPRE_FSAIGetEigMaxIters_dbl ( HYPRE_Solver solver, HYPRE_Int *eig_max_iters ); +HYPRE_Int HYPRE_FSAIGetEigMaxIters_long_dbl ( HYPRE_Solver solver, HYPRE_Int *eig_max_iters ); +HYPRE_Int HYPRE_FSAIGetKapTolerance_flt ( HYPRE_Solver solver, hypre_float *kap_tolerance ); +HYPRE_Int HYPRE_FSAIGetKapTolerance_dbl ( HYPRE_Solver solver, hypre_double *kap_tolerance ); +HYPRE_Int HYPRE_FSAIGetKapTolerance_long_dbl ( HYPRE_Solver solver, hypre_long_double *kap_tolerance ); +HYPRE_Int HYPRE_FSAIGetLocalSolveType_flt ( HYPRE_Solver solver, HYPRE_Int *local_solve_type ); +HYPRE_Int HYPRE_FSAIGetLocalSolveType_dbl ( HYPRE_Solver solver, HYPRE_Int *local_solve_type ); +HYPRE_Int HYPRE_FSAIGetLocalSolveType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *local_solve_type ); +HYPRE_Int HYPRE_FSAIGetMaxIterations_flt ( HYPRE_Solver solver, HYPRE_Int *max_iterations ); +HYPRE_Int HYPRE_FSAIGetMaxIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iterations ); +HYPRE_Int HYPRE_FSAIGetMaxIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_iterations ); +HYPRE_Int HYPRE_FSAIGetMaxNnzRow_flt ( HYPRE_Solver solver, HYPRE_Int *max_nnz_row ); +HYPRE_Int HYPRE_FSAIGetMaxNnzRow_dbl ( HYPRE_Solver solver, HYPRE_Int *max_nnz_row ); +HYPRE_Int HYPRE_FSAIGetMaxNnzRow_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_nnz_row ); +HYPRE_Int HYPRE_FSAIGetMaxSteps_flt ( HYPRE_Solver solver, HYPRE_Int *max_steps ); +HYPRE_Int HYPRE_FSAIGetMaxSteps_dbl ( HYPRE_Solver solver, HYPRE_Int *max_steps ); +HYPRE_Int HYPRE_FSAIGetMaxSteps_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_steps ); +HYPRE_Int HYPRE_FSAIGetMaxStepSize_flt ( HYPRE_Solver solver, HYPRE_Int *max_step_size ); +HYPRE_Int HYPRE_FSAIGetMaxStepSize_dbl ( HYPRE_Solver solver, HYPRE_Int *max_step_size ); +HYPRE_Int HYPRE_FSAIGetMaxStepSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int *max_step_size ); +HYPRE_Int HYPRE_FSAIGetNumLevels_flt ( HYPRE_Solver solver, HYPRE_Int *num_levels ); +HYPRE_Int HYPRE_FSAIGetNumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int *num_levels ); +HYPRE_Int HYPRE_FSAIGetNumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_levels ); +HYPRE_Int HYPRE_FSAIGetOmega_flt ( HYPRE_Solver solver, hypre_float *omega ); +HYPRE_Int HYPRE_FSAIGetOmega_dbl ( HYPRE_Solver solver, hypre_double *omega ); +HYPRE_Int HYPRE_FSAIGetOmega_long_dbl ( HYPRE_Solver solver, hypre_long_double *omega ); +HYPRE_Int HYPRE_FSAIGetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int *print_level ); +HYPRE_Int HYPRE_FSAIGetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int *print_level ); +HYPRE_Int HYPRE_FSAIGetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int *print_level ); +HYPRE_Int HYPRE_FSAIGetThreshold_flt ( HYPRE_Solver solver, hypre_float *threshold ); +HYPRE_Int HYPRE_FSAIGetThreshold_dbl ( HYPRE_Solver solver, hypre_double *threshold ); +HYPRE_Int HYPRE_FSAIGetThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double *threshold ); +HYPRE_Int HYPRE_FSAIGetTolerance_flt ( HYPRE_Solver solver, hypre_float *tolerance ); +HYPRE_Int HYPRE_FSAIGetTolerance_dbl ( HYPRE_Solver solver, hypre_double *tolerance ); +HYPRE_Int HYPRE_FSAIGetTolerance_long_dbl ( HYPRE_Solver solver, hypre_long_double *tolerance ); +HYPRE_Int HYPRE_FSAIGetZeroGuess_flt ( HYPRE_Solver solver, HYPRE_Int *zero_guess ); +HYPRE_Int HYPRE_FSAIGetZeroGuess_dbl ( HYPRE_Solver solver, HYPRE_Int *zero_guess ); +HYPRE_Int HYPRE_FSAIGetZeroGuess_long_dbl ( HYPRE_Solver solver, HYPRE_Int *zero_guess ); +HYPRE_Int HYPRE_FSAISetAlgoType_flt ( HYPRE_Solver solver, HYPRE_Int algo_type ); +HYPRE_Int HYPRE_FSAISetAlgoType_dbl ( HYPRE_Solver solver, HYPRE_Int algo_type ); +HYPRE_Int HYPRE_FSAISetAlgoType_long_dbl ( HYPRE_Solver solver, HYPRE_Int algo_type ); +HYPRE_Int HYPRE_FSAISetEigMaxIters_flt ( HYPRE_Solver solver, HYPRE_Int eig_max_iters ); +HYPRE_Int HYPRE_FSAISetEigMaxIters_dbl ( HYPRE_Solver solver, HYPRE_Int eig_max_iters ); +HYPRE_Int HYPRE_FSAISetEigMaxIters_long_dbl ( HYPRE_Solver solver, HYPRE_Int eig_max_iters ); +HYPRE_Int HYPRE_FSAISetKapTolerance_flt ( HYPRE_Solver solver, hypre_float kap_tolerance ); +HYPRE_Int HYPRE_FSAISetKapTolerance_dbl ( HYPRE_Solver solver, hypre_double kap_tolerance ); +HYPRE_Int HYPRE_FSAISetKapTolerance_long_dbl ( HYPRE_Solver solver, hypre_long_double kap_tolerance ); +HYPRE_Int HYPRE_FSAISetLocalSolveType_flt ( HYPRE_Solver solver, HYPRE_Int local_solve_type ); +HYPRE_Int HYPRE_FSAISetLocalSolveType_dbl ( HYPRE_Solver solver, HYPRE_Int local_solve_type ); +HYPRE_Int HYPRE_FSAISetLocalSolveType_long_dbl ( HYPRE_Solver solver, HYPRE_Int local_solve_type ); +HYPRE_Int HYPRE_FSAISetMaxIterations_flt ( HYPRE_Solver solver, HYPRE_Int max_iterations ); +HYPRE_Int HYPRE_FSAISetMaxIterations_dbl ( HYPRE_Solver solver, HYPRE_Int max_iterations ); +HYPRE_Int HYPRE_FSAISetMaxIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iterations ); +HYPRE_Int HYPRE_FSAISetMaxNnzRow_flt ( HYPRE_Solver solver, HYPRE_Int max_nnz_row ); +HYPRE_Int HYPRE_FSAISetMaxNnzRow_dbl ( HYPRE_Solver solver, HYPRE_Int max_nnz_row ); +HYPRE_Int HYPRE_FSAISetMaxNnzRow_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_nnz_row ); +HYPRE_Int HYPRE_FSAISetMaxSteps_flt ( HYPRE_Solver solver, HYPRE_Int max_steps ); +HYPRE_Int HYPRE_FSAISetMaxSteps_dbl ( HYPRE_Solver solver, HYPRE_Int max_steps ); +HYPRE_Int HYPRE_FSAISetMaxSteps_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_steps ); +HYPRE_Int HYPRE_FSAISetMaxStepSize_flt ( HYPRE_Solver solver, HYPRE_Int max_step_size ); +HYPRE_Int HYPRE_FSAISetMaxStepSize_dbl ( HYPRE_Solver solver, HYPRE_Int max_step_size ); +HYPRE_Int HYPRE_FSAISetMaxStepSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_step_size ); +HYPRE_Int HYPRE_FSAISetNumLevels_flt ( HYPRE_Solver solver, HYPRE_Int num_levels ); +HYPRE_Int HYPRE_FSAISetNumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int num_levels ); +HYPRE_Int HYPRE_FSAISetNumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_levels ); +HYPRE_Int HYPRE_FSAISetOmega_flt ( HYPRE_Solver solver, hypre_float omega ); +HYPRE_Int HYPRE_FSAISetOmega_dbl ( HYPRE_Solver solver, hypre_double omega ); +HYPRE_Int HYPRE_FSAISetOmega_long_dbl ( HYPRE_Solver solver, hypre_long_double omega ); +HYPRE_Int HYPRE_FSAISetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_FSAISetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_FSAISetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_FSAISetThreshold_flt ( HYPRE_Solver solver, hypre_float threshold ); +HYPRE_Int HYPRE_FSAISetThreshold_dbl ( HYPRE_Solver solver, hypre_double threshold ); +HYPRE_Int HYPRE_FSAISetThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double threshold ); +HYPRE_Int HYPRE_FSAISetTolerance_flt ( HYPRE_Solver solver, hypre_float tolerance ); +HYPRE_Int HYPRE_FSAISetTolerance_dbl ( HYPRE_Solver solver, hypre_double tolerance ); +HYPRE_Int HYPRE_FSAISetTolerance_long_dbl ( HYPRE_Solver solver, hypre_long_double tolerance ); +HYPRE_Int HYPRE_FSAISetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_FSAISetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_FSAISetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_FSAISetZeroGuess_flt ( HYPRE_Solver solver, HYPRE_Int zero_guess ); +HYPRE_Int HYPRE_FSAISetZeroGuess_dbl ( HYPRE_Solver solver, HYPRE_Int zero_guess ); +HYPRE_Int HYPRE_FSAISetZeroGuess_long_dbl ( HYPRE_Solver solver, HYPRE_Int zero_guess ); +HYPRE_Int HYPRE_FSAISolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_FSAISolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_FSAISolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRGMRESCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRGMRESCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRGMRESCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRGMRESDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRGMRESDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRGMRESDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRGMRESGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRGMRESGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRGMRESGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_ParCSRGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_ParCSRGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_ParCSRGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRGMRESSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRGMRESSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRGMRESSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSROnProcTriSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, + HYPRE_ParVector Hy, HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSROnProcTriSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, + HYPRE_ParVector Hy, HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSROnProcTriSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, + HYPRE_ParVector Hy, HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSROnProcTriSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, + HYPRE_ParVector Hy, HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSROnProcTriSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, + HYPRE_ParVector Hy, HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSROnProcTriSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, + HYPRE_ParVector Hy, HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSRHybridCreate_flt ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRHybridCreate_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRHybridCreate_long_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRHybridDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRHybridDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRHybridDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRHybridGetDSCGNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *dscg_num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetDSCGNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *dscg_num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetDSCGNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *dscg_num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRHybridGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRHybridGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRHybridGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetPCGNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *pcg_num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetPCGNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *pcg_num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetPCGNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *pcg_num_its ); +HYPRE_Int HYPRE_ParCSRHybridGetSetupSolveTime_flt ( HYPRE_Solver solver, hypre_float *time ); +HYPRE_Int HYPRE_ParCSRHybridGetSetupSolveTime_dbl ( HYPRE_Solver solver, hypre_double *time ); +HYPRE_Int HYPRE_ParCSRHybridGetSetupSolveTime_long_dbl ( HYPRE_Solver solver, hypre_long_double *time ); +HYPRE_Int HYPRE_ParCSRHybridSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRHybridSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRHybridSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRHybridSetAggNumLevels_flt ( HYPRE_Solver solver, HYPRE_Int agg_num_levels ); +HYPRE_Int HYPRE_ParCSRHybridSetAggNumLevels_dbl ( HYPRE_Solver solver, HYPRE_Int agg_num_levels ); +HYPRE_Int HYPRE_ParCSRHybridSetAggNumLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int agg_num_levels ); +HYPRE_Int HYPRE_ParCSRHybridSetCoarsenType_flt ( HYPRE_Solver solver, HYPRE_Int coarsen_type ); +HYPRE_Int HYPRE_ParCSRHybridSetCoarsenType_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_type ); +HYPRE_Int HYPRE_ParCSRHybridSetCoarsenType_long_dbl ( HYPRE_Solver solver, HYPRE_Int coarsen_type ); +HYPRE_Int HYPRE_ParCSRHybridSetConvergenceTol_flt ( HYPRE_Solver solver, hypre_float cf_tol ); +HYPRE_Int HYPRE_ParCSRHybridSetConvergenceTol_dbl ( HYPRE_Solver solver, hypre_double cf_tol ); +HYPRE_Int HYPRE_ParCSRHybridSetConvergenceTol_long_dbl ( HYPRE_Solver solver, hypre_long_double cf_tol ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps, + HYPRE_Int k ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type, + HYPRE_Int k ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleType_flt ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleType_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_ParCSRHybridSetCycleType_long_dbl ( HYPRE_Solver solver, HYPRE_Int cycle_type ); +HYPRE_Int HYPRE_ParCSRHybridSetDofFunc_flt ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_ParCSRHybridSetDofFunc_dbl ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_ParCSRHybridSetDofFunc_long_dbl ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_ParCSRHybridSetDSCGMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int dscg_max_its ); +HYPRE_Int HYPRE_ParCSRHybridSetDSCGMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int dscg_max_its ); +HYPRE_Int HYPRE_ParCSRHybridSetDSCGMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int dscg_max_its ); +HYPRE_Int HYPRE_ParCSRHybridSetGridRelaxPoints_flt ( HYPRE_Solver solver, + HYPRE_Int **grid_relax_points ); +HYPRE_Int HYPRE_ParCSRHybridSetGridRelaxPoints_dbl ( HYPRE_Solver solver, + HYPRE_Int **grid_relax_points ); +HYPRE_Int HYPRE_ParCSRHybridSetGridRelaxPoints_long_dbl ( HYPRE_Solver solver, + HYPRE_Int **grid_relax_points ); +HYPRE_Int HYPRE_ParCSRHybridSetGridRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int *grid_relax_type ); +HYPRE_Int HYPRE_ParCSRHybridSetGridRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int *grid_relax_type ); +HYPRE_Int HYPRE_ParCSRHybridSetGridRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int *grid_relax_type ); +HYPRE_Int HYPRE_ParCSRHybridSetInterpType_flt ( HYPRE_Solver solver, HYPRE_Int interp_type ); +HYPRE_Int HYPRE_ParCSRHybridSetInterpType_dbl ( HYPRE_Solver solver, HYPRE_Int interp_type ); +HYPRE_Int HYPRE_ParCSRHybridSetInterpType_long_dbl ( HYPRE_Solver solver, HYPRE_Int interp_type ); +HYPRE_Int HYPRE_ParCSRHybridSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRHybridSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRHybridSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRHybridSetKeepTranspose_flt ( HYPRE_Solver solver, HYPRE_Int keepT ); +HYPRE_Int HYPRE_ParCSRHybridSetKeepTranspose_dbl ( HYPRE_Solver solver, HYPRE_Int keepT ); +HYPRE_Int HYPRE_ParCSRHybridSetKeepTranspose_long_dbl ( HYPRE_Solver solver, HYPRE_Int keepT ); +HYPRE_Int HYPRE_ParCSRHybridSetLevelOuterWt_flt ( HYPRE_Solver solver, hypre_float outer_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRHybridSetLevelOuterWt_dbl ( HYPRE_Solver solver, hypre_double outer_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRHybridSetLevelOuterWt_long_dbl ( HYPRE_Solver solver, hypre_long_double outer_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRHybridSetLevelRelaxWt_flt ( HYPRE_Solver solver, hypre_float relax_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRHybridSetLevelRelaxWt_dbl ( HYPRE_Solver solver, hypre_double relax_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRHybridSetLevelRelaxWt_long_dbl ( HYPRE_Solver solver, hypre_long_double relax_wt, + HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRHybridSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRHybridSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRHybridSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxCoarseSize_flt ( HYPRE_Solver solver, HYPRE_Int max_coarse_size ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxCoarseSize_dbl ( HYPRE_Solver solver, HYPRE_Int max_coarse_size ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxCoarseSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_coarse_size ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxLevels_flt ( HYPRE_Solver solver, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxLevels_dbl ( HYPRE_Solver solver, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxLevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_levels ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxRowSum_flt ( HYPRE_Solver solver, hypre_float max_row_sum ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxRowSum_dbl ( HYPRE_Solver solver, hypre_double max_row_sum ); +HYPRE_Int HYPRE_ParCSRHybridSetMaxRowSum_long_dbl ( HYPRE_Solver solver, hypre_long_double max_row_sum ); +HYPRE_Int HYPRE_ParCSRHybridSetMeasureType_flt ( HYPRE_Solver solver, HYPRE_Int measure_type ); +HYPRE_Int HYPRE_ParCSRHybridSetMeasureType_dbl ( HYPRE_Solver solver, HYPRE_Int measure_type ); +HYPRE_Int HYPRE_ParCSRHybridSetMeasureType_long_dbl ( HYPRE_Solver solver, HYPRE_Int measure_type ); +HYPRE_Int HYPRE_ParCSRHybridSetMinCoarseSize_flt ( HYPRE_Solver solver, HYPRE_Int min_coarse_size ); +HYPRE_Int HYPRE_ParCSRHybridSetMinCoarseSize_dbl ( HYPRE_Solver solver, HYPRE_Int min_coarse_size ); +HYPRE_Int HYPRE_ParCSRHybridSetMinCoarseSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_coarse_size ); +HYPRE_Int HYPRE_ParCSRHybridSetNodal_flt ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_ParCSRHybridSetNodal_dbl ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_ParCSRHybridSetNodal_long_dbl ( HYPRE_Solver solver, HYPRE_Int nodal ); +HYPRE_Int HYPRE_ParCSRHybridSetNonGalerkinTol_flt ( HYPRE_Solver solver, HYPRE_Int nongalerk_num_tol, + hypre_float *nongalerkin_tol ); +HYPRE_Int HYPRE_ParCSRHybridSetNonGalerkinTol_dbl ( HYPRE_Solver solver, HYPRE_Int nongalerk_num_tol, + hypre_double *nongalerkin_tol ); +HYPRE_Int HYPRE_ParCSRHybridSetNonGalerkinTol_long_dbl ( HYPRE_Solver solver, HYPRE_Int nongalerk_num_tol, + hypre_long_double *nongalerkin_tol ); +HYPRE_Int HYPRE_ParCSRHybridSetNumFunctions_flt ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_ParCSRHybridSetNumFunctions_dbl ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_ParCSRHybridSetNumFunctions_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_ParCSRHybridSetNumGridSweeps_flt ( HYPRE_Solver solver, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int HYPRE_ParCSRHybridSetNumGridSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int HYPRE_ParCSRHybridSetNumGridSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int HYPRE_ParCSRHybridSetNumPaths_flt ( HYPRE_Solver solver, HYPRE_Int num_paths ); +HYPRE_Int HYPRE_ParCSRHybridSetNumPaths_dbl ( HYPRE_Solver solver, HYPRE_Int num_paths ); +HYPRE_Int HYPRE_ParCSRHybridSetNumPaths_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_paths ); +HYPRE_Int HYPRE_ParCSRHybridSetNumSweeps_flt ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_ParCSRHybridSetNumSweeps_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_ParCSRHybridSetNumSweeps_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_sweeps ); +HYPRE_Int HYPRE_ParCSRHybridSetOmega_flt ( HYPRE_Solver solver, hypre_float *omega ); +HYPRE_Int HYPRE_ParCSRHybridSetOmega_dbl ( HYPRE_Solver solver, hypre_double *omega ); +HYPRE_Int HYPRE_ParCSRHybridSetOmega_long_dbl ( HYPRE_Solver solver, hypre_long_double *omega ); +HYPRE_Int HYPRE_ParCSRHybridSetOuterWt_flt ( HYPRE_Solver solver, hypre_float outer_wt ); +HYPRE_Int HYPRE_ParCSRHybridSetOuterWt_dbl ( HYPRE_Solver solver, hypre_double outer_wt ); +HYPRE_Int HYPRE_ParCSRHybridSetOuterWt_long_dbl ( HYPRE_Solver solver, hypre_long_double outer_wt ); +HYPRE_Int HYPRE_ParCSRHybridSetPCGMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int pcg_max_its ); +HYPRE_Int HYPRE_ParCSRHybridSetPCGMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int pcg_max_its ); +HYPRE_Int HYPRE_ParCSRHybridSetPCGMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int pcg_max_its ); +HYPRE_Int HYPRE_ParCSRHybridSetPMaxElmts_flt ( HYPRE_Solver solver, HYPRE_Int p_max ); +HYPRE_Int HYPRE_ParCSRHybridSetPMaxElmts_dbl ( HYPRE_Solver solver, HYPRE_Int p_max ); +HYPRE_Int HYPRE_ParCSRHybridSetPMaxElmts_long_dbl ( HYPRE_Solver solver, HYPRE_Int p_max ); +HYPRE_Int HYPRE_ParCSRHybridSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRHybridSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRHybridSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRHybridSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRHybridSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRHybridSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxOrder_flt ( HYPRE_Solver solver, HYPRE_Int relax_order ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxOrder_dbl ( HYPRE_Solver solver, HYPRE_Int relax_order ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxOrder_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_order ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxType_flt ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxType_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxType_long_dbl ( HYPRE_Solver solver, HYPRE_Int relax_type ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxWeight_flt ( HYPRE_Solver solver, hypre_float *relax_weight ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxWeight_dbl ( HYPRE_Solver solver, hypre_double *relax_weight ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxWeight_long_dbl ( HYPRE_Solver solver, hypre_long_double *relax_weight ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxWt_flt ( HYPRE_Solver solver, hypre_float relax_wt ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxWt_dbl ( HYPRE_Solver solver, hypre_double relax_wt ); +HYPRE_Int HYPRE_ParCSRHybridSetRelaxWt_long_dbl ( HYPRE_Solver solver, hypre_long_double relax_wt ); +HYPRE_Int HYPRE_ParCSRHybridSetRelChange_flt ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_ParCSRHybridSetRelChange_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_ParCSRHybridSetRelChange_long_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_ParCSRHybridSetSeqThreshold_flt ( HYPRE_Solver solver, HYPRE_Int seq_threshold ); +HYPRE_Int HYPRE_ParCSRHybridSetSeqThreshold_dbl ( HYPRE_Solver solver, HYPRE_Int seq_threshold ); +HYPRE_Int HYPRE_ParCSRHybridSetSeqThreshold_long_dbl ( HYPRE_Solver solver, HYPRE_Int seq_threshold ); +HYPRE_Int HYPRE_ParCSRHybridSetSetupType_flt ( HYPRE_Solver solver, HYPRE_Int setup_type ); +HYPRE_Int HYPRE_ParCSRHybridSetSetupType_dbl ( HYPRE_Solver solver, HYPRE_Int setup_type ); +HYPRE_Int HYPRE_ParCSRHybridSetSetupType_long_dbl ( HYPRE_Solver solver, HYPRE_Int setup_type ); +HYPRE_Int HYPRE_ParCSRHybridSetSolverType_flt ( HYPRE_Solver solver, HYPRE_Int solver_type ); +HYPRE_Int HYPRE_ParCSRHybridSetSolverType_dbl ( HYPRE_Solver solver, HYPRE_Int solver_type ); +HYPRE_Int HYPRE_ParCSRHybridSetSolverType_long_dbl ( HYPRE_Solver solver, HYPRE_Int solver_type ); +HYPRE_Int HYPRE_ParCSRHybridSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRHybridSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRHybridSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRHybridSetStrongThreshold_flt ( HYPRE_Solver solver, hypre_float strong_threshold ); +HYPRE_Int HYPRE_ParCSRHybridSetStrongThreshold_dbl ( HYPRE_Solver solver, hypre_double strong_threshold ); +HYPRE_Int HYPRE_ParCSRHybridSetStrongThreshold_long_dbl ( HYPRE_Solver solver, hypre_long_double strong_threshold ); +HYPRE_Int HYPRE_ParCSRHybridSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRHybridSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRHybridSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRHybridSetTruncFactor_flt ( HYPRE_Solver solver, hypre_float trunc_factor ); +HYPRE_Int HYPRE_ParCSRHybridSetTruncFactor_dbl ( HYPRE_Solver solver, hypre_double trunc_factor ); +HYPRE_Int HYPRE_ParCSRHybridSetTruncFactor_long_dbl ( HYPRE_Solver solver, hypre_long_double trunc_factor ); +HYPRE_Int HYPRE_ParCSRHybridSetTwoNorm_flt ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_ParCSRHybridSetTwoNorm_dbl ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_ParCSRHybridSetTwoNorm_long_dbl ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_ParCSRHybridSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRHybridSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRHybridSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRHybridSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRHybridSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRHybridSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +void aux_indexFromMask_flt ( HYPRE_Int n, HYPRE_Int *mask, HYPRE_Int *index ); +void aux_indexFromMask_dbl ( HYPRE_Int n, HYPRE_Int *mask, HYPRE_Int *index ); +void aux_indexFromMask_long_dbl ( HYPRE_Int n, HYPRE_Int *mask, HYPRE_Int *index ); +HYPRE_Int aux_maskCount_flt ( HYPRE_Int n, HYPRE_Int *mask ); +HYPRE_Int aux_maskCount_dbl ( HYPRE_Int n, HYPRE_Int *mask ); +HYPRE_Int aux_maskCount_long_dbl ( HYPRE_Int n, HYPRE_Int *mask ); +HYPRE_Int HYPRE_ParCSRMultiVectorPrint_flt ( void *x_, const char *fileName ); +HYPRE_Int HYPRE_ParCSRMultiVectorPrint_dbl ( void *x_, const char *fileName ); +HYPRE_Int HYPRE_ParCSRMultiVectorPrint_long_dbl ( void *x_, const char *fileName ); +void *HYPRE_ParCSRMultiVectorRead_flt ( MPI_Comm comm, void *ii_, const char *fileName ); +void *HYPRE_ParCSRMultiVectorRead_dbl ( MPI_Comm comm, void *ii_, const char *fileName ); +void *HYPRE_ParCSRMultiVectorRead_long_dbl ( MPI_Comm comm, void *ii_, const char *fileName ); +HYPRE_Int HYPRE_ParCSRSetupInterpreter_flt ( mv_InterfaceInterpreter *i ); +HYPRE_Int HYPRE_ParCSRSetupInterpreter_dbl ( mv_InterfaceInterpreter *i ); +HYPRE_Int HYPRE_ParCSRSetupInterpreter_long_dbl ( mv_InterfaceInterpreter *i ); +HYPRE_Int HYPRE_ParCSRSetupMatvec_flt ( HYPRE_MatvecFunctions *mv ); +HYPRE_Int HYPRE_ParCSRSetupMatvec_dbl ( HYPRE_MatvecFunctions *mv ); +HYPRE_Int HYPRE_ParCSRSetupMatvec_long_dbl ( HYPRE_MatvecFunctions *mv ); +HYPRE_Int hypre_ParPrintVector_flt ( void *v, const char *file ); +HYPRE_Int hypre_ParPrintVector_dbl ( void *v, const char *file ); +HYPRE_Int hypre_ParPrintVector_long_dbl ( void *v, const char *file ); +void *hypre_ParReadVector_flt ( MPI_Comm comm, const char *file ); +void *hypre_ParReadVector_dbl ( MPI_Comm comm, const char *file ); +void *hypre_ParReadVector_long_dbl ( MPI_Comm comm, const char *file ); +HYPRE_Int hypre_ParSetRandomValues_flt ( void *v, HYPRE_Int seed ); +HYPRE_Int hypre_ParSetRandomValues_dbl ( void *v, HYPRE_Int seed ); +HYPRE_Int hypre_ParSetRandomValues_long_dbl ( void *v, HYPRE_Int seed ); +HYPRE_Int hypre_ParVectorSize_flt ( void *x ); +HYPRE_Int hypre_ParVectorSize_dbl ( void *x ); +HYPRE_Int hypre_ParVectorSize_long_dbl ( void *x ); +HYPRE_Int HYPRE_TempParCSRSetupInterpreter_flt ( mv_InterfaceInterpreter *i ); +HYPRE_Int HYPRE_TempParCSRSetupInterpreter_dbl ( mv_InterfaceInterpreter *i ); +HYPRE_Int HYPRE_TempParCSRSetupInterpreter_long_dbl ( mv_InterfaceInterpreter *i ); +HYPRE_Int HYPRE_ParCSRLGMRESCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRLGMRESCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRLGMRESCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRLGMRESDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRLGMRESDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRLGMRESDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRLGMRESGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRLGMRESGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRLGMRESGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRLGMRESGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRLGMRESGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRLGMRESGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRLGMRESGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRLGMRESGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRLGMRESGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRLGMRESSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_ParCSRLGMRESSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_ParCSRLGMRESSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_ParCSRLGMRESSetAugDim_flt ( HYPRE_Solver solver, HYPRE_Int aug_dim ); +HYPRE_Int HYPRE_ParCSRLGMRESSetAugDim_dbl ( HYPRE_Solver solver, HYPRE_Int aug_dim ); +HYPRE_Int HYPRE_ParCSRLGMRESSetAugDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int aug_dim ); +HYPRE_Int HYPRE_ParCSRLGMRESSetKDim_flt ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRLGMRESSetKDim_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRLGMRESSetKDim_long_dbl ( HYPRE_Solver solver, HYPRE_Int k_dim ); +HYPRE_Int HYPRE_ParCSRLGMRESSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRLGMRESSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRLGMRESSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRLGMRESSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRLGMRESSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRLGMRESSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRLGMRESSetMinIter_flt ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRLGMRESSetMinIter_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRLGMRESSetMinIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int min_iter ); +HYPRE_Int HYPRE_ParCSRLGMRESSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRLGMRESSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRLGMRESSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRLGMRESSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRLGMRESSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRLGMRESSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int print_level ); +HYPRE_Int HYPRE_ParCSRLGMRESSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRLGMRESSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRLGMRESSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRLGMRESSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRLGMRESSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRLGMRESSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRLGMRESSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRLGMRESSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRLGMRESSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParaSailsBuildIJMatrix_flt ( HYPRE_Solver solver, HYPRE_IJMatrix *pij_A ); +HYPRE_Int HYPRE_ParaSailsBuildIJMatrix_dbl ( HYPRE_Solver solver, HYPRE_IJMatrix *pij_A ); +HYPRE_Int HYPRE_ParaSailsBuildIJMatrix_long_dbl ( HYPRE_Solver solver, HYPRE_IJMatrix *pij_A ); +HYPRE_Int HYPRE_ParaSailsCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParaSailsCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParaSailsCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParaSailsDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParaSailsDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParaSailsDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParaSailsGetFilter_flt ( HYPRE_Solver solver, hypre_float *filter ); +HYPRE_Int HYPRE_ParaSailsGetFilter_dbl ( HYPRE_Solver solver, hypre_double *filter ); +HYPRE_Int HYPRE_ParaSailsGetFilter_long_dbl ( HYPRE_Solver solver, hypre_long_double *filter ); +HYPRE_Int HYPRE_ParaSailsGetLoadbal_flt ( HYPRE_Solver solver, hypre_float *loadbal ); +HYPRE_Int HYPRE_ParaSailsGetLoadbal_dbl ( HYPRE_Solver solver, hypre_double *loadbal ); +HYPRE_Int HYPRE_ParaSailsGetLoadbal_long_dbl ( HYPRE_Solver solver, hypre_long_double *loadbal ); +HYPRE_Int HYPRE_ParaSailsGetLogging_flt ( HYPRE_Solver solver, HYPRE_Int *logging ); +HYPRE_Int HYPRE_ParaSailsGetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int *logging ); +HYPRE_Int HYPRE_ParaSailsGetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int *logging ); +HYPRE_Int HYPRE_ParaSailsGetNlevels_flt ( HYPRE_Solver solver, HYPRE_Int *nlevels ); +HYPRE_Int HYPRE_ParaSailsGetNlevels_dbl ( HYPRE_Solver solver, HYPRE_Int *nlevels ); +HYPRE_Int HYPRE_ParaSailsGetNlevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int *nlevels ); +HYPRE_Int HYPRE_ParaSailsGetReuse_flt ( HYPRE_Solver solver, HYPRE_Int *reuse ); +HYPRE_Int HYPRE_ParaSailsGetReuse_dbl ( HYPRE_Solver solver, HYPRE_Int *reuse ); +HYPRE_Int HYPRE_ParaSailsGetReuse_long_dbl ( HYPRE_Solver solver, HYPRE_Int *reuse ); +HYPRE_Int HYPRE_ParaSailsGetSym_flt ( HYPRE_Solver solver, HYPRE_Int *sym ); +HYPRE_Int HYPRE_ParaSailsGetSym_dbl ( HYPRE_Solver solver, HYPRE_Int *sym ); +HYPRE_Int HYPRE_ParaSailsGetSym_long_dbl ( HYPRE_Solver solver, HYPRE_Int *sym ); +HYPRE_Int HYPRE_ParaSailsGetThresh_flt ( HYPRE_Solver solver, hypre_float *thresh ); +HYPRE_Int HYPRE_ParaSailsGetThresh_dbl ( HYPRE_Solver solver, hypre_double *thresh ); +HYPRE_Int HYPRE_ParaSailsGetThresh_long_dbl ( HYPRE_Solver solver, hypre_long_double *thresh ); +HYPRE_Int HYPRE_ParaSailsSetFilter_flt ( HYPRE_Solver solver, hypre_float filter ); +HYPRE_Int HYPRE_ParaSailsSetFilter_dbl ( HYPRE_Solver solver, hypre_double filter ); +HYPRE_Int HYPRE_ParaSailsSetFilter_long_dbl ( HYPRE_Solver solver, hypre_long_double filter ); +HYPRE_Int HYPRE_ParaSailsSetLoadbal_flt ( HYPRE_Solver solver, hypre_float loadbal ); +HYPRE_Int HYPRE_ParaSailsSetLoadbal_dbl ( HYPRE_Solver solver, hypre_double loadbal ); +HYPRE_Int HYPRE_ParaSailsSetLoadbal_long_dbl ( HYPRE_Solver solver, hypre_long_double loadbal ); +HYPRE_Int HYPRE_ParaSailsSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParaSailsSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParaSailsSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParaSailsSetNlevels_flt ( HYPRE_Solver solver, HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParaSailsSetNlevels_dbl ( HYPRE_Solver solver, HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParaSailsSetNlevels_long_dbl ( HYPRE_Solver solver, HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParaSailsSetParams_flt ( HYPRE_Solver solver, hypre_float thresh, HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParaSailsSetParams_dbl ( HYPRE_Solver solver, hypre_double thresh, HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParaSailsSetParams_long_dbl ( HYPRE_Solver solver, hypre_long_double thresh, HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParaSailsSetReuse_flt ( HYPRE_Solver solver, HYPRE_Int reuse ); +HYPRE_Int HYPRE_ParaSailsSetReuse_dbl ( HYPRE_Solver solver, HYPRE_Int reuse ); +HYPRE_Int HYPRE_ParaSailsSetReuse_long_dbl ( HYPRE_Solver solver, HYPRE_Int reuse ); +HYPRE_Int HYPRE_ParaSailsSetSym_flt ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_ParaSailsSetSym_dbl ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_ParaSailsSetSym_long_dbl ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_ParaSailsSetThresh_flt ( HYPRE_Solver solver, hypre_float thresh ); +HYPRE_Int HYPRE_ParaSailsSetThresh_dbl ( HYPRE_Solver solver, hypre_double thresh ); +HYPRE_Int HYPRE_ParaSailsSetThresh_long_dbl ( HYPRE_Solver solver, hypre_long_double thresh ); +HYPRE_Int HYPRE_ParaSailsSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParaSailsSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParaSailsSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParaSailsSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParaSailsSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParaSailsSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRParaSailsCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRParaSailsCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRParaSailsCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRParaSailsDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRParaSailsDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRParaSailsDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRParaSailsGetFilter_flt ( HYPRE_Solver solver, hypre_float *filter ); +HYPRE_Int HYPRE_ParCSRParaSailsGetFilter_dbl ( HYPRE_Solver solver, hypre_double *filter ); +HYPRE_Int HYPRE_ParCSRParaSailsGetFilter_long_dbl ( HYPRE_Solver solver, hypre_long_double *filter ); +HYPRE_Int HYPRE_ParCSRParaSailsGetLoadbal_flt ( HYPRE_Solver solver, hypre_float *loadbal ); +HYPRE_Int HYPRE_ParCSRParaSailsGetLoadbal_dbl ( HYPRE_Solver solver, hypre_double *loadbal ); +HYPRE_Int HYPRE_ParCSRParaSailsGetLoadbal_long_dbl ( HYPRE_Solver solver, hypre_long_double *loadbal ); +HYPRE_Int HYPRE_ParCSRParaSailsSetFilter_flt ( HYPRE_Solver solver, hypre_float filter ); +HYPRE_Int HYPRE_ParCSRParaSailsSetFilter_dbl ( HYPRE_Solver solver, hypre_double filter ); +HYPRE_Int HYPRE_ParCSRParaSailsSetFilter_long_dbl ( HYPRE_Solver solver, hypre_long_double filter ); +HYPRE_Int HYPRE_ParCSRParaSailsSetLoadbal_flt ( HYPRE_Solver solver, hypre_float loadbal ); +HYPRE_Int HYPRE_ParCSRParaSailsSetLoadbal_dbl ( HYPRE_Solver solver, hypre_double loadbal ); +HYPRE_Int HYPRE_ParCSRParaSailsSetLoadbal_long_dbl ( HYPRE_Solver solver, hypre_long_double loadbal ); +HYPRE_Int HYPRE_ParCSRParaSailsSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRParaSailsSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRParaSailsSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int logging ); +HYPRE_Int HYPRE_ParCSRParaSailsSetParams_flt ( HYPRE_Solver solver, hypre_float thresh, + HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParCSRParaSailsSetParams_dbl ( HYPRE_Solver solver, hypre_double thresh, + HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParCSRParaSailsSetParams_long_dbl ( HYPRE_Solver solver, hypre_long_double thresh, + HYPRE_Int nlevels ); +HYPRE_Int HYPRE_ParCSRParaSailsSetReuse_flt ( HYPRE_Solver solver, HYPRE_Int reuse ); +HYPRE_Int HYPRE_ParCSRParaSailsSetReuse_dbl ( HYPRE_Solver solver, HYPRE_Int reuse ); +HYPRE_Int HYPRE_ParCSRParaSailsSetReuse_long_dbl ( HYPRE_Solver solver, HYPRE_Int reuse ); +HYPRE_Int HYPRE_ParCSRParaSailsSetSym_flt ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_ParCSRParaSailsSetSym_dbl ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_ParCSRParaSailsSetSym_long_dbl ( HYPRE_Solver solver, HYPRE_Int sym ); +HYPRE_Int HYPRE_ParCSRParaSailsSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRParaSailsSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRParaSailsSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRParaSailsSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRParaSailsSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRParaSailsSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRDiagScale_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, HYPRE_ParVector Hy, + HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSRDiagScale_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, HYPRE_ParVector Hy, + HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSRDiagScale_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix HA, HYPRE_ParVector Hy, + HYPRE_ParVector Hx ); +HYPRE_Int HYPRE_ParCSRDiagScaleSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector y, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRDiagScaleSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector y, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRDiagScaleSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector y, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPCGCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRPCGCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRPCGCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRPCGDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRPCGDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRPCGDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm_flt ( HYPRE_Solver solver, hypre_float *norm ); +HYPRE_Int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm_dbl ( HYPRE_Solver solver, hypre_double *norm ); +HYPRE_Int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm_long_dbl ( HYPRE_Solver solver, hypre_long_double *norm ); +HYPRE_Int HYPRE_ParCSRPCGGetNumIterations_flt ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRPCGGetNumIterations_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRPCGGetNumIterations_long_dbl ( HYPRE_Solver solver, HYPRE_Int *num_iterations ); +HYPRE_Int HYPRE_ParCSRPCGGetPrecond_flt ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRPCGGetPrecond_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRPCGGetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr ); +HYPRE_Int HYPRE_ParCSRPCGGetResidual_flt ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRPCGGetResidual_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRPCGGetResidual_long_dbl ( HYPRE_Solver solver, HYPRE_ParVector *residual ); +HYPRE_Int HYPRE_ParCSRPCGSetAbsoluteTol_flt ( HYPRE_Solver solver, hypre_float a_tol ); +HYPRE_Int HYPRE_ParCSRPCGSetAbsoluteTol_dbl ( HYPRE_Solver solver, hypre_double a_tol ); +HYPRE_Int HYPRE_ParCSRPCGSetAbsoluteTol_long_dbl ( HYPRE_Solver solver, hypre_long_double a_tol ); +HYPRE_Int HYPRE_ParCSRPCGSetLogging_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRPCGSetLogging_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRPCGSetLogging_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRPCGSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRPCGSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRPCGSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRPCGSetPrecond_flt ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRPCGSetPrecond_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRPCGSetPrecond_long_dbl ( HYPRE_Solver solver, HYPRE_PtrToParSolverFcn precond, + HYPRE_PtrToParSolverFcn precond_setup, HYPRE_Solver precond_solver ); +HYPRE_Int HYPRE_ParCSRPCGSetPrintLevel_flt ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRPCGSetPrintLevel_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRPCGSetPrintLevel_long_dbl ( HYPRE_Solver solver, HYPRE_Int level ); +HYPRE_Int HYPRE_ParCSRPCGSetRelChange_flt ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_ParCSRPCGSetRelChange_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_ParCSRPCGSetRelChange_long_dbl ( HYPRE_Solver solver, HYPRE_Int rel_change ); +HYPRE_Int HYPRE_ParCSRPCGSetStopCrit_flt ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRPCGSetStopCrit_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRPCGSetStopCrit_long_dbl ( HYPRE_Solver solver, HYPRE_Int stop_crit ); +HYPRE_Int HYPRE_ParCSRPCGSetTol_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRPCGSetTol_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRPCGSetTol_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRPCGSetTwoNorm_flt ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_ParCSRPCGSetTwoNorm_dbl ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_ParCSRPCGSetTwoNorm_long_dbl ( HYPRE_Solver solver, HYPRE_Int two_norm ); +HYPRE_Int HYPRE_ParCSRPCGSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPCGSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPCGSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPCGSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPCGSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPCGSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPilutCreate_flt ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRPilutCreate_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRPilutCreate_long_dbl ( MPI_Comm comm, HYPRE_Solver *solver ); +HYPRE_Int HYPRE_ParCSRPilutDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRPilutDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRPilutDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_ParCSRPilutSetDropTolerance_flt ( HYPRE_Solver solver, hypre_float tol ); +HYPRE_Int HYPRE_ParCSRPilutSetDropTolerance_dbl ( HYPRE_Solver solver, hypre_double tol ); +HYPRE_Int HYPRE_ParCSRPilutSetDropTolerance_long_dbl ( HYPRE_Solver solver, hypre_long_double tol ); +HYPRE_Int HYPRE_ParCSRPilutSetFactorRowSize_flt ( HYPRE_Solver solver, HYPRE_Int size ); +HYPRE_Int HYPRE_ParCSRPilutSetFactorRowSize_dbl ( HYPRE_Solver solver, HYPRE_Int size ); +HYPRE_Int HYPRE_ParCSRPilutSetFactorRowSize_long_dbl ( HYPRE_Solver solver, HYPRE_Int size ); +HYPRE_Int HYPRE_ParCSRPilutSetMaxIter_flt ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRPilutSetMaxIter_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRPilutSetMaxIter_long_dbl ( HYPRE_Solver solver, HYPRE_Int max_iter ); +HYPRE_Int HYPRE_ParCSRPilutSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPilutSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPilutSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPilutSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPilutSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParCSRPilutSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_SchwarzCreate_flt ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_SchwarzCreate_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_SchwarzCreate_long_dbl ( HYPRE_Solver *solver ); +HYPRE_Int HYPRE_SchwarzDestroy_flt ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_SchwarzDestroy_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_SchwarzDestroy_long_dbl ( HYPRE_Solver solver ); +HYPRE_Int HYPRE_SchwarzSetDofFunc_flt ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_SchwarzSetDofFunc_dbl ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_SchwarzSetDofFunc_long_dbl ( HYPRE_Solver solver, HYPRE_Int *dof_func ); +HYPRE_Int HYPRE_SchwarzSetDomainStructure_flt ( HYPRE_Solver solver, HYPRE_CSRMatrix domain_structure ); +HYPRE_Int HYPRE_SchwarzSetDomainStructure_dbl ( HYPRE_Solver solver, HYPRE_CSRMatrix domain_structure ); +HYPRE_Int HYPRE_SchwarzSetDomainStructure_long_dbl ( HYPRE_Solver solver, HYPRE_CSRMatrix domain_structure ); +HYPRE_Int HYPRE_SchwarzSetDomainType_flt ( HYPRE_Solver solver, HYPRE_Int domain_type ); +HYPRE_Int HYPRE_SchwarzSetDomainType_dbl ( HYPRE_Solver solver, HYPRE_Int domain_type ); +HYPRE_Int HYPRE_SchwarzSetDomainType_long_dbl ( HYPRE_Solver solver, HYPRE_Int domain_type ); +HYPRE_Int HYPRE_SchwarzSetNonSymm_flt ( HYPRE_Solver solver, HYPRE_Int use_nonsymm ); +HYPRE_Int HYPRE_SchwarzSetNonSymm_dbl ( HYPRE_Solver solver, HYPRE_Int use_nonsymm ); +HYPRE_Int HYPRE_SchwarzSetNonSymm_long_dbl ( HYPRE_Solver solver, HYPRE_Int use_nonsymm ); +HYPRE_Int HYPRE_SchwarzSetNumFunctions_flt ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_SchwarzSetNumFunctions_dbl ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_SchwarzSetNumFunctions_long_dbl ( HYPRE_Solver solver, HYPRE_Int num_functions ); +HYPRE_Int HYPRE_SchwarzSetOverlap_flt ( HYPRE_Solver solver, HYPRE_Int overlap ); +HYPRE_Int HYPRE_SchwarzSetOverlap_dbl ( HYPRE_Solver solver, HYPRE_Int overlap ); +HYPRE_Int HYPRE_SchwarzSetOverlap_long_dbl ( HYPRE_Solver solver, HYPRE_Int overlap ); +HYPRE_Int HYPRE_SchwarzSetRelaxWeight_flt ( HYPRE_Solver solver, hypre_float relax_weight ); +HYPRE_Int HYPRE_SchwarzSetRelaxWeight_dbl ( HYPRE_Solver solver, hypre_double relax_weight ); +HYPRE_Int HYPRE_SchwarzSetRelaxWeight_long_dbl ( HYPRE_Solver solver, hypre_long_double relax_weight ); +HYPRE_Int HYPRE_SchwarzSetup_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_SchwarzSetup_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_SchwarzSetup_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_SchwarzSetVariant_flt ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_SchwarzSetVariant_dbl ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_SchwarzSetVariant_long_dbl ( HYPRE_Solver solver, HYPRE_Int variant ); +HYPRE_Int HYPRE_SchwarzSolve_flt ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_SchwarzSolve_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int HYPRE_SchwarzSolve_long_dbl ( HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, + HYPRE_ParVector x ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtInterpHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtInterpHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtInterpHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtPEInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtPEInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtPEInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtPEInterpHost_flt ( hypre_ParCSRMatrix *A, + HYPRE_Int *CF_marker, hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_BigInt *num_old_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtPEInterpHost_dbl ( hypre_ParCSRMatrix *A, + HYPRE_Int *CF_marker, hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_BigInt *num_old_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModPartialExtPEInterpHost_long_dbl ( hypre_ParCSRMatrix *A, + HYPRE_Int *CF_marker, hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_BigInt *num_old_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGAdditiveCycle_flt ( void *amg_vdata ); +HYPRE_Int hypre_BoomerAMGAdditiveCycle_dbl ( void *amg_vdata ); +HYPRE_Int hypre_BoomerAMGAdditiveCycle_long_dbl ( void *amg_vdata ); +HYPRE_Int hypre_CreateDinv_flt ( void *amg_vdata ); +HYPRE_Int hypre_CreateDinv_dbl ( void *amg_vdata ); +HYPRE_Int hypre_CreateDinv_long_dbl ( void *amg_vdata ); +HYPRE_Int hypre_CreateLambda_flt ( void *amg_vdata ); +HYPRE_Int hypre_CreateLambda_dbl ( void *amg_vdata ); +HYPRE_Int hypre_CreateLambda_long_dbl ( void *amg_vdata ); +hypre_AMGDDCommPkg *hypre_AMGDDCommPkgCreate_flt ( HYPRE_Int num_levels ); +hypre_AMGDDCommPkg *hypre_AMGDDCommPkgCreate_dbl ( HYPRE_Int num_levels ); +hypre_AMGDDCommPkg *hypre_AMGDDCommPkgCreate_long_dbl ( HYPRE_Int num_levels ); +HYPRE_Int hypre_AMGDDCommPkgDestroy_flt ( hypre_AMGDDCommPkg *compGridCommPkg ); +HYPRE_Int hypre_AMGDDCommPkgDestroy_dbl ( hypre_AMGDDCommPkg *compGridCommPkg ); +HYPRE_Int hypre_AMGDDCommPkgDestroy_long_dbl ( hypre_AMGDDCommPkg *compGridCommPkg ); +HYPRE_Int hypre_AMGDDCommPkgRecvLevelDestroy_flt ( hypre_AMGDDCommPkg *amgddCommPkg, HYPRE_Int level, + HYPRE_Int proc ); +HYPRE_Int hypre_AMGDDCommPkgRecvLevelDestroy_dbl ( hypre_AMGDDCommPkg *amgddCommPkg, HYPRE_Int level, + HYPRE_Int proc ); +HYPRE_Int hypre_AMGDDCommPkgRecvLevelDestroy_long_dbl ( hypre_AMGDDCommPkg *amgddCommPkg, HYPRE_Int level, + HYPRE_Int proc ); +HYPRE_Int hypre_AMGDDCommPkgSendLevelDestroy_flt ( hypre_AMGDDCommPkg *amgddCommPkg, HYPRE_Int level, + HYPRE_Int proc ); +HYPRE_Int hypre_AMGDDCommPkgSendLevelDestroy_dbl ( hypre_AMGDDCommPkg *amgddCommPkg, HYPRE_Int level, + HYPRE_Int proc ); +HYPRE_Int hypre_AMGDDCommPkgSendLevelDestroy_long_dbl ( hypre_AMGDDCommPkg *amgddCommPkg, HYPRE_Int level, + HYPRE_Int proc ); +hypre_AMGDDCompGrid *hypre_AMGDDCompGridCreate_flt ( void ); +hypre_AMGDDCompGrid *hypre_AMGDDCompGridCreate_dbl ( void ); +hypre_AMGDDCompGrid *hypre_AMGDDCompGridCreate_long_dbl ( void ); +HYPRE_Int hypre_AMGDDCompGridDestroy_flt ( hypre_AMGDDCompGrid *compGrid ); +HYPRE_Int hypre_AMGDDCompGridDestroy_dbl ( hypre_AMGDDCompGrid *compGrid ); +HYPRE_Int hypre_AMGDDCompGridDestroy_long_dbl ( hypre_AMGDDCompGrid *compGrid ); +HYPRE_Int hypre_AMGDDCompGridFinalize_flt ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridFinalize_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridFinalize_long_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridInitialize_flt ( hypre_ParAMGDDData *amgdd_data, HYPRE_Int padding, + HYPRE_Int level ); +HYPRE_Int hypre_AMGDDCompGridInitialize_dbl ( hypre_ParAMGDDData *amgdd_data, HYPRE_Int padding, + HYPRE_Int level ); +HYPRE_Int hypre_AMGDDCompGridInitialize_long_dbl ( hypre_ParAMGDDData *amgdd_data, HYPRE_Int padding, + HYPRE_Int level ); +hypre_AMGDDCompGridMatrix* hypre_AMGDDCompGridMatrixCreate_flt ( void ); +hypre_AMGDDCompGridMatrix* hypre_AMGDDCompGridMatrixCreate_dbl ( void ); +hypre_AMGDDCompGridMatrix* hypre_AMGDDCompGridMatrixCreate_long_dbl ( void ); +HYPRE_Int hypre_AMGDDCompGridMatrixDestroy_flt ( hypre_AMGDDCompGridMatrix *matrix ); +HYPRE_Int hypre_AMGDDCompGridMatrixDestroy_dbl ( hypre_AMGDDCompGridMatrix *matrix ); +HYPRE_Int hypre_AMGDDCompGridMatrixDestroy_long_dbl ( hypre_AMGDDCompGridMatrix *matrix ); +HYPRE_Int hypre_AMGDDCompGridMatvec_flt ( hypre_float alpha, hypre_AMGDDCompGridMatrix *A, + hypre_AMGDDCompGridVector *x, hypre_float beta, hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridMatvec_dbl ( hypre_double alpha, hypre_AMGDDCompGridMatrix *A, + hypre_AMGDDCompGridVector *x, hypre_double beta, hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridMatvec_long_dbl ( hypre_long_double alpha, hypre_AMGDDCompGridMatrix *A, + hypre_AMGDDCompGridVector *x, hypre_long_double beta, hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridRealMatvec_flt ( hypre_float alpha, hypre_AMGDDCompGridMatrix *A, + hypre_AMGDDCompGridVector *x, hypre_float beta, hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridRealMatvec_dbl ( hypre_double alpha, hypre_AMGDDCompGridMatrix *A, + hypre_AMGDDCompGridVector *x, hypre_double beta, hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridRealMatvec_long_dbl ( hypre_long_double alpha, hypre_AMGDDCompGridMatrix *A, + hypre_AMGDDCompGridVector *x, hypre_long_double beta, hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridResize_flt ( hypre_AMGDDCompGrid *compGrid, HYPRE_Int new_size, + HYPRE_Int need_coarse_info ); +HYPRE_Int hypre_AMGDDCompGridResize_dbl ( hypre_AMGDDCompGrid *compGrid, HYPRE_Int new_size, + HYPRE_Int need_coarse_info ); +HYPRE_Int hypre_AMGDDCompGridResize_long_dbl ( hypre_AMGDDCompGrid *compGrid, HYPRE_Int new_size, + HYPRE_Int need_coarse_info ); +HYPRE_Int hypre_AMGDDCompGridSetupLocalIndices_flt ( hypre_AMGDDCompGrid **compGrid, + HYPRE_Int *num_added_nodes, HYPRE_Int ****recv_map, HYPRE_Int num_recv_procs, + HYPRE_Int **A_tmp_info, HYPRE_Int start_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_AMGDDCompGridSetupLocalIndices_dbl ( hypre_AMGDDCompGrid **compGrid, + HYPRE_Int *num_added_nodes, HYPRE_Int ****recv_map, HYPRE_Int num_recv_procs, + HYPRE_Int **A_tmp_info, HYPRE_Int start_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_AMGDDCompGridSetupLocalIndices_long_dbl ( hypre_AMGDDCompGrid **compGrid, + HYPRE_Int *num_added_nodes, HYPRE_Int ****recv_map, HYPRE_Int num_recv_procs, + HYPRE_Int **A_tmp_info, HYPRE_Int start_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_AMGDDCompGridSetupLocalIndicesP_flt ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridSetupLocalIndicesP_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridSetupLocalIndicesP_long_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridSetupRelax_flt ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridSetupRelax_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridSetupRelax_long_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_AMGDDCompGridVectorAxpy_flt ( hypre_float alpha, hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorAxpy_dbl ( hypre_double alpha, hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorAxpy_long_dbl ( hypre_long_double alpha, hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorCopy_flt ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorCopy_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorCopy_long_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +hypre_AMGDDCompGridVector* hypre_AMGDDCompGridVectorCreate_flt ( void ); +hypre_AMGDDCompGridVector* hypre_AMGDDCompGridVectorCreate_dbl ( void ); +hypre_AMGDDCompGridVector* hypre_AMGDDCompGridVectorCreate_long_dbl ( void ); +HYPRE_Int hypre_AMGDDCompGridVectorDestroy_flt ( hypre_AMGDDCompGridVector *vector ); +HYPRE_Int hypre_AMGDDCompGridVectorDestroy_dbl ( hypre_AMGDDCompGridVector *vector ); +HYPRE_Int hypre_AMGDDCompGridVectorDestroy_long_dbl ( hypre_AMGDDCompGridVector *vector ); +HYPRE_Int hypre_AMGDDCompGridVectorInitialize_flt ( hypre_AMGDDCompGridVector *vector, + HYPRE_Int num_owned, HYPRE_Int num_nonowned, HYPRE_Int num_real ); +HYPRE_Int hypre_AMGDDCompGridVectorInitialize_dbl ( hypre_AMGDDCompGridVector *vector, + HYPRE_Int num_owned, HYPRE_Int num_nonowned, HYPRE_Int num_real ); +HYPRE_Int hypre_AMGDDCompGridVectorInitialize_long_dbl ( hypre_AMGDDCompGridVector *vector, + HYPRE_Int num_owned, HYPRE_Int num_nonowned, HYPRE_Int num_real ); +hypre_float hypre_AMGDDCompGridVectorInnerProd_flt ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +hypre_double hypre_AMGDDCompGridVectorInnerProd_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +hypre_long_double hypre_AMGDDCompGridVectorInnerProd_long_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealAxpy_flt ( hypre_float alpha, hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealAxpy_dbl ( hypre_double alpha, hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealAxpy_long_dbl ( hypre_long_double alpha, hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealCopy_flt ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealCopy_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealCopy_long_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +hypre_float hypre_AMGDDCompGridVectorRealInnerProd_flt ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +hypre_double hypre_AMGDDCompGridVectorRealInnerProd_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +hypre_long_double hypre_AMGDDCompGridVectorRealInnerProd_long_dbl ( hypre_AMGDDCompGridVector *x, + hypre_AMGDDCompGridVector *y ); +HYPRE_Int hypre_AMGDDCompGridVectorRealScale_flt ( hypre_float alpha, hypre_AMGDDCompGridVector *x ); +HYPRE_Int hypre_AMGDDCompGridVectorRealScale_dbl ( hypre_double alpha, hypre_AMGDDCompGridVector *x ); +HYPRE_Int hypre_AMGDDCompGridVectorRealScale_long_dbl ( hypre_long_double alpha, hypre_AMGDDCompGridVector *x ); +HYPRE_Int hypre_AMGDDCompGridVectorRealSetConstantValues_flt ( hypre_AMGDDCompGridVector *vector, + hypre_float value ); +HYPRE_Int hypre_AMGDDCompGridVectorRealSetConstantValues_dbl ( hypre_AMGDDCompGridVector *vector, + hypre_double value ); +HYPRE_Int hypre_AMGDDCompGridVectorRealSetConstantValues_long_dbl ( hypre_AMGDDCompGridVector *vector, + hypre_long_double value ); +HYPRE_Int hypre_AMGDDCompGridVectorScale_flt ( hypre_float alpha, hypre_AMGDDCompGridVector *x ); +HYPRE_Int hypre_AMGDDCompGridVectorScale_dbl ( hypre_double alpha, hypre_AMGDDCompGridVector *x ); +HYPRE_Int hypre_AMGDDCompGridVectorScale_long_dbl ( hypre_long_double alpha, hypre_AMGDDCompGridVector *x ); +HYPRE_Int hypre_AMGDDCompGridVectorSetConstantValues_flt ( hypre_AMGDDCompGridVector *vector, + hypre_float value ); +HYPRE_Int hypre_AMGDDCompGridVectorSetConstantValues_dbl ( hypre_AMGDDCompGridVector *vector, + hypre_double value ); +HYPRE_Int hypre_AMGDDCompGridVectorSetConstantValues_long_dbl ( hypre_AMGDDCompGridVector *vector, + hypre_long_double value ); +HYPRE_Int hypre_BoomerAMGDD_FAC_flt ( void *amgdd_vdata, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_dbl ( void *amgdd_vdata, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_long_dbl ( void *amgdd_vdata, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_CFL1Jacobi_flt ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_CFL1Jacobi_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_CFL1Jacobi_long_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_CFL1JacobiHost_flt ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int relax_set ); +HYPRE_Int hypre_BoomerAMGDD_FAC_CFL1JacobiHost_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int relax_set ); +HYPRE_Int hypre_BoomerAMGDD_FAC_CFL1JacobiHost_long_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int relax_set ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Cycle_flt ( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_type, + HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Cycle_dbl ( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_type, + HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Cycle_long_dbl ( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_type, + HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_FCycle_flt ( void *amgdd_vdata, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_FCycle_dbl ( void *amgdd_vdata, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_FCycle_long_dbl ( void *amgdd_vdata, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_GaussSeidel_flt ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_GaussSeidel_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_GaussSeidel_long_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Interpolate_flt ( hypre_AMGDDCompGrid *compGrid_f, + hypre_AMGDDCompGrid *compGrid_c ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Interpolate_dbl ( hypre_AMGDDCompGrid *compGrid_f, + hypre_AMGDDCompGrid *compGrid_c ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Interpolate_long_dbl ( hypre_AMGDDCompGrid *compGrid_f, + hypre_AMGDDCompGrid *compGrid_c ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Jacobi_flt ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Jacobi_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Jacobi_long_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_JacobiHost_flt ( void *amgdd_vdata, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGDD_FAC_JacobiHost_dbl ( void *amgdd_vdata, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGDD_FAC_JacobiHost_long_dbl ( void *amgdd_vdata, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGDD_FAC_OrderedGaussSeidel_flt ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_OrderedGaussSeidel_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_OrderedGaussSeidel_long_dbl ( void *amgdd_vdata, HYPRE_Int level, + HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Relax_flt ( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Relax_dbl ( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Relax_long_dbl ( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Restrict_flt ( hypre_AMGDDCompGrid *compGrid_f, + hypre_AMGDDCompGrid *compGrid_c, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Restrict_dbl ( hypre_AMGDDCompGrid *compGrid_f, + hypre_AMGDDCompGrid *compGrid_c, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_FAC_Restrict_long_dbl ( hypre_AMGDDCompGrid *compGrid_f, + hypre_AMGDDCompGrid *compGrid_c, HYPRE_Int first_iteration ); +HYPRE_Int hypre_BoomerAMGDD_CommunicateRemainingMatrixInfo_flt ( hypre_ParAMGDDData* amgdd_data ); +HYPRE_Int hypre_BoomerAMGDD_CommunicateRemainingMatrixInfo_dbl ( hypre_ParAMGDDData* amgdd_data ); +HYPRE_Int hypre_BoomerAMGDD_CommunicateRemainingMatrixInfo_long_dbl ( hypre_ParAMGDDData* amgdd_data ); +HYPRE_Int hypre_BoomerAMGDD_FixUpRecvMaps_flt ( hypre_AMGDDCompGrid **compGrid, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int start_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_FixUpRecvMaps_dbl ( hypre_AMGDDCompGrid **compGrid, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int start_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_FixUpRecvMaps_long_dbl ( hypre_AMGDDCompGrid **compGrid, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int start_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_MarkCoarse_flt ( HYPRE_Int *list, HYPRE_Int *marker, + HYPRE_Int *owned_coarse_indices, HYPRE_Int *nonowned_coarse_indices, HYPRE_Int *sort_map, + HYPRE_Int num_owned, HYPRE_Int total_num_nodes, HYPRE_Int num_owned_coarse, HYPRE_Int list_size, + HYPRE_Int dist, HYPRE_Int use_sort, HYPRE_Int *nodes_to_add ); +HYPRE_Int hypre_BoomerAMGDD_MarkCoarse_dbl ( HYPRE_Int *list, HYPRE_Int *marker, + HYPRE_Int *owned_coarse_indices, HYPRE_Int *nonowned_coarse_indices, HYPRE_Int *sort_map, + HYPRE_Int num_owned, HYPRE_Int total_num_nodes, HYPRE_Int num_owned_coarse, HYPRE_Int list_size, + HYPRE_Int dist, HYPRE_Int use_sort, HYPRE_Int *nodes_to_add ); +HYPRE_Int hypre_BoomerAMGDD_MarkCoarse_long_dbl ( HYPRE_Int *list, HYPRE_Int *marker, + HYPRE_Int *owned_coarse_indices, HYPRE_Int *nonowned_coarse_indices, HYPRE_Int *sort_map, + HYPRE_Int num_owned, HYPRE_Int total_num_nodes, HYPRE_Int num_owned_coarse, HYPRE_Int list_size, + HYPRE_Int dist, HYPRE_Int use_sort, HYPRE_Int *nodes_to_add ); +HYPRE_Int hypre_BoomerAMGDD_PackRecvMapSendBuffer_flt ( HYPRE_Int *recv_map_send_buffer, + HYPRE_Int **recv_red_marker, HYPRE_Int *num_recv_nodes, HYPRE_Int *recv_buffer_size, + HYPRE_Int current_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_PackRecvMapSendBuffer_dbl ( HYPRE_Int *recv_map_send_buffer, + HYPRE_Int **recv_red_marker, HYPRE_Int *num_recv_nodes, HYPRE_Int *recv_buffer_size, + HYPRE_Int current_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_PackRecvMapSendBuffer_long_dbl ( HYPRE_Int *recv_map_send_buffer, + HYPRE_Int **recv_red_marker, HYPRE_Int *num_recv_nodes, HYPRE_Int *recv_buffer_size, + HYPRE_Int current_level, HYPRE_Int num_levels ); +HYPRE_Int* hypre_BoomerAMGDD_PackSendBuffer_flt ( hypre_ParAMGDDData *amgdd_data, HYPRE_Int proc, + HYPRE_Int current_level, HYPRE_Int *padding, HYPRE_Int *send_flag_buffer_size ); +HYPRE_Int* hypre_BoomerAMGDD_PackSendBuffer_dbl ( hypre_ParAMGDDData *amgdd_data, HYPRE_Int proc, + HYPRE_Int current_level, HYPRE_Int *padding, HYPRE_Int *send_flag_buffer_size ); +HYPRE_Int* hypre_BoomerAMGDD_PackSendBuffer_long_dbl ( hypre_ParAMGDDData *amgdd_data, HYPRE_Int proc, + HYPRE_Int current_level, HYPRE_Int *padding, HYPRE_Int *send_flag_buffer_size ); +HYPRE_Int hypre_BoomerAMGDD_RecursivelyBuildPsiComposite_flt ( HYPRE_Int node, HYPRE_Int m, + hypre_AMGDDCompGrid *compGrid, HYPRE_Int *add_flag, HYPRE_Int use_sort ); +HYPRE_Int hypre_BoomerAMGDD_RecursivelyBuildPsiComposite_dbl ( HYPRE_Int node, HYPRE_Int m, + hypre_AMGDDCompGrid *compGrid, HYPRE_Int *add_flag, HYPRE_Int use_sort ); +HYPRE_Int hypre_BoomerAMGDD_RecursivelyBuildPsiComposite_long_dbl ( HYPRE_Int node, HYPRE_Int m, + hypre_AMGDDCompGrid *compGrid, HYPRE_Int *add_flag, HYPRE_Int use_sort ); +HYPRE_Int hypre_BoomerAMGDD_SetupNearestProcessorNeighbors_flt ( hypre_ParCSRMatrix *A, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int level, HYPRE_Int *padding, + HYPRE_Int num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDD_SetupNearestProcessorNeighbors_dbl ( hypre_ParCSRMatrix *A, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int level, HYPRE_Int *padding, + HYPRE_Int num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDD_SetupNearestProcessorNeighbors_long_dbl ( hypre_ParCSRMatrix *A, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int level, HYPRE_Int *padding, + HYPRE_Int num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDD_UnpackRecvBuffer_flt ( hypre_ParAMGDDData *amgdd_data, + HYPRE_Int *recv_buffer, HYPRE_Int **A_tmp_info, HYPRE_Int *recv_map_send_buffer_size, + HYPRE_Int *nodes_added_on_level, HYPRE_Int current_level, HYPRE_Int buffer_number ); +HYPRE_Int hypre_BoomerAMGDD_UnpackRecvBuffer_dbl ( hypre_ParAMGDDData *amgdd_data, + HYPRE_Int *recv_buffer, HYPRE_Int **A_tmp_info, HYPRE_Int *recv_map_send_buffer_size, + HYPRE_Int *nodes_added_on_level, HYPRE_Int current_level, HYPRE_Int buffer_number ); +HYPRE_Int hypre_BoomerAMGDD_UnpackRecvBuffer_long_dbl ( hypre_ParAMGDDData *amgdd_data, + HYPRE_Int *recv_buffer, HYPRE_Int **A_tmp_info, HYPRE_Int *recv_map_send_buffer_size, + HYPRE_Int *nodes_added_on_level, HYPRE_Int current_level, HYPRE_Int buffer_number ); +HYPRE_Int hypre_BoomerAMGDD_UnpackSendFlagBuffer_flt ( hypre_AMGDDCompGrid **compGrid, + HYPRE_Int *send_flag_buffer, HYPRE_Int **send_flag, HYPRE_Int *num_send_nodes, + HYPRE_Int *send_buffer_size, HYPRE_Int current_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_UnpackSendFlagBuffer_dbl ( hypre_AMGDDCompGrid **compGrid, + HYPRE_Int *send_flag_buffer, HYPRE_Int **send_flag, HYPRE_Int *num_send_nodes, + HYPRE_Int *send_buffer_size, HYPRE_Int current_level, HYPRE_Int num_levels ); +HYPRE_Int hypre_BoomerAMGDD_UnpackSendFlagBuffer_long_dbl ( hypre_AMGDDCompGrid **compGrid, + HYPRE_Int *send_flag_buffer, HYPRE_Int **send_flag, HYPRE_Int *num_send_nodes, + HYPRE_Int *send_buffer_size, HYPRE_Int current_level, HYPRE_Int num_levels ); +void *hypre_BoomerAMGDDCreate_flt ( void ); +void *hypre_BoomerAMGDDCreate_dbl ( void ); +void *hypre_BoomerAMGDDCreate_long_dbl ( void ); +HYPRE_Int hypre_BoomerAMGDDDestroy_flt ( void *data ); +HYPRE_Int hypre_BoomerAMGDDDestroy_dbl ( void *data ); +HYPRE_Int hypre_BoomerAMGDDDestroy_long_dbl ( void *data ); +HYPRE_Int hypre_BoomerAMGDDGetAMG_flt ( void *data, void **amg_solver ); +HYPRE_Int hypre_BoomerAMGDDGetAMG_dbl ( void *data, void **amg_solver ); +HYPRE_Int hypre_BoomerAMGDDGetAMG_long_dbl ( void *data, void **amg_solver ); +HYPRE_Int hypre_BoomerAMGDDGetFACCycleType_flt ( void *data, HYPRE_Int *fac_cycle_type ); +HYPRE_Int hypre_BoomerAMGDDGetFACCycleType_dbl ( void *data, HYPRE_Int *fac_cycle_type ); +HYPRE_Int hypre_BoomerAMGDDGetFACCycleType_long_dbl ( void *data, HYPRE_Int *fac_cycle_type ); +HYPRE_Int hypre_BoomerAMGDDGetFACNumCycles_flt ( void *data, HYPRE_Int *fac_num_cycles ); +HYPRE_Int hypre_BoomerAMGDDGetFACNumCycles_dbl ( void *data, HYPRE_Int *fac_num_cycles ); +HYPRE_Int hypre_BoomerAMGDDGetFACNumCycles_long_dbl ( void *data, HYPRE_Int *fac_num_cycles ); +HYPRE_Int hypre_BoomerAMGDDGetFACNumRelax_flt ( void *data, HYPRE_Int *fac_num_relax ); +HYPRE_Int hypre_BoomerAMGDDGetFACNumRelax_dbl ( void *data, HYPRE_Int *fac_num_relax ); +HYPRE_Int hypre_BoomerAMGDDGetFACNumRelax_long_dbl ( void *data, HYPRE_Int *fac_num_relax ); +HYPRE_Int hypre_BoomerAMGDDGetFACRelaxType_flt ( void *data, HYPRE_Int *fac_relax_type ); +HYPRE_Int hypre_BoomerAMGDDGetFACRelaxType_dbl ( void *data, HYPRE_Int *fac_relax_type ); +HYPRE_Int hypre_BoomerAMGDDGetFACRelaxType_long_dbl ( void *data, HYPRE_Int *fac_relax_type ); +HYPRE_Int hypre_BoomerAMGDDGetFACRelaxWeight_flt ( void *data, hypre_float *fac_relax_weight ); +HYPRE_Int hypre_BoomerAMGDDGetFACRelaxWeight_dbl ( void *data, hypre_double *fac_relax_weight ); +HYPRE_Int hypre_BoomerAMGDDGetFACRelaxWeight_long_dbl ( void *data, hypre_long_double *fac_relax_weight ); +HYPRE_Int hypre_BoomerAMGDDGetNumGhostLayers_flt ( void *data, HYPRE_Int *num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDDGetNumGhostLayers_dbl ( void *data, HYPRE_Int *num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDDGetNumGhostLayers_long_dbl ( void *data, HYPRE_Int *num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDDGetPadding_flt ( void *data, HYPRE_Int *padding ); +HYPRE_Int hypre_BoomerAMGDDGetPadding_dbl ( void *data, HYPRE_Int *padding ); +HYPRE_Int hypre_BoomerAMGDDGetPadding_long_dbl ( void *data, HYPRE_Int *padding ); +HYPRE_Int hypre_BoomerAMGDDGetStartLevel_flt ( void *data, HYPRE_Int *start_level ); +HYPRE_Int hypre_BoomerAMGDDGetStartLevel_dbl ( void *data, HYPRE_Int *start_level ); +HYPRE_Int hypre_BoomerAMGDDGetStartLevel_long_dbl ( void *data, HYPRE_Int *start_level ); +HYPRE_Int hypre_BoomerAMGDDSetFACCycleType_flt ( void *data, HYPRE_Int fac_cycle_type ); +HYPRE_Int hypre_BoomerAMGDDSetFACCycleType_dbl ( void *data, HYPRE_Int fac_cycle_type ); +HYPRE_Int hypre_BoomerAMGDDSetFACCycleType_long_dbl ( void *data, HYPRE_Int fac_cycle_type ); +HYPRE_Int hypre_BoomerAMGDDSetFACNumCycles_flt ( void *data, HYPRE_Int fac_num_cycles ); +HYPRE_Int hypre_BoomerAMGDDSetFACNumCycles_dbl ( void *data, HYPRE_Int fac_num_cycles ); +HYPRE_Int hypre_BoomerAMGDDSetFACNumCycles_long_dbl ( void *data, HYPRE_Int fac_num_cycles ); +HYPRE_Int hypre_BoomerAMGDDSetFACNumRelax_flt ( void *data, HYPRE_Int fac_num_relax ); +HYPRE_Int hypre_BoomerAMGDDSetFACNumRelax_dbl ( void *data, HYPRE_Int fac_num_relax ); +HYPRE_Int hypre_BoomerAMGDDSetFACNumRelax_long_dbl ( void *data, HYPRE_Int fac_num_relax ); +HYPRE_Int hypre_BoomerAMGDDSetFACRelaxType_flt ( void *data, HYPRE_Int fac_relax_type ); +HYPRE_Int hypre_BoomerAMGDDSetFACRelaxType_dbl ( void *data, HYPRE_Int fac_relax_type ); +HYPRE_Int hypre_BoomerAMGDDSetFACRelaxType_long_dbl ( void *data, HYPRE_Int fac_relax_type ); +HYPRE_Int hypre_BoomerAMGDDSetFACRelaxWeight_flt ( void *data, hypre_float fac_relax_weight ); +HYPRE_Int hypre_BoomerAMGDDSetFACRelaxWeight_dbl ( void *data, hypre_double fac_relax_weight ); +HYPRE_Int hypre_BoomerAMGDDSetFACRelaxWeight_long_dbl ( void *data, hypre_long_double fac_relax_weight ); +HYPRE_Int hypre_BoomerAMGDDSetNumGhostLayers_flt ( void *data, HYPRE_Int num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDDSetNumGhostLayers_dbl ( void *data, HYPRE_Int num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDDSetNumGhostLayers_long_dbl ( void *data, HYPRE_Int num_ghost_layers ); +HYPRE_Int hypre_BoomerAMGDDSetPadding_flt ( void *data, HYPRE_Int padding ); +HYPRE_Int hypre_BoomerAMGDDSetPadding_dbl ( void *data, HYPRE_Int padding ); +HYPRE_Int hypre_BoomerAMGDDSetPadding_long_dbl ( void *data, HYPRE_Int padding ); +HYPRE_Int hypre_BoomerAMGDDSetStartLevel_flt ( void *data, HYPRE_Int start_level ); +HYPRE_Int hypre_BoomerAMGDDSetStartLevel_dbl ( void *data, HYPRE_Int start_level ); +HYPRE_Int hypre_BoomerAMGDDSetStartLevel_long_dbl ( void *data, HYPRE_Int start_level ); +HYPRE_Int hypre_BoomerAMGDDSetUserFACRelaxation_flt ( void *data, + HYPRE_Int (*userFACRelaxation)( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ) ); +HYPRE_Int hypre_BoomerAMGDDSetUserFACRelaxation_dbl ( void *data, + HYPRE_Int (*userFACRelaxation)( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ) ); +HYPRE_Int hypre_BoomerAMGDDSetUserFACRelaxation_long_dbl ( void *data, + HYPRE_Int (*userFACRelaxation)( void *amgdd_vdata, HYPRE_Int level, HYPRE_Int cycle_param ) ); +HYPRE_Int hypre_BoomerAMGDDSetup_flt ( void *amgdd_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGDDSetup_dbl ( void *amgdd_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGDDSetup_long_dbl ( void *amgdd_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +hypre_float* hypre_BoomerAMGDD_PackResidualBuffer_flt ( hypre_AMGDDCompGrid **compGrid, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int current_level, HYPRE_Int proc ); +hypre_double* hypre_BoomerAMGDD_PackResidualBuffer_dbl ( hypre_AMGDDCompGrid **compGrid, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int current_level, HYPRE_Int proc ); +hypre_long_double* hypre_BoomerAMGDD_PackResidualBuffer_long_dbl ( hypre_AMGDDCompGrid **compGrid, + hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int current_level, HYPRE_Int proc ); +HYPRE_Int hypre_BoomerAMGDD_ResidualCommunication_flt ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_BoomerAMGDD_ResidualCommunication_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_BoomerAMGDD_ResidualCommunication_long_dbl ( hypre_ParAMGDDData *amgdd_data ); +HYPRE_Int hypre_BoomerAMGDDSolve_flt ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGDDSolve_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGDDSolve_long_dbl ( void *solver, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_BoomerAMGDD_UnpackResidualBuffer_flt ( hypre_float *buffer, + hypre_AMGDDCompGrid **compGrid, hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int current_level, + HYPRE_Int proc ); +HYPRE_Int hypre_BoomerAMGDD_UnpackResidualBuffer_dbl ( hypre_double *buffer, + hypre_AMGDDCompGrid **compGrid, hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int current_level, + HYPRE_Int proc ); +HYPRE_Int hypre_BoomerAMGDD_UnpackResidualBuffer_long_dbl ( hypre_long_double *buffer, + hypre_AMGDDCompGrid **compGrid, hypre_AMGDDCommPkg *compGridCommPkg, HYPRE_Int current_level, + HYPRE_Int proc ); +void *hypre_BoomerAMGCreate_flt ( void ); +void *hypre_BoomerAMGCreate_dbl ( void ); +void *hypre_BoomerAMGCreate_long_dbl ( void ); +HYPRE_Int hypre_BoomerAMGDestroy_flt ( void *data ); +HYPRE_Int hypre_BoomerAMGDestroy_dbl ( void *data ); +HYPRE_Int hypre_BoomerAMGDestroy_long_dbl ( void *data ); +HYPRE_Int hypre_BoomerAMGGetAdditive_flt ( void *data, HYPRE_Int *additive ); +HYPRE_Int hypre_BoomerAMGGetAdditive_dbl ( void *data, HYPRE_Int *additive ); +HYPRE_Int hypre_BoomerAMGGetAdditive_long_dbl ( void *data, HYPRE_Int *additive ); +HYPRE_Int hypre_BoomerAMGGetCoarsenCutFactor_flt ( void *data, HYPRE_Int *coarsen_cut_factor ); +HYPRE_Int hypre_BoomerAMGGetCoarsenCutFactor_dbl ( void *data, HYPRE_Int *coarsen_cut_factor ); +HYPRE_Int hypre_BoomerAMGGetCoarsenCutFactor_long_dbl ( void *data, HYPRE_Int *coarsen_cut_factor ); +HYPRE_Int hypre_BoomerAMGGetCoarsenType_flt ( void *data, HYPRE_Int *coarsen_type ); +HYPRE_Int hypre_BoomerAMGGetCoarsenType_dbl ( void *data, HYPRE_Int *coarsen_type ); +HYPRE_Int hypre_BoomerAMGGetCoarsenType_long_dbl ( void *data, HYPRE_Int *coarsen_type ); +HYPRE_Int hypre_BoomerAMGGetConvergeType_flt ( void *data, HYPRE_Int *type ); +HYPRE_Int hypre_BoomerAMGGetConvergeType_dbl ( void *data, HYPRE_Int *type ); +HYPRE_Int hypre_BoomerAMGGetConvergeType_long_dbl ( void *data, HYPRE_Int *type ); +HYPRE_Int hypre_BoomerAMGGetCumNnzAP_flt ( void *data, hypre_float *cum_nnz_AP ); +HYPRE_Int hypre_BoomerAMGGetCumNnzAP_dbl ( void *data, hypre_double *cum_nnz_AP ); +HYPRE_Int hypre_BoomerAMGGetCumNnzAP_long_dbl ( void *data, hypre_long_double *cum_nnz_AP ); +HYPRE_Int hypre_BoomerAMGGetCumNumIterations_flt ( void *data, HYPRE_Int *cum_num_iterations ); +HYPRE_Int hypre_BoomerAMGGetCumNumIterations_dbl ( void *data, HYPRE_Int *cum_num_iterations ); +HYPRE_Int hypre_BoomerAMGGetCumNumIterations_long_dbl ( void *data, HYPRE_Int *cum_num_iterations ); +HYPRE_Int hypre_BoomerAMGGetCycleNumSweeps_flt ( void *data, HYPRE_Int *num_sweeps, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGGetCycleNumSweeps_dbl ( void *data, HYPRE_Int *num_sweeps, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGGetCycleNumSweeps_long_dbl ( void *data, HYPRE_Int *num_sweeps, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGGetCycleRelaxType_flt ( void *data, HYPRE_Int *relax_type, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGGetCycleRelaxType_dbl ( void *data, HYPRE_Int *relax_type, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGGetCycleRelaxType_long_dbl ( void *data, HYPRE_Int *relax_type, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGGetCycleType_flt ( void *data, HYPRE_Int *cycle_type ); +HYPRE_Int hypre_BoomerAMGGetCycleType_dbl ( void *data, HYPRE_Int *cycle_type ); +HYPRE_Int hypre_BoomerAMGGetCycleType_long_dbl ( void *data, HYPRE_Int *cycle_type ); +HYPRE_Int hypre_BoomerAMGGetDebugFlag_flt ( void *data, HYPRE_Int *debug_flag ); +HYPRE_Int hypre_BoomerAMGGetDebugFlag_dbl ( void *data, HYPRE_Int *debug_flag ); +HYPRE_Int hypre_BoomerAMGGetDebugFlag_long_dbl ( void *data, HYPRE_Int *debug_flag ); +HYPRE_Int hypre_BoomerAMGGetDomainType_flt ( void *data, HYPRE_Int *domain_type ); +HYPRE_Int hypre_BoomerAMGGetDomainType_dbl ( void *data, HYPRE_Int *domain_type ); +HYPRE_Int hypre_BoomerAMGGetDomainType_long_dbl ( void *data, HYPRE_Int *domain_type ); +HYPRE_Int hypre_BoomerAMGGetFCycle_flt ( void *data, HYPRE_Int *fcycle ); +HYPRE_Int hypre_BoomerAMGGetFCycle_dbl ( void *data, HYPRE_Int *fcycle ); +HYPRE_Int hypre_BoomerAMGGetFCycle_long_dbl ( void *data, HYPRE_Int *fcycle ); +HYPRE_Int hypre_BoomerAMGGetFilterThresholdR_flt ( void *data, hypre_float *filter_threshold ); +HYPRE_Int hypre_BoomerAMGGetFilterThresholdR_dbl ( void *data, hypre_double *filter_threshold ); +HYPRE_Int hypre_BoomerAMGGetFilterThresholdR_long_dbl ( void *data, hypre_long_double *filter_threshold ); +HYPRE_Int hypre_BoomerAMGGetGridHierarchy_flt (void *data, HYPRE_Int *cgrid ); +HYPRE_Int hypre_BoomerAMGGetGridHierarchy_dbl (void *data, HYPRE_Int *cgrid ); +HYPRE_Int hypre_BoomerAMGGetGridHierarchy_long_dbl (void *data, HYPRE_Int *cgrid ); +HYPRE_Int hypre_BoomerAMGGetGridRelaxPoints_flt ( void *data, HYPRE_Int ***grid_relax_points ); +HYPRE_Int hypre_BoomerAMGGetGridRelaxPoints_dbl ( void *data, HYPRE_Int ***grid_relax_points ); +HYPRE_Int hypre_BoomerAMGGetGridRelaxPoints_long_dbl ( void *data, HYPRE_Int ***grid_relax_points ); +HYPRE_Int hypre_BoomerAMGGetGridRelaxType_flt ( void *data, HYPRE_Int **grid_relax_type ); +HYPRE_Int hypre_BoomerAMGGetGridRelaxType_dbl ( void *data, HYPRE_Int **grid_relax_type ); +HYPRE_Int hypre_BoomerAMGGetGridRelaxType_long_dbl ( void *data, HYPRE_Int **grid_relax_type ); +HYPRE_Int hypre_BoomerAMGGetInterpType_flt ( void *data, HYPRE_Int *interp_type ); +HYPRE_Int hypre_BoomerAMGGetInterpType_dbl ( void *data, HYPRE_Int *interp_type ); +HYPRE_Int hypre_BoomerAMGGetInterpType_long_dbl ( void *data, HYPRE_Int *interp_type ); +HYPRE_Int hypre_BoomerAMGGetJacobiTruncThreshold_flt ( void *data, hypre_float *jacobi_trunc_threshold ); +HYPRE_Int hypre_BoomerAMGGetJacobiTruncThreshold_dbl ( void *data, hypre_double *jacobi_trunc_threshold ); +HYPRE_Int hypre_BoomerAMGGetJacobiTruncThreshold_long_dbl ( void *data, hypre_long_double *jacobi_trunc_threshold ); +HYPRE_Int hypre_BoomerAMGGetLevelOuterWt_flt ( void *data, hypre_float *omega, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGGetLevelOuterWt_dbl ( void *data, hypre_double *omega, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGGetLevelOuterWt_long_dbl ( void *data, hypre_long_double *omega, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGGetLevelRelaxWt_flt ( void *data, hypre_float *relax_weight, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGGetLevelRelaxWt_dbl ( void *data, hypre_double *relax_weight, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGGetLevelRelaxWt_long_dbl ( void *data, hypre_long_double *relax_weight, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGGetLogging_flt ( void *data, HYPRE_Int *logging ); +HYPRE_Int hypre_BoomerAMGGetLogging_dbl ( void *data, HYPRE_Int *logging ); +HYPRE_Int hypre_BoomerAMGGetLogging_long_dbl ( void *data, HYPRE_Int *logging ); +HYPRE_Int hypre_BoomerAMGGetMaxCoarseSize_flt ( void *data, HYPRE_Int *max_coarse_size ); +HYPRE_Int hypre_BoomerAMGGetMaxCoarseSize_dbl ( void *data, HYPRE_Int *max_coarse_size ); +HYPRE_Int hypre_BoomerAMGGetMaxCoarseSize_long_dbl ( void *data, HYPRE_Int *max_coarse_size ); +HYPRE_Int hypre_BoomerAMGGetMaxIter_flt ( void *data, HYPRE_Int *max_iter ); +HYPRE_Int hypre_BoomerAMGGetMaxIter_dbl ( void *data, HYPRE_Int *max_iter ); +HYPRE_Int hypre_BoomerAMGGetMaxIter_long_dbl ( void *data, HYPRE_Int *max_iter ); +HYPRE_Int hypre_BoomerAMGGetMaxLevels_flt ( void *data, HYPRE_Int *max_levels ); +HYPRE_Int hypre_BoomerAMGGetMaxLevels_dbl ( void *data, HYPRE_Int *max_levels ); +HYPRE_Int hypre_BoomerAMGGetMaxLevels_long_dbl ( void *data, HYPRE_Int *max_levels ); +HYPRE_Int hypre_BoomerAMGGetMaxRowSum_flt ( void *data, hypre_float *max_row_sum ); +HYPRE_Int hypre_BoomerAMGGetMaxRowSum_dbl ( void *data, hypre_double *max_row_sum ); +HYPRE_Int hypre_BoomerAMGGetMaxRowSum_long_dbl ( void *data, hypre_long_double *max_row_sum ); +HYPRE_Int hypre_BoomerAMGGetMeasureType_flt ( void *data, HYPRE_Int *measure_type ); +HYPRE_Int hypre_BoomerAMGGetMeasureType_dbl ( void *data, HYPRE_Int *measure_type ); +HYPRE_Int hypre_BoomerAMGGetMeasureType_long_dbl ( void *data, HYPRE_Int *measure_type ); +HYPRE_Int hypre_BoomerAMGGetMinCoarseSize_flt ( void *data, HYPRE_Int *min_coarse_size ); +HYPRE_Int hypre_BoomerAMGGetMinCoarseSize_dbl ( void *data, HYPRE_Int *min_coarse_size ); +HYPRE_Int hypre_BoomerAMGGetMinCoarseSize_long_dbl ( void *data, HYPRE_Int *min_coarse_size ); +HYPRE_Int hypre_BoomerAMGGetMinIter_flt ( void *data, HYPRE_Int *min_iter ); +HYPRE_Int hypre_BoomerAMGGetMinIter_dbl ( void *data, HYPRE_Int *min_iter ); +HYPRE_Int hypre_BoomerAMGGetMinIter_long_dbl ( void *data, HYPRE_Int *min_iter ); +HYPRE_Int hypre_BoomerAMGGetMultAdditive_flt ( void *data, HYPRE_Int *mult_additive ); +HYPRE_Int hypre_BoomerAMGGetMultAdditive_dbl ( void *data, HYPRE_Int *mult_additive ); +HYPRE_Int hypre_BoomerAMGGetMultAdditive_long_dbl ( void *data, HYPRE_Int *mult_additive ); +HYPRE_Int hypre_BoomerAMGGetNumFunctions_flt ( void *data, HYPRE_Int *num_functions ); +HYPRE_Int hypre_BoomerAMGGetNumFunctions_dbl ( void *data, HYPRE_Int *num_functions ); +HYPRE_Int hypre_BoomerAMGGetNumFunctions_long_dbl ( void *data, HYPRE_Int *num_functions ); +HYPRE_Int hypre_BoomerAMGGetNumGridSweeps_flt ( void *data, HYPRE_Int **num_grid_sweeps ); +HYPRE_Int hypre_BoomerAMGGetNumGridSweeps_dbl ( void *data, HYPRE_Int **num_grid_sweeps ); +HYPRE_Int hypre_BoomerAMGGetNumGridSweeps_long_dbl ( void *data, HYPRE_Int **num_grid_sweeps ); +HYPRE_Int hypre_BoomerAMGGetNumIterations_flt ( void *data, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_BoomerAMGGetNumIterations_dbl ( void *data, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_BoomerAMGGetNumIterations_long_dbl ( void *data, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_BoomerAMGGetOmega_flt ( void *data, hypre_float **omega ); +HYPRE_Int hypre_BoomerAMGGetOmega_dbl ( void *data, hypre_double **omega ); +HYPRE_Int hypre_BoomerAMGGetOmega_long_dbl ( void *data, hypre_long_double **omega ); +HYPRE_Int hypre_BoomerAMGGetOverlap_flt ( void *data, HYPRE_Int *overlap ); +HYPRE_Int hypre_BoomerAMGGetOverlap_dbl ( void *data, HYPRE_Int *overlap ); +HYPRE_Int hypre_BoomerAMGGetOverlap_long_dbl ( void *data, HYPRE_Int *overlap ); +HYPRE_Int hypre_BoomerAMGGetPMaxElmts_flt ( void *data, HYPRE_Int *P_max_elmts ); +HYPRE_Int hypre_BoomerAMGGetPMaxElmts_dbl ( void *data, HYPRE_Int *P_max_elmts ); +HYPRE_Int hypre_BoomerAMGGetPMaxElmts_long_dbl ( void *data, HYPRE_Int *P_max_elmts ); +HYPRE_Int hypre_BoomerAMGGetPostInterpType_flt ( void *data, HYPRE_Int *post_interp_type ); +HYPRE_Int hypre_BoomerAMGGetPostInterpType_dbl ( void *data, HYPRE_Int *post_interp_type ); +HYPRE_Int hypre_BoomerAMGGetPostInterpType_long_dbl ( void *data, HYPRE_Int *post_interp_type ); +HYPRE_Int hypre_BoomerAMGGetPrintFileName_flt ( void *data, char **print_file_name ); +HYPRE_Int hypre_BoomerAMGGetPrintFileName_dbl ( void *data, char **print_file_name ); +HYPRE_Int hypre_BoomerAMGGetPrintFileName_long_dbl ( void *data, char **print_file_name ); +HYPRE_Int hypre_BoomerAMGGetPrintLevel_flt ( void *data, HYPRE_Int *print_level ); +HYPRE_Int hypre_BoomerAMGGetPrintLevel_dbl ( void *data, HYPRE_Int *print_level ); +HYPRE_Int hypre_BoomerAMGGetPrintLevel_long_dbl ( void *data, HYPRE_Int *print_level ); +HYPRE_Int hypre_BoomerAMGGetRedundant_flt ( void *data, HYPRE_Int *redundant ); +HYPRE_Int hypre_BoomerAMGGetRedundant_dbl ( void *data, HYPRE_Int *redundant ); +HYPRE_Int hypre_BoomerAMGGetRedundant_long_dbl ( void *data, HYPRE_Int *redundant ); +HYPRE_Int hypre_BoomerAMGGetRelaxOrder_flt ( void *data, HYPRE_Int *relax_order ); +HYPRE_Int hypre_BoomerAMGGetRelaxOrder_dbl ( void *data, HYPRE_Int *relax_order ); +HYPRE_Int hypre_BoomerAMGGetRelaxOrder_long_dbl ( void *data, HYPRE_Int *relax_order ); +HYPRE_Int hypre_BoomerAMGGetRelaxWeight_flt ( void *data, hypre_float **relax_weight ); +HYPRE_Int hypre_BoomerAMGGetRelaxWeight_dbl ( void *data, hypre_double **relax_weight ); +HYPRE_Int hypre_BoomerAMGGetRelaxWeight_long_dbl ( void *data, hypre_long_double **relax_weight ); +HYPRE_Int hypre_BoomerAMGGetRelResidualNorm_flt ( void *data, hypre_float *rel_resid_norm ); +HYPRE_Int hypre_BoomerAMGGetRelResidualNorm_dbl ( void *data, hypre_double *rel_resid_norm ); +HYPRE_Int hypre_BoomerAMGGetRelResidualNorm_long_dbl ( void *data, hypre_long_double *rel_resid_norm ); +HYPRE_Int hypre_BoomerAMGGetResidual_flt ( void *data, hypre_ParVector **resid ); +HYPRE_Int hypre_BoomerAMGGetResidual_dbl ( void *data, hypre_ParVector **resid ); +HYPRE_Int hypre_BoomerAMGGetResidual_long_dbl ( void *data, hypre_ParVector **resid ); +HYPRE_Int hypre_BoomerAMGGetSchwarzRlxWeight_flt ( void *data, hypre_float *schwarz_rlx_weight ); +HYPRE_Int hypre_BoomerAMGGetSchwarzRlxWeight_dbl ( void *data, hypre_double *schwarz_rlx_weight ); +HYPRE_Int hypre_BoomerAMGGetSchwarzRlxWeight_long_dbl ( void *data, hypre_long_double *schwarz_rlx_weight ); +HYPRE_Int hypre_BoomerAMGGetSeqThreshold_flt ( void *data, HYPRE_Int *seq_threshold ); +HYPRE_Int hypre_BoomerAMGGetSeqThreshold_dbl ( void *data, HYPRE_Int *seq_threshold ); +HYPRE_Int hypre_BoomerAMGGetSeqThreshold_long_dbl ( void *data, HYPRE_Int *seq_threshold ); +HYPRE_Int hypre_BoomerAMGGetSetupType_flt ( void *data, HYPRE_Int *setup_type ); +HYPRE_Int hypre_BoomerAMGGetSetupType_dbl ( void *data, HYPRE_Int *setup_type ); +HYPRE_Int hypre_BoomerAMGGetSetupType_long_dbl ( void *data, HYPRE_Int *setup_type ); +HYPRE_Int hypre_BoomerAMGGetSimple_flt ( void *data, HYPRE_Int *simple ); +HYPRE_Int hypre_BoomerAMGGetSimple_dbl ( void *data, HYPRE_Int *simple ); +HYPRE_Int hypre_BoomerAMGGetSimple_long_dbl ( void *data, HYPRE_Int *simple ); +HYPRE_Int hypre_BoomerAMGGetSmoothNumLevels_flt ( void *data, HYPRE_Int *smooth_num_levels ); +HYPRE_Int hypre_BoomerAMGGetSmoothNumLevels_dbl ( void *data, HYPRE_Int *smooth_num_levels ); +HYPRE_Int hypre_BoomerAMGGetSmoothNumLevels_long_dbl ( void *data, HYPRE_Int *smooth_num_levels ); +HYPRE_Int hypre_BoomerAMGGetSmoothNumSweeps_flt ( void *data, HYPRE_Int *smooth_num_sweeps ); +HYPRE_Int hypre_BoomerAMGGetSmoothNumSweeps_dbl ( void *data, HYPRE_Int *smooth_num_sweeps ); +HYPRE_Int hypre_BoomerAMGGetSmoothNumSweeps_long_dbl ( void *data, HYPRE_Int *smooth_num_sweeps ); +HYPRE_Int hypre_BoomerAMGGetSmoothType_flt ( void *data, HYPRE_Int *smooth_type ); +HYPRE_Int hypre_BoomerAMGGetSmoothType_dbl ( void *data, HYPRE_Int *smooth_type ); +HYPRE_Int hypre_BoomerAMGGetSmoothType_long_dbl ( void *data, HYPRE_Int *smooth_type ); +HYPRE_Int hypre_BoomerAMGGetStrongThreshold_flt ( void *data, hypre_float *strong_threshold ); +HYPRE_Int hypre_BoomerAMGGetStrongThreshold_dbl ( void *data, hypre_double *strong_threshold ); +HYPRE_Int hypre_BoomerAMGGetStrongThreshold_long_dbl ( void *data, hypre_long_double *strong_threshold ); +HYPRE_Int hypre_BoomerAMGGetStrongThresholdR_flt ( void *data, hypre_float *strong_threshold ); +HYPRE_Int hypre_BoomerAMGGetStrongThresholdR_dbl ( void *data, hypre_double *strong_threshold ); +HYPRE_Int hypre_BoomerAMGGetStrongThresholdR_long_dbl ( void *data, hypre_long_double *strong_threshold ); +HYPRE_Int hypre_BoomerAMGGetTol_flt ( void *data, hypre_float *tol ); +HYPRE_Int hypre_BoomerAMGGetTol_dbl ( void *data, hypre_double *tol ); +HYPRE_Int hypre_BoomerAMGGetTol_long_dbl ( void *data, hypre_long_double *tol ); +HYPRE_Int hypre_BoomerAMGGetTruncFactor_flt ( void *data, hypre_float *trunc_factor ); +HYPRE_Int hypre_BoomerAMGGetTruncFactor_dbl ( void *data, hypre_double *trunc_factor ); +HYPRE_Int hypre_BoomerAMGGetTruncFactor_long_dbl ( void *data, hypre_long_double *trunc_factor ); +HYPRE_Int hypre_BoomerAMGGetVariant_flt ( void *data, HYPRE_Int *variant ); +HYPRE_Int hypre_BoomerAMGGetVariant_dbl ( void *data, HYPRE_Int *variant ); +HYPRE_Int hypre_BoomerAMGGetVariant_long_dbl ( void *data, HYPRE_Int *variant ); +HYPRE_Int hypre_BoomerAMGSetAdditive_flt ( void *data, HYPRE_Int additive ); +HYPRE_Int hypre_BoomerAMGSetAdditive_dbl ( void *data, HYPRE_Int additive ); +HYPRE_Int hypre_BoomerAMGSetAdditive_long_dbl ( void *data, HYPRE_Int additive ); +HYPRE_Int hypre_BoomerAMGSetAddLastLvl_flt ( void *data, HYPRE_Int add_last_lvl ); +HYPRE_Int hypre_BoomerAMGSetAddLastLvl_dbl ( void *data, HYPRE_Int add_last_lvl ); +HYPRE_Int hypre_BoomerAMGSetAddLastLvl_long_dbl ( void *data, HYPRE_Int add_last_lvl ); +HYPRE_Int hypre_BoomerAMGSetAddRelaxType_flt ( void *data, HYPRE_Int add_rlx_type ); +HYPRE_Int hypre_BoomerAMGSetAddRelaxType_dbl ( void *data, HYPRE_Int add_rlx_type ); +HYPRE_Int hypre_BoomerAMGSetAddRelaxType_long_dbl ( void *data, HYPRE_Int add_rlx_type ); +HYPRE_Int hypre_BoomerAMGSetAddRelaxWt_flt ( void *data, hypre_float add_rlx_wt ); +HYPRE_Int hypre_BoomerAMGSetAddRelaxWt_dbl ( void *data, hypre_double add_rlx_wt ); +HYPRE_Int hypre_BoomerAMGSetAddRelaxWt_long_dbl ( void *data, hypre_long_double add_rlx_wt ); +HYPRE_Int hypre_BoomerAMGSetADropTol_flt ( void *data, hypre_float A_drop_tol ); +HYPRE_Int hypre_BoomerAMGSetADropTol_dbl ( void *data, hypre_double A_drop_tol ); +HYPRE_Int hypre_BoomerAMGSetADropTol_long_dbl ( void *data, hypre_long_double A_drop_tol ); +HYPRE_Int hypre_BoomerAMGSetADropType_flt ( void *data, HYPRE_Int A_drop_type ); +HYPRE_Int hypre_BoomerAMGSetADropType_dbl ( void *data, HYPRE_Int A_drop_type ); +HYPRE_Int hypre_BoomerAMGSetADropType_long_dbl ( void *data, HYPRE_Int A_drop_type ); +HYPRE_Int hypre_BoomerAMGSetAggInterpType_flt ( void *data, HYPRE_Int agg_interp_type ); +HYPRE_Int hypre_BoomerAMGSetAggInterpType_dbl ( void *data, HYPRE_Int agg_interp_type ); +HYPRE_Int hypre_BoomerAMGSetAggInterpType_long_dbl ( void *data, HYPRE_Int agg_interp_type ); +HYPRE_Int hypre_BoomerAMGSetAggNumLevels_flt ( void *data, HYPRE_Int agg_num_levels ); +HYPRE_Int hypre_BoomerAMGSetAggNumLevels_dbl ( void *data, HYPRE_Int agg_num_levels ); +HYPRE_Int hypre_BoomerAMGSetAggNumLevels_long_dbl ( void *data, HYPRE_Int agg_num_levels ); +HYPRE_Int hypre_BoomerAMGSetAggP12MaxElmts_flt ( void *data, HYPRE_Int agg_P12_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetAggP12MaxElmts_dbl ( void *data, HYPRE_Int agg_P12_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetAggP12MaxElmts_long_dbl ( void *data, HYPRE_Int agg_P12_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetAggP12TruncFactor_flt ( void *data, hypre_float agg_P12_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetAggP12TruncFactor_dbl ( void *data, hypre_double agg_P12_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetAggP12TruncFactor_long_dbl ( void *data, hypre_long_double agg_P12_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetAggPMaxElmts_flt ( void *data, HYPRE_Int agg_P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetAggPMaxElmts_dbl ( void *data, HYPRE_Int agg_P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetAggPMaxElmts_long_dbl ( void *data, HYPRE_Int agg_P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetAggTruncFactor_flt ( void *data, hypre_float agg_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetAggTruncFactor_dbl ( void *data, hypre_double agg_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetAggTruncFactor_long_dbl ( void *data, hypre_long_double agg_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetCGCIts_flt ( void *data, HYPRE_Int its ); +HYPRE_Int hypre_BoomerAMGSetCGCIts_dbl ( void *data, HYPRE_Int its ); +HYPRE_Int hypre_BoomerAMGSetCGCIts_long_dbl ( void *data, HYPRE_Int its ); +HYPRE_Int hypre_BoomerAMGSetChebyEigEst_flt ( void *data, HYPRE_Int eig_est ); +HYPRE_Int hypre_BoomerAMGSetChebyEigEst_dbl ( void *data, HYPRE_Int eig_est ); +HYPRE_Int hypre_BoomerAMGSetChebyEigEst_long_dbl ( void *data, HYPRE_Int eig_est ); +HYPRE_Int hypre_BoomerAMGSetChebyFraction_flt ( void *data, hypre_float ratio ); +HYPRE_Int hypre_BoomerAMGSetChebyFraction_dbl ( void *data, hypre_double ratio ); +HYPRE_Int hypre_BoomerAMGSetChebyFraction_long_dbl ( void *data, hypre_long_double ratio ); +HYPRE_Int hypre_BoomerAMGSetChebyOrder_flt ( void *data, HYPRE_Int order ); +HYPRE_Int hypre_BoomerAMGSetChebyOrder_dbl ( void *data, HYPRE_Int order ); +HYPRE_Int hypre_BoomerAMGSetChebyOrder_long_dbl ( void *data, HYPRE_Int order ); +HYPRE_Int hypre_BoomerAMGSetChebyScale_flt ( void *data, HYPRE_Int scale ); +HYPRE_Int hypre_BoomerAMGSetChebyScale_dbl ( void *data, HYPRE_Int scale ); +HYPRE_Int hypre_BoomerAMGSetChebyScale_long_dbl ( void *data, HYPRE_Int scale ); +HYPRE_Int hypre_BoomerAMGSetChebyVariant_flt ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_BoomerAMGSetChebyVariant_dbl ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_BoomerAMGSetChebyVariant_long_dbl ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_BoomerAMGSetCoarsenCutFactor_flt ( void *data, HYPRE_Int coarsen_cut_factor ); +HYPRE_Int hypre_BoomerAMGSetCoarsenCutFactor_dbl ( void *data, HYPRE_Int coarsen_cut_factor ); +HYPRE_Int hypre_BoomerAMGSetCoarsenCutFactor_long_dbl ( void *data, HYPRE_Int coarsen_cut_factor ); +HYPRE_Int hypre_BoomerAMGSetCoarsenType_flt ( void *data, HYPRE_Int coarsen_type ); +HYPRE_Int hypre_BoomerAMGSetCoarsenType_dbl ( void *data, HYPRE_Int coarsen_type ); +HYPRE_Int hypre_BoomerAMGSetCoarsenType_long_dbl ( void *data, HYPRE_Int coarsen_type ); +HYPRE_Int hypre_BoomerAMGSetConvergeType_flt ( void *data, HYPRE_Int type ); +HYPRE_Int hypre_BoomerAMGSetConvergeType_dbl ( void *data, HYPRE_Int type ); +HYPRE_Int hypre_BoomerAMGSetConvergeType_long_dbl ( void *data, HYPRE_Int type ); +HYPRE_Int hypre_BoomerAMGSetCoordDim_flt ( void *data, HYPRE_Int coorddim ); +HYPRE_Int hypre_BoomerAMGSetCoordDim_dbl ( void *data, HYPRE_Int coorddim ); +HYPRE_Int hypre_BoomerAMGSetCoordDim_long_dbl ( void *data, HYPRE_Int coorddim ); +HYPRE_Int hypre_BoomerAMGSetCoordinates_flt ( void *data, float *coordinates ); +HYPRE_Int hypre_BoomerAMGSetCoordinates_dbl ( void *data, float *coordinates ); +HYPRE_Int hypre_BoomerAMGSetCoordinates_long_dbl ( void *data, float *coordinates ); +HYPRE_Int hypre_BoomerAMGSetCPoints_flt ( void *data, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index ); +HYPRE_Int hypre_BoomerAMGSetCPoints_dbl ( void *data, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index ); +HYPRE_Int hypre_BoomerAMGSetCPoints_long_dbl ( void *data, HYPRE_Int cpt_coarse_level, + HYPRE_Int num_cpt_coarse, HYPRE_BigInt *cpt_coarse_index ); +HYPRE_Int hypre_BoomerAMGSetCRRate_flt ( void *data, hypre_float CR_rate ); +HYPRE_Int hypre_BoomerAMGSetCRRate_dbl ( void *data, hypre_double CR_rate ); +HYPRE_Int hypre_BoomerAMGSetCRRate_long_dbl ( void *data, hypre_long_double CR_rate ); +HYPRE_Int hypre_BoomerAMGSetCRStrongTh_flt ( void *data, hypre_float CR_strong_th ); +HYPRE_Int hypre_BoomerAMGSetCRStrongTh_dbl ( void *data, hypre_double CR_strong_th ); +HYPRE_Int hypre_BoomerAMGSetCRStrongTh_long_dbl ( void *data, hypre_long_double CR_strong_th ); +HYPRE_Int hypre_BoomerAMGSetCRUseCG_flt ( void *data, HYPRE_Int CR_use_CG ); +HYPRE_Int hypre_BoomerAMGSetCRUseCG_dbl ( void *data, HYPRE_Int CR_use_CG ); +HYPRE_Int hypre_BoomerAMGSetCRUseCG_long_dbl ( void *data, HYPRE_Int CR_use_CG ); +HYPRE_Int hypre_BoomerAMGSetCumNnzAP_flt ( void *data, hypre_float cum_nnz_AP ); +HYPRE_Int hypre_BoomerAMGSetCumNnzAP_dbl ( void *data, hypre_double cum_nnz_AP ); +HYPRE_Int hypre_BoomerAMGSetCumNnzAP_long_dbl ( void *data, hypre_long_double cum_nnz_AP ); +HYPRE_Int hypre_BoomerAMGSetCycleNumSweeps_flt ( void *data, HYPRE_Int num_sweeps, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGSetCycleNumSweeps_dbl ( void *data, HYPRE_Int num_sweeps, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGSetCycleNumSweeps_long_dbl ( void *data, HYPRE_Int num_sweeps, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGSetCycleRelaxType_flt ( void *data, HYPRE_Int relax_type, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGSetCycleRelaxType_dbl ( void *data, HYPRE_Int relax_type, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGSetCycleRelaxType_long_dbl ( void *data, HYPRE_Int relax_type, HYPRE_Int k ); +HYPRE_Int hypre_BoomerAMGSetCycleType_flt ( void *data, HYPRE_Int cycle_type ); +HYPRE_Int hypre_BoomerAMGSetCycleType_dbl ( void *data, HYPRE_Int cycle_type ); +HYPRE_Int hypre_BoomerAMGSetCycleType_long_dbl ( void *data, HYPRE_Int cycle_type ); +HYPRE_Int hypre_BoomerAMGSetDebugFlag_flt ( void *data, HYPRE_Int debug_flag ); +HYPRE_Int hypre_BoomerAMGSetDebugFlag_dbl ( void *data, HYPRE_Int debug_flag ); +HYPRE_Int hypre_BoomerAMGSetDebugFlag_long_dbl ( void *data, HYPRE_Int debug_flag ); +HYPRE_Int hypre_BoomerAMGSetDofFunc_flt ( void *data, HYPRE_Int *dof_func ); +HYPRE_Int hypre_BoomerAMGSetDofFunc_dbl ( void *data, HYPRE_Int *dof_func ); +HYPRE_Int hypre_BoomerAMGSetDofFunc_long_dbl ( void *data, HYPRE_Int *dof_func ); +HYPRE_Int hypre_BoomerAMGSetDofPoint_flt ( void *data, HYPRE_Int *dof_point ); +HYPRE_Int hypre_BoomerAMGSetDofPoint_dbl ( void *data, HYPRE_Int *dof_point ); +HYPRE_Int hypre_BoomerAMGSetDofPoint_long_dbl ( void *data, HYPRE_Int *dof_point ); +HYPRE_Int hypre_BoomerAMGSetDomainType_flt ( void *data, HYPRE_Int domain_type ); +HYPRE_Int hypre_BoomerAMGSetDomainType_dbl ( void *data, HYPRE_Int domain_type ); +HYPRE_Int hypre_BoomerAMGSetDomainType_long_dbl ( void *data, HYPRE_Int domain_type ); +HYPRE_Int hypre_BoomerAMGSetDropTol_flt ( void *data, hypre_float drop_tol ); +HYPRE_Int hypre_BoomerAMGSetDropTol_dbl ( void *data, hypre_double drop_tol ); +HYPRE_Int hypre_BoomerAMGSetDropTol_long_dbl ( void *data, hypre_long_double drop_tol ); +HYPRE_Int hypre_BoomerAMGSetEuBJ_flt ( void *data, HYPRE_Int eu_bj ); +HYPRE_Int hypre_BoomerAMGSetEuBJ_dbl ( void *data, HYPRE_Int eu_bj ); +HYPRE_Int hypre_BoomerAMGSetEuBJ_long_dbl ( void *data, HYPRE_Int eu_bj ); +HYPRE_Int hypre_BoomerAMGSetEuclidFile_flt ( void *data, char *euclidfile ); +HYPRE_Int hypre_BoomerAMGSetEuclidFile_dbl ( void *data, char *euclidfile ); +HYPRE_Int hypre_BoomerAMGSetEuclidFile_long_dbl ( void *data, char *euclidfile ); +HYPRE_Int hypre_BoomerAMGSetEuLevel_flt ( void *data, HYPRE_Int eu_level ); +HYPRE_Int hypre_BoomerAMGSetEuLevel_dbl ( void *data, HYPRE_Int eu_level ); +HYPRE_Int hypre_BoomerAMGSetEuLevel_long_dbl ( void *data, HYPRE_Int eu_level ); +HYPRE_Int hypre_BoomerAMGSetEuSparseA_flt ( void *data, hypre_float eu_sparse_A ); +HYPRE_Int hypre_BoomerAMGSetEuSparseA_dbl ( void *data, hypre_double eu_sparse_A ); +HYPRE_Int hypre_BoomerAMGSetEuSparseA_long_dbl ( void *data, hypre_long_double eu_sparse_A ); +HYPRE_Int hypre_BoomerAMGSetFCycle_flt ( void *data, HYPRE_Int fcycle ); +HYPRE_Int hypre_BoomerAMGSetFCycle_dbl ( void *data, HYPRE_Int fcycle ); +HYPRE_Int hypre_BoomerAMGSetFCycle_long_dbl ( void *data, HYPRE_Int fcycle ); +HYPRE_Int hypre_BoomerAMGSetFilter_flt ( void *data, hypre_float filter ); +HYPRE_Int hypre_BoomerAMGSetFilter_dbl ( void *data, hypre_double filter ); +HYPRE_Int hypre_BoomerAMGSetFilter_long_dbl ( void *data, hypre_long_double filter ); +HYPRE_Int hypre_BoomerAMGSetFilterThresholdR_flt ( void *data, hypre_float filter_threshold ); +HYPRE_Int hypre_BoomerAMGSetFilterThresholdR_dbl ( void *data, hypre_double filter_threshold ); +HYPRE_Int hypre_BoomerAMGSetFilterThresholdR_long_dbl ( void *data, hypre_long_double filter_threshold ); +HYPRE_Int hypre_BoomerAMGSetFPoints_flt ( void *data, HYPRE_Int isolated, HYPRE_Int num_points, + HYPRE_BigInt *indices ); +HYPRE_Int hypre_BoomerAMGSetFPoints_dbl ( void *data, HYPRE_Int isolated, HYPRE_Int num_points, + HYPRE_BigInt *indices ); +HYPRE_Int hypre_BoomerAMGSetFPoints_long_dbl ( void *data, HYPRE_Int isolated, HYPRE_Int num_points, + HYPRE_BigInt *indices ); +HYPRE_Int hypre_BoomerAMGSetFSAIAlgoType_flt ( void *data, HYPRE_Int fsai_algo_type ); +HYPRE_Int hypre_BoomerAMGSetFSAIAlgoType_dbl ( void *data, HYPRE_Int fsai_algo_type ); +HYPRE_Int hypre_BoomerAMGSetFSAIAlgoType_long_dbl ( void *data, HYPRE_Int fsai_algo_type ); +HYPRE_Int hypre_BoomerAMGSetFSAIEigMaxIters_flt ( void *data, HYPRE_Int fsai_eig_max_iters ); +HYPRE_Int hypre_BoomerAMGSetFSAIEigMaxIters_dbl ( void *data, HYPRE_Int fsai_eig_max_iters ); +HYPRE_Int hypre_BoomerAMGSetFSAIEigMaxIters_long_dbl ( void *data, HYPRE_Int fsai_eig_max_iters ); +HYPRE_Int hypre_BoomerAMGSetFSAIKapTolerance_flt ( void *data, hypre_float fsai_kap_tolerance ); +HYPRE_Int hypre_BoomerAMGSetFSAIKapTolerance_dbl ( void *data, hypre_double fsai_kap_tolerance ); +HYPRE_Int hypre_BoomerAMGSetFSAIKapTolerance_long_dbl ( void *data, hypre_long_double fsai_kap_tolerance ); +HYPRE_Int hypre_BoomerAMGSetFSAILocalSolveType_flt ( void *data, HYPRE_Int local_solve_type ); +HYPRE_Int hypre_BoomerAMGSetFSAILocalSolveType_dbl ( void *data, HYPRE_Int local_solve_type ); +HYPRE_Int hypre_BoomerAMGSetFSAILocalSolveType_long_dbl ( void *data, HYPRE_Int local_solve_type ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxNnzRow_flt ( void *data, HYPRE_Int fsai_max_nnz_row ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxNnzRow_dbl ( void *data, HYPRE_Int fsai_max_nnz_row ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxNnzRow_long_dbl ( void *data, HYPRE_Int fsai_max_nnz_row ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxSteps_flt ( void *data, HYPRE_Int fsai_max_steps ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxSteps_dbl ( void *data, HYPRE_Int fsai_max_steps ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxSteps_long_dbl ( void *data, HYPRE_Int fsai_max_steps ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxStepSize_flt ( void *data, HYPRE_Int fsai_max_step_size ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxStepSize_dbl ( void *data, HYPRE_Int fsai_max_step_size ); +HYPRE_Int hypre_BoomerAMGSetFSAIMaxStepSize_long_dbl ( void *data, HYPRE_Int fsai_max_step_size ); +HYPRE_Int hypre_BoomerAMGSetFSAINumLevels_flt ( void *data, HYPRE_Int fsai_num_levels ); +HYPRE_Int hypre_BoomerAMGSetFSAINumLevels_dbl ( void *data, HYPRE_Int fsai_num_levels ); +HYPRE_Int hypre_BoomerAMGSetFSAINumLevels_long_dbl ( void *data, HYPRE_Int fsai_num_levels ); +HYPRE_Int hypre_BoomerAMGSetFSAIThreshold_flt ( void *data, hypre_float fsai_threshold ); +HYPRE_Int hypre_BoomerAMGSetFSAIThreshold_dbl ( void *data, hypre_double fsai_threshold ); +HYPRE_Int hypre_BoomerAMGSetFSAIThreshold_long_dbl ( void *data, hypre_long_double fsai_threshold ); +HYPRE_Int hypre_BoomerAMGSetGMRESSwitchR_flt ( void *data, HYPRE_Int gmres_switch ); +HYPRE_Int hypre_BoomerAMGSetGMRESSwitchR_dbl ( void *data, HYPRE_Int gmres_switch ); +HYPRE_Int hypre_BoomerAMGSetGMRESSwitchR_long_dbl ( void *data, HYPRE_Int gmres_switch ); +HYPRE_Int hypre_BoomerAMGSetGridRelaxPoints_flt ( void *data, HYPRE_Int **grid_relax_points ); +HYPRE_Int hypre_BoomerAMGSetGridRelaxPoints_dbl ( void *data, HYPRE_Int **grid_relax_points ); +HYPRE_Int hypre_BoomerAMGSetGridRelaxPoints_long_dbl ( void *data, HYPRE_Int **grid_relax_points ); +HYPRE_Int hypre_BoomerAMGSetGridRelaxType_flt ( void *data, HYPRE_Int *grid_relax_type ); +HYPRE_Int hypre_BoomerAMGSetGridRelaxType_dbl ( void *data, HYPRE_Int *grid_relax_type ); +HYPRE_Int hypre_BoomerAMGSetGridRelaxType_long_dbl ( void *data, HYPRE_Int *grid_relax_type ); +HYPRE_Int hypre_BoomerAMGSetGSMG_flt ( void *data, HYPRE_Int par ); +HYPRE_Int hypre_BoomerAMGSetGSMG_dbl ( void *data, HYPRE_Int par ); +HYPRE_Int hypre_BoomerAMGSetGSMG_long_dbl ( void *data, HYPRE_Int par ); +HYPRE_Int hypre_BoomerAMGSetILUDroptol_flt ( void *data, hypre_float ilu_droptol ); +HYPRE_Int hypre_BoomerAMGSetILUDroptol_dbl ( void *data, hypre_double ilu_droptol ); +HYPRE_Int hypre_BoomerAMGSetILUDroptol_long_dbl ( void *data, hypre_long_double ilu_droptol ); +HYPRE_Int hypre_BoomerAMGSetILULevel_flt ( void *data, HYPRE_Int ilu_lfil ); +HYPRE_Int hypre_BoomerAMGSetILULevel_dbl ( void *data, HYPRE_Int ilu_lfil ); +HYPRE_Int hypre_BoomerAMGSetILULevel_long_dbl ( void *data, HYPRE_Int ilu_lfil ); +HYPRE_Int hypre_BoomerAMGSetILULocalReordering_flt ( void *data, HYPRE_Int ilu_reordering_type ); +HYPRE_Int hypre_BoomerAMGSetILULocalReordering_dbl ( void *data, HYPRE_Int ilu_reordering_type ); +HYPRE_Int hypre_BoomerAMGSetILULocalReordering_long_dbl ( void *data, HYPRE_Int ilu_reordering_type ); +HYPRE_Int hypre_BoomerAMGSetILULowerJacobiIters_flt ( void *data, HYPRE_Int ilu_lower_jacobi_iters ); +HYPRE_Int hypre_BoomerAMGSetILULowerJacobiIters_dbl ( void *data, HYPRE_Int ilu_lower_jacobi_iters ); +HYPRE_Int hypre_BoomerAMGSetILULowerJacobiIters_long_dbl ( void *data, HYPRE_Int ilu_lower_jacobi_iters ); +HYPRE_Int hypre_BoomerAMGSetILUMaxIter_flt ( void *data, HYPRE_Int ilu_max_iter ); +HYPRE_Int hypre_BoomerAMGSetILUMaxIter_dbl ( void *data, HYPRE_Int ilu_max_iter ); +HYPRE_Int hypre_BoomerAMGSetILUMaxIter_long_dbl ( void *data, HYPRE_Int ilu_max_iter ); +HYPRE_Int hypre_BoomerAMGSetILUMaxRowNnz_flt ( void *data, HYPRE_Int ilu_max_row_nnz ); +HYPRE_Int hypre_BoomerAMGSetILUMaxRowNnz_dbl ( void *data, HYPRE_Int ilu_max_row_nnz ); +HYPRE_Int hypre_BoomerAMGSetILUMaxRowNnz_long_dbl ( void *data, HYPRE_Int ilu_max_row_nnz ); +HYPRE_Int hypre_BoomerAMGSetILUTriSolve_flt ( void *data, HYPRE_Int ilu_tri_solve ); +HYPRE_Int hypre_BoomerAMGSetILUTriSolve_dbl ( void *data, HYPRE_Int ilu_tri_solve ); +HYPRE_Int hypre_BoomerAMGSetILUTriSolve_long_dbl ( void *data, HYPRE_Int ilu_tri_solve ); +HYPRE_Int hypre_BoomerAMGSetILUType_flt ( void *data, HYPRE_Int ilu_type ); +HYPRE_Int hypre_BoomerAMGSetILUType_dbl ( void *data, HYPRE_Int ilu_type ); +HYPRE_Int hypre_BoomerAMGSetILUType_long_dbl ( void *data, HYPRE_Int ilu_type ); +HYPRE_Int hypre_BoomerAMGSetILUUpperJacobiIters_flt ( void *data, HYPRE_Int ilu_upper_jacobi_iters ); +HYPRE_Int hypre_BoomerAMGSetILUUpperJacobiIters_dbl ( void *data, HYPRE_Int ilu_upper_jacobi_iters ); +HYPRE_Int hypre_BoomerAMGSetILUUpperJacobiIters_long_dbl ( void *data, HYPRE_Int ilu_upper_jacobi_iters ); +HYPRE_Int hypre_BoomerAMGSetInterpRefine_flt ( void *data, HYPRE_Int num_refine ); +HYPRE_Int hypre_BoomerAMGSetInterpRefine_dbl ( void *data, HYPRE_Int num_refine ); +HYPRE_Int hypre_BoomerAMGSetInterpRefine_long_dbl ( void *data, HYPRE_Int num_refine ); +HYPRE_Int hypre_BoomerAMGSetInterpType_flt ( void *data, HYPRE_Int interp_type ); +HYPRE_Int hypre_BoomerAMGSetInterpType_dbl ( void *data, HYPRE_Int interp_type ); +HYPRE_Int hypre_BoomerAMGSetInterpType_long_dbl ( void *data, HYPRE_Int interp_type ); +HYPRE_Int hypre_BoomerAMGSetInterpVecAbsQTrunc_flt ( void *data, hypre_float q_trunc ); +HYPRE_Int hypre_BoomerAMGSetInterpVecAbsQTrunc_dbl ( void *data, hypre_double q_trunc ); +HYPRE_Int hypre_BoomerAMGSetInterpVecAbsQTrunc_long_dbl ( void *data, hypre_long_double q_trunc ); +HYPRE_Int hypre_BoomerAMGSetInterpVecFirstLevel_flt ( void *data, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetInterpVecFirstLevel_dbl ( void *data, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetInterpVecFirstLevel_long_dbl ( void *data, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetInterpVecQMax_flt ( void *data, HYPRE_Int q_max ); +HYPRE_Int hypre_BoomerAMGSetInterpVecQMax_dbl ( void *data, HYPRE_Int q_max ); +HYPRE_Int hypre_BoomerAMGSetInterpVecQMax_long_dbl ( void *data, HYPRE_Int q_max ); +HYPRE_Int hypre_BoomerAMGSetInterpVectors_flt ( void *solver, HYPRE_Int num_vectors, + hypre_ParVector **interp_vectors ); +HYPRE_Int hypre_BoomerAMGSetInterpVectors_dbl ( void *solver, HYPRE_Int num_vectors, + hypre_ParVector **interp_vectors ); +HYPRE_Int hypre_BoomerAMGSetInterpVectors_long_dbl ( void *solver, HYPRE_Int num_vectors, + hypre_ParVector **interp_vectors ); +HYPRE_Int hypre_BoomerAMGSetInterpVecVariant_flt ( void *solver, HYPRE_Int var ); +HYPRE_Int hypre_BoomerAMGSetInterpVecVariant_dbl ( void *solver, HYPRE_Int var ); +HYPRE_Int hypre_BoomerAMGSetInterpVecVariant_long_dbl ( void *solver, HYPRE_Int var ); +HYPRE_Int hypre_BoomerAMGSetIsTriangular_flt ( void *data, HYPRE_Int is_triangular ); +HYPRE_Int hypre_BoomerAMGSetIsTriangular_dbl ( void *data, HYPRE_Int is_triangular ); +HYPRE_Int hypre_BoomerAMGSetIsTriangular_long_dbl ( void *data, HYPRE_Int is_triangular ); +HYPRE_Int hypre_BoomerAMGSetISType_flt ( void *data, HYPRE_Int IS_type ); +HYPRE_Int hypre_BoomerAMGSetISType_dbl ( void *data, HYPRE_Int IS_type ); +HYPRE_Int hypre_BoomerAMGSetISType_long_dbl ( void *data, HYPRE_Int IS_type ); +HYPRE_Int hypre_BoomerAMGSetJacobiTruncThreshold_flt ( void *data, hypre_float jacobi_trunc_threshold ); +HYPRE_Int hypre_BoomerAMGSetJacobiTruncThreshold_dbl ( void *data, hypre_double jacobi_trunc_threshold ); +HYPRE_Int hypre_BoomerAMGSetJacobiTruncThreshold_long_dbl ( void *data, hypre_long_double jacobi_trunc_threshold ); +HYPRE_Int hypre_BoomerAMGSetKeepSameSign_flt ( void *data, HYPRE_Int keep_same_sign ); +HYPRE_Int hypre_BoomerAMGSetKeepSameSign_dbl ( void *data, HYPRE_Int keep_same_sign ); +HYPRE_Int hypre_BoomerAMGSetKeepSameSign_long_dbl ( void *data, HYPRE_Int keep_same_sign ); +HYPRE_Int hypre_BoomerAMGSetKeepTranspose_flt ( void *data, HYPRE_Int keepTranspose ); +HYPRE_Int hypre_BoomerAMGSetKeepTranspose_dbl ( void *data, HYPRE_Int keepTranspose ); +HYPRE_Int hypre_BoomerAMGSetKeepTranspose_long_dbl ( void *data, HYPRE_Int keepTranspose ); +HYPRE_Int hypre_BoomerAMGSetLevel_flt ( void *data, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevel_dbl ( void *data, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevel_long_dbl ( void *data, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelNonGalerkinTol_flt ( void *data, hypre_float nongalerkin_tol, + HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelNonGalerkinTol_dbl ( void *data, hypre_double nongalerkin_tol, + HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelNonGalerkinTol_long_dbl ( void *data, hypre_long_double nongalerkin_tol, + HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelOuterWt_flt ( void *data, hypre_float omega, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelOuterWt_dbl ( void *data, hypre_double omega, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelOuterWt_long_dbl ( void *data, hypre_long_double omega, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelRelaxWt_flt ( void *data, hypre_float relax_weight, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelRelaxWt_dbl ( void *data, hypre_double relax_weight, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLevelRelaxWt_long_dbl ( void *data, hypre_long_double relax_weight, HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSetLogging_flt ( void *data, HYPRE_Int logging ); +HYPRE_Int hypre_BoomerAMGSetLogging_dbl ( void *data, HYPRE_Int logging ); +HYPRE_Int hypre_BoomerAMGSetLogging_long_dbl ( void *data, HYPRE_Int logging ); +HYPRE_Int hypre_BoomerAMGSetMaxCoarseSize_flt ( void *data, HYPRE_Int max_coarse_size ); +HYPRE_Int hypre_BoomerAMGSetMaxCoarseSize_dbl ( void *data, HYPRE_Int max_coarse_size ); +HYPRE_Int hypre_BoomerAMGSetMaxCoarseSize_long_dbl ( void *data, HYPRE_Int max_coarse_size ); +HYPRE_Int hypre_BoomerAMGSetMaxIter_flt ( void *data, HYPRE_Int max_iter ); +HYPRE_Int hypre_BoomerAMGSetMaxIter_dbl ( void *data, HYPRE_Int max_iter ); +HYPRE_Int hypre_BoomerAMGSetMaxIter_long_dbl ( void *data, HYPRE_Int max_iter ); +HYPRE_Int hypre_BoomerAMGSetMaxLevels_flt ( void *data, HYPRE_Int max_levels ); +HYPRE_Int hypre_BoomerAMGSetMaxLevels_dbl ( void *data, HYPRE_Int max_levels ); +HYPRE_Int hypre_BoomerAMGSetMaxLevels_long_dbl ( void *data, HYPRE_Int max_levels ); +HYPRE_Int hypre_BoomerAMGSetMaxNzPerRow_flt ( void *data, HYPRE_Int max_nz_per_row ); +HYPRE_Int hypre_BoomerAMGSetMaxNzPerRow_dbl ( void *data, HYPRE_Int max_nz_per_row ); +HYPRE_Int hypre_BoomerAMGSetMaxNzPerRow_long_dbl ( void *data, HYPRE_Int max_nz_per_row ); +HYPRE_Int hypre_BoomerAMGSetMaxRowSum_flt ( void *data, hypre_float max_row_sum ); +HYPRE_Int hypre_BoomerAMGSetMaxRowSum_dbl ( void *data, hypre_double max_row_sum ); +HYPRE_Int hypre_BoomerAMGSetMaxRowSum_long_dbl ( void *data, hypre_long_double max_row_sum ); +HYPRE_Int hypre_BoomerAMGSetMeasureType_flt ( void *data, HYPRE_Int measure_type ); +HYPRE_Int hypre_BoomerAMGSetMeasureType_dbl ( void *data, HYPRE_Int measure_type ); +HYPRE_Int hypre_BoomerAMGSetMeasureType_long_dbl ( void *data, HYPRE_Int measure_type ); +HYPRE_Int hypre_BoomerAMGSetMinCoarseSize_flt ( void *data, HYPRE_Int min_coarse_size ); +HYPRE_Int hypre_BoomerAMGSetMinCoarseSize_dbl ( void *data, HYPRE_Int min_coarse_size ); +HYPRE_Int hypre_BoomerAMGSetMinCoarseSize_long_dbl ( void *data, HYPRE_Int min_coarse_size ); +HYPRE_Int hypre_BoomerAMGSetMinIter_flt ( void *data, HYPRE_Int min_iter ); +HYPRE_Int hypre_BoomerAMGSetMinIter_dbl ( void *data, HYPRE_Int min_iter ); +HYPRE_Int hypre_BoomerAMGSetMinIter_long_dbl ( void *data, HYPRE_Int min_iter ); +HYPRE_Int hypre_BoomerAMGSetModuleRAP2_flt ( void *data, HYPRE_Int mod_rap2 ); +HYPRE_Int hypre_BoomerAMGSetModuleRAP2_dbl ( void *data, HYPRE_Int mod_rap2 ); +HYPRE_Int hypre_BoomerAMGSetModuleRAP2_long_dbl ( void *data, HYPRE_Int mod_rap2 ); +HYPRE_Int hypre_BoomerAMGSetMultAdditive_flt ( void *data, HYPRE_Int mult_additive ); +HYPRE_Int hypre_BoomerAMGSetMultAdditive_dbl ( void *data, HYPRE_Int mult_additive ); +HYPRE_Int hypre_BoomerAMGSetMultAdditive_long_dbl ( void *data, HYPRE_Int mult_additive ); +HYPRE_Int hypre_BoomerAMGSetMultAddPMaxElmts_flt ( void *data, HYPRE_Int add_P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetMultAddPMaxElmts_dbl ( void *data, HYPRE_Int add_P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetMultAddPMaxElmts_long_dbl ( void *data, HYPRE_Int add_P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetMultAddTruncFactor_flt ( void *data, hypre_float add_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetMultAddTruncFactor_dbl ( void *data, hypre_double add_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetMultAddTruncFactor_long_dbl ( void *data, hypre_long_double add_trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetNodal_flt ( void *data, HYPRE_Int nodal ); +HYPRE_Int hypre_BoomerAMGSetNodal_dbl ( void *data, HYPRE_Int nodal ); +HYPRE_Int hypre_BoomerAMGSetNodal_long_dbl ( void *data, HYPRE_Int nodal ); +HYPRE_Int hypre_BoomerAMGSetNodalDiag_flt ( void *data, HYPRE_Int nodal ); +HYPRE_Int hypre_BoomerAMGSetNodalDiag_dbl ( void *data, HYPRE_Int nodal ); +HYPRE_Int hypre_BoomerAMGSetNodalDiag_long_dbl ( void *data, HYPRE_Int nodal ); +HYPRE_Int hypre_BoomerAMGSetNodalLevels_flt ( void *data, HYPRE_Int nodal_levels ); +HYPRE_Int hypre_BoomerAMGSetNodalLevels_dbl ( void *data, HYPRE_Int nodal_levels ); +HYPRE_Int hypre_BoomerAMGSetNodalLevels_long_dbl ( void *data, HYPRE_Int nodal_levels ); +HYPRE_Int hypre_BoomerAMGSetNonGalerkinTol_flt ( void *data, hypre_float nongalerkin_tol ); +HYPRE_Int hypre_BoomerAMGSetNonGalerkinTol_dbl ( void *data, hypre_double nongalerkin_tol ); +HYPRE_Int hypre_BoomerAMGSetNonGalerkinTol_long_dbl ( void *data, hypre_long_double nongalerkin_tol ); +HYPRE_Int hypre_BoomerAMGSetNonGalerkTol_flt ( void *data, HYPRE_Int nongalerk_num_tol, + hypre_float *nongalerk_tol ); +HYPRE_Int hypre_BoomerAMGSetNonGalerkTol_dbl ( void *data, HYPRE_Int nongalerk_num_tol, + hypre_double *nongalerk_tol ); +HYPRE_Int hypre_BoomerAMGSetNonGalerkTol_long_dbl ( void *data, HYPRE_Int nongalerk_num_tol, + hypre_long_double *nongalerk_tol ); +HYPRE_Int hypre_BoomerAMGSetNumCRRelaxSteps_flt ( void *data, HYPRE_Int num_CR_relax_steps ); +HYPRE_Int hypre_BoomerAMGSetNumCRRelaxSteps_dbl ( void *data, HYPRE_Int num_CR_relax_steps ); +HYPRE_Int hypre_BoomerAMGSetNumCRRelaxSteps_long_dbl ( void *data, HYPRE_Int num_CR_relax_steps ); +HYPRE_Int hypre_BoomerAMGSetNumFunctions_flt ( void *data, HYPRE_Int num_functions ); +HYPRE_Int hypre_BoomerAMGSetNumFunctions_dbl ( void *data, HYPRE_Int num_functions ); +HYPRE_Int hypre_BoomerAMGSetNumFunctions_long_dbl ( void *data, HYPRE_Int num_functions ); +HYPRE_Int hypre_BoomerAMGSetNumGridSweeps_flt ( void *data, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int hypre_BoomerAMGSetNumGridSweeps_dbl ( void *data, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int hypre_BoomerAMGSetNumGridSweeps_long_dbl ( void *data, HYPRE_Int *num_grid_sweeps ); +HYPRE_Int hypre_BoomerAMGSetNumIterations_flt ( void *data, HYPRE_Int num_iterations ); +HYPRE_Int hypre_BoomerAMGSetNumIterations_dbl ( void *data, HYPRE_Int num_iterations ); +HYPRE_Int hypre_BoomerAMGSetNumIterations_long_dbl ( void *data, HYPRE_Int num_iterations ); +HYPRE_Int hypre_BoomerAMGSetNumPaths_flt ( void *data, HYPRE_Int num_paths ); +HYPRE_Int hypre_BoomerAMGSetNumPaths_dbl ( void *data, HYPRE_Int num_paths ); +HYPRE_Int hypre_BoomerAMGSetNumPaths_long_dbl ( void *data, HYPRE_Int num_paths ); +HYPRE_Int hypre_BoomerAMGSetNumPoints_flt ( void *data, HYPRE_Int num_points ); +HYPRE_Int hypre_BoomerAMGSetNumPoints_dbl ( void *data, HYPRE_Int num_points ); +HYPRE_Int hypre_BoomerAMGSetNumPoints_long_dbl ( void *data, HYPRE_Int num_points ); +HYPRE_Int hypre_BoomerAMGSetNumSamples_flt ( void *data, HYPRE_Int par ); +HYPRE_Int hypre_BoomerAMGSetNumSamples_dbl ( void *data, HYPRE_Int par ); +HYPRE_Int hypre_BoomerAMGSetNumSamples_long_dbl ( void *data, HYPRE_Int par ); +HYPRE_Int hypre_BoomerAMGSetNumSweeps_flt ( void *data, HYPRE_Int num_sweeps ); +HYPRE_Int hypre_BoomerAMGSetNumSweeps_dbl ( void *data, HYPRE_Int num_sweeps ); +HYPRE_Int hypre_BoomerAMGSetNumSweeps_long_dbl ( void *data, HYPRE_Int num_sweeps ); +HYPRE_Int hypre_BoomerAMGSetOmega_flt ( void *data, hypre_float *omega ); +HYPRE_Int hypre_BoomerAMGSetOmega_dbl ( void *data, hypre_double *omega ); +HYPRE_Int hypre_BoomerAMGSetOmega_long_dbl ( void *data, hypre_long_double *omega ); +HYPRE_Int hypre_BoomerAMGSetOuterWt_flt ( void *data, hypre_float omega ); +HYPRE_Int hypre_BoomerAMGSetOuterWt_dbl ( void *data, hypre_double omega ); +HYPRE_Int hypre_BoomerAMGSetOuterWt_long_dbl ( void *data, hypre_long_double omega ); +HYPRE_Int hypre_BoomerAMGSetOverlap_flt ( void *data, HYPRE_Int overlap ); +HYPRE_Int hypre_BoomerAMGSetOverlap_dbl ( void *data, HYPRE_Int overlap ); +HYPRE_Int hypre_BoomerAMGSetOverlap_long_dbl ( void *data, HYPRE_Int overlap ); +HYPRE_Int hypre_BoomerAMGSetPlotFileName_flt ( void *data, const char *plot_file_name ); +HYPRE_Int hypre_BoomerAMGSetPlotFileName_dbl ( void *data, const char *plot_file_name ); +HYPRE_Int hypre_BoomerAMGSetPlotFileName_long_dbl ( void *data, const char *plot_file_name ); +HYPRE_Int hypre_BoomerAMGSetPlotGrids_flt ( void *data, HYPRE_Int plotgrids ); +HYPRE_Int hypre_BoomerAMGSetPlotGrids_dbl ( void *data, HYPRE_Int plotgrids ); +HYPRE_Int hypre_BoomerAMGSetPlotGrids_long_dbl ( void *data, HYPRE_Int plotgrids ); +HYPRE_Int hypre_BoomerAMGSetPMaxElmts_flt ( void *data, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetPMaxElmts_dbl ( void *data, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetPMaxElmts_long_dbl ( void *data, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_BoomerAMGSetPointDofMap_flt ( void *data, HYPRE_Int *point_dof_map ); +HYPRE_Int hypre_BoomerAMGSetPointDofMap_dbl ( void *data, HYPRE_Int *point_dof_map ); +HYPRE_Int hypre_BoomerAMGSetPointDofMap_long_dbl ( void *data, HYPRE_Int *point_dof_map ); +HYPRE_Int hypre_BoomerAMGSetPostInterpType_flt ( void *data, HYPRE_Int post_interp_type ); +HYPRE_Int hypre_BoomerAMGSetPostInterpType_dbl ( void *data, HYPRE_Int post_interp_type ); +HYPRE_Int hypre_BoomerAMGSetPostInterpType_long_dbl ( void *data, HYPRE_Int post_interp_type ); +HYPRE_Int hypre_BoomerAMGSetPrintFileName_flt ( void *data, const char *print_file_name ); +HYPRE_Int hypre_BoomerAMGSetPrintFileName_dbl ( void *data, const char *print_file_name ); +HYPRE_Int hypre_BoomerAMGSetPrintFileName_long_dbl ( void *data, const char *print_file_name ); +HYPRE_Int hypre_BoomerAMGSetPrintLevel_flt ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_BoomerAMGSetPrintLevel_dbl ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_BoomerAMGSetPrintLevel_long_dbl ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_BoomerAMGSetRAP2_flt ( void *data, HYPRE_Int rap2 ); +HYPRE_Int hypre_BoomerAMGSetRAP2_dbl ( void *data, HYPRE_Int rap2 ); +HYPRE_Int hypre_BoomerAMGSetRAP2_long_dbl ( void *data, HYPRE_Int rap2 ); +HYPRE_Int hypre_BoomerAMGSetRedundant_flt ( void *data, HYPRE_Int redundant ); +HYPRE_Int hypre_BoomerAMGSetRedundant_dbl ( void *data, HYPRE_Int redundant ); +HYPRE_Int hypre_BoomerAMGSetRedundant_long_dbl ( void *data, HYPRE_Int redundant ); +HYPRE_Int hypre_BoomerAMGSetRelaxOrder_flt ( void *data, HYPRE_Int relax_order ); +HYPRE_Int hypre_BoomerAMGSetRelaxOrder_dbl ( void *data, HYPRE_Int relax_order ); +HYPRE_Int hypre_BoomerAMGSetRelaxOrder_long_dbl ( void *data, HYPRE_Int relax_order ); +HYPRE_Int hypre_BoomerAMGSetRelaxType_flt ( void *data, HYPRE_Int relax_type ); +HYPRE_Int hypre_BoomerAMGSetRelaxType_dbl ( void *data, HYPRE_Int relax_type ); +HYPRE_Int hypre_BoomerAMGSetRelaxType_long_dbl ( void *data, HYPRE_Int relax_type ); +HYPRE_Int hypre_BoomerAMGSetRelaxWeight_flt ( void *data, hypre_float *relax_weight ); +HYPRE_Int hypre_BoomerAMGSetRelaxWeight_dbl ( void *data, hypre_double *relax_weight ); +HYPRE_Int hypre_BoomerAMGSetRelaxWeight_long_dbl ( void *data, hypre_long_double *relax_weight ); +HYPRE_Int hypre_BoomerAMGSetRelaxWt_flt ( void *data, hypre_float relax_weight ); +HYPRE_Int hypre_BoomerAMGSetRelaxWt_dbl ( void *data, hypre_double relax_weight ); +HYPRE_Int hypre_BoomerAMGSetRelaxWt_long_dbl ( void *data, hypre_long_double relax_weight ); +HYPRE_Int hypre_BoomerAMGSetRestriction_flt ( void *data, HYPRE_Int restr_par ); +HYPRE_Int hypre_BoomerAMGSetRestriction_dbl ( void *data, HYPRE_Int restr_par ); +HYPRE_Int hypre_BoomerAMGSetRestriction_long_dbl ( void *data, HYPRE_Int restr_par ); +HYPRE_Int hypre_BoomerAMGSetSabs_flt ( void *data, HYPRE_Int Sabs ); +HYPRE_Int hypre_BoomerAMGSetSabs_dbl ( void *data, HYPRE_Int Sabs ); +HYPRE_Int hypre_BoomerAMGSetSabs_long_dbl ( void *data, HYPRE_Int Sabs ); +HYPRE_Int hypre_BoomerAMGSetSchwarzRlxWeight_flt ( void *data, hypre_float schwarz_rlx_weight ); +HYPRE_Int hypre_BoomerAMGSetSchwarzRlxWeight_dbl ( void *data, hypre_double schwarz_rlx_weight ); +HYPRE_Int hypre_BoomerAMGSetSchwarzRlxWeight_long_dbl ( void *data, hypre_long_double schwarz_rlx_weight ); +HYPRE_Int hypre_BoomerAMGSetSchwarzUseNonSymm_flt ( void *data, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_BoomerAMGSetSchwarzUseNonSymm_dbl ( void *data, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_BoomerAMGSetSchwarzUseNonSymm_long_dbl ( void *data, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_BoomerAMGSetSepWeight_flt ( void *data, HYPRE_Int sep_weight ); +HYPRE_Int hypre_BoomerAMGSetSepWeight_dbl ( void *data, HYPRE_Int sep_weight ); +HYPRE_Int hypre_BoomerAMGSetSepWeight_long_dbl ( void *data, HYPRE_Int sep_weight ); +HYPRE_Int hypre_BoomerAMGSetSeqThreshold_flt ( void *data, HYPRE_Int seq_threshold ); +HYPRE_Int hypre_BoomerAMGSetSeqThreshold_dbl ( void *data, HYPRE_Int seq_threshold ); +HYPRE_Int hypre_BoomerAMGSetSeqThreshold_long_dbl ( void *data, HYPRE_Int seq_threshold ); +HYPRE_Int hypre_BoomerAMGSetSetupType_flt ( void *data, HYPRE_Int setup_type ); +HYPRE_Int hypre_BoomerAMGSetSetupType_dbl ( void *data, HYPRE_Int setup_type ); +HYPRE_Int hypre_BoomerAMGSetSetupType_long_dbl ( void *data, HYPRE_Int setup_type ); +HYPRE_Int hypre_BoomerAMGSetSimple_flt ( void *data, HYPRE_Int simple ); +HYPRE_Int hypre_BoomerAMGSetSimple_dbl ( void *data, HYPRE_Int simple ); +HYPRE_Int hypre_BoomerAMGSetSimple_long_dbl ( void *data, HYPRE_Int simple ); +HYPRE_Int hypre_BoomerAMGSetSmoothInterpVectors_flt ( void *solver, HYPRE_Int smooth_interp_vectors ); +HYPRE_Int hypre_BoomerAMGSetSmoothInterpVectors_dbl ( void *solver, HYPRE_Int smooth_interp_vectors ); +HYPRE_Int hypre_BoomerAMGSetSmoothInterpVectors_long_dbl ( void *solver, HYPRE_Int smooth_interp_vectors ); +HYPRE_Int hypre_BoomerAMGSetSmoothNumLevels_flt ( void *data, HYPRE_Int smooth_num_levels ); +HYPRE_Int hypre_BoomerAMGSetSmoothNumLevels_dbl ( void *data, HYPRE_Int smooth_num_levels ); +HYPRE_Int hypre_BoomerAMGSetSmoothNumLevels_long_dbl ( void *data, HYPRE_Int smooth_num_levels ); +HYPRE_Int hypre_BoomerAMGSetSmoothNumSweeps_flt ( void *data, HYPRE_Int smooth_num_sweeps ); +HYPRE_Int hypre_BoomerAMGSetSmoothNumSweeps_dbl ( void *data, HYPRE_Int smooth_num_sweeps ); +HYPRE_Int hypre_BoomerAMGSetSmoothNumSweeps_long_dbl ( void *data, HYPRE_Int smooth_num_sweeps ); +HYPRE_Int hypre_BoomerAMGSetSmoothType_flt ( void *data, HYPRE_Int smooth_type ); +HYPRE_Int hypre_BoomerAMGSetSmoothType_dbl ( void *data, HYPRE_Int smooth_type ); +HYPRE_Int hypre_BoomerAMGSetSmoothType_long_dbl ( void *data, HYPRE_Int smooth_type ); +HYPRE_Int hypre_BoomerAMGSetStrongThreshold_flt ( void *data, hypre_float strong_threshold ); +HYPRE_Int hypre_BoomerAMGSetStrongThreshold_dbl ( void *data, hypre_double strong_threshold ); +HYPRE_Int hypre_BoomerAMGSetStrongThreshold_long_dbl ( void *data, hypre_long_double strong_threshold ); +HYPRE_Int hypre_BoomerAMGSetStrongThresholdR_flt ( void *data, hypre_float strong_threshold ); +HYPRE_Int hypre_BoomerAMGSetStrongThresholdR_dbl ( void *data, hypre_double strong_threshold ); +HYPRE_Int hypre_BoomerAMGSetStrongThresholdR_long_dbl ( void *data, hypre_long_double strong_threshold ); +HYPRE_Int hypre_BoomerAMGSetSym_flt ( void *data, HYPRE_Int sym ); +HYPRE_Int hypre_BoomerAMGSetSym_dbl ( void *data, HYPRE_Int sym ); +HYPRE_Int hypre_BoomerAMGSetSym_long_dbl ( void *data, HYPRE_Int sym ); +HYPRE_Int hypre_BoomerAMGSetThreshold_flt ( void *data, hypre_float thresh ); +HYPRE_Int hypre_BoomerAMGSetThreshold_dbl ( void *data, hypre_double thresh ); +HYPRE_Int hypre_BoomerAMGSetThreshold_long_dbl ( void *data, hypre_long_double thresh ); +HYPRE_Int hypre_BoomerAMGSetTol_flt ( void *data, hypre_float tol ); +HYPRE_Int hypre_BoomerAMGSetTol_dbl ( void *data, hypre_double tol ); +HYPRE_Int hypre_BoomerAMGSetTol_long_dbl ( void *data, hypre_long_double tol ); +HYPRE_Int hypre_BoomerAMGSetTruncFactor_flt ( void *data, hypre_float trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetTruncFactor_dbl ( void *data, hypre_double trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetTruncFactor_long_dbl ( void *data, hypre_long_double trunc_factor ); +HYPRE_Int hypre_BoomerAMGSetVariant_flt ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_BoomerAMGSetVariant_dbl ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_BoomerAMGSetVariant_long_dbl ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_BoomerAMGSetup_flt ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSetup_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSetup_long_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSolve_flt ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSolve_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSolve_long_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGCycleT_flt ( void *amg_vdata, hypre_ParVector **F_array, + hypre_ParVector **U_array ); +HYPRE_Int hypre_BoomerAMGCycleT_dbl ( void *amg_vdata, hypre_ParVector **F_array, + hypre_ParVector **U_array ); +HYPRE_Int hypre_BoomerAMGCycleT_long_dbl ( void *amg_vdata, hypre_ParVector **F_array, + hypre_ParVector **U_array ); +HYPRE_Int hypre_BoomerAMGRelaxT_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_points, hypre_float relax_weight, hypre_ParVector *u, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelaxT_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_points, hypre_double relax_weight, hypre_ParVector *u, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelaxT_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_ParVector *u, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGSolveT_flt ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSolveT_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSolveT_long_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_AmgCGCBoundaryFix_flt ( hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, + HYPRE_Int *CF_marker_offd ); +HYPRE_Int hypre_AmgCGCBoundaryFix_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, + HYPRE_Int *CF_marker_offd ); +HYPRE_Int hypre_AmgCGCBoundaryFix_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, + HYPRE_Int *CF_marker_offd ); +HYPRE_Int hypre_AmgCGCChoose_flt ( hypre_CSRMatrix *G, HYPRE_Int *vertexrange, HYPRE_Int mpisize, + HYPRE_Int **coarse ); +HYPRE_Int hypre_AmgCGCChoose_dbl ( hypre_CSRMatrix *G, HYPRE_Int *vertexrange, HYPRE_Int mpisize, + HYPRE_Int **coarse ); +HYPRE_Int hypre_AmgCGCChoose_long_dbl ( hypre_CSRMatrix *G, HYPRE_Int *vertexrange, HYPRE_Int mpisize, + HYPRE_Int **coarse ); +HYPRE_Int hypre_AmgCGCGraphAssemble_flt ( hypre_ParCSRMatrix *S, HYPRE_Int *vertexrange, + HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, HYPRE_Int coarsen_type, HYPRE_IJMatrix *ijG ); +HYPRE_Int hypre_AmgCGCGraphAssemble_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int *vertexrange, + HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, HYPRE_Int coarsen_type, HYPRE_IJMatrix *ijG ); +HYPRE_Int hypre_AmgCGCGraphAssemble_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int *vertexrange, + HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, HYPRE_Int coarsen_type, HYPRE_IJMatrix *ijG ); +HYPRE_Int hypre_AmgCGCPrepare_flt ( hypre_ParCSRMatrix *S, HYPRE_Int nlocal, HYPRE_Int *CF_marker, + HYPRE_Int **CF_marker_offd, HYPRE_Int coarsen_type, HYPRE_Int **vrange ); +HYPRE_Int hypre_AmgCGCPrepare_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int nlocal, HYPRE_Int *CF_marker, + HYPRE_Int **CF_marker_offd, HYPRE_Int coarsen_type, HYPRE_Int **vrange ); +HYPRE_Int hypre_AmgCGCPrepare_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int nlocal, HYPRE_Int *CF_marker, + HYPRE_Int **CF_marker_offd, HYPRE_Int coarsen_type, HYPRE_Int **vrange ); +HYPRE_Int hypre_BoomerAMGCoarsenCGC_flt ( hypre_ParCSRMatrix *S, HYPRE_Int numberofgrids, + HYPRE_Int coarsen_type, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGCoarsenCGC_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int numberofgrids, + HYPRE_Int coarsen_type, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGCoarsenCGC_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int numberofgrids, + HYPRE_Int coarsen_type, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGCoarsenCGCb_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int coarsen_type, HYPRE_Int cgc_its, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenCGCb_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int coarsen_type, HYPRE_Int cgc_its, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenCGCb_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int coarsen_type, HYPRE_Int cgc_its, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_Bisection_flt ( HYPRE_Int n, hypre_float *diag, hypre_float *offd, hypre_float y, + hypre_float z, hypre_float tol, HYPRE_Int k, hypre_float *ev_ptr ); +HYPRE_Int hypre_Bisection_dbl ( HYPRE_Int n, hypre_double *diag, hypre_double *offd, hypre_double y, + hypre_double z, hypre_double tol, HYPRE_Int k, hypre_double *ev_ptr ); +HYPRE_Int hypre_Bisection_long_dbl ( HYPRE_Int n, hypre_long_double *diag, hypre_long_double *offd, hypre_long_double y, + hypre_long_double z, hypre_long_double tol, HYPRE_Int k, hypre_long_double *ev_ptr ); +HYPRE_Int hypre_BoomerAMGCGRelaxWt_flt ( void *amg_vdata, HYPRE_Int level, HYPRE_Int num_cg_sweeps, + hypre_float *rlx_wt_ptr ); +HYPRE_Int hypre_BoomerAMGCGRelaxWt_dbl ( void *amg_vdata, HYPRE_Int level, HYPRE_Int num_cg_sweeps, + hypre_double *rlx_wt_ptr ); +HYPRE_Int hypre_BoomerAMGCGRelaxWt_long_dbl ( void *amg_vdata, HYPRE_Int level, HYPRE_Int num_cg_sweeps, + hypre_long_double *rlx_wt_ptr ); +HYPRE_Int hypre_ParCSRRelax_Cheby_Setup_flt ( hypre_ParCSRMatrix *A, hypre_float max_eig, + hypre_float min_eig, hypre_float fraction, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_float **coefs_ptr, hypre_float **ds_ptr ); +HYPRE_Int hypre_ParCSRRelax_Cheby_Setup_dbl ( hypre_ParCSRMatrix *A, hypre_double max_eig, + hypre_double min_eig, hypre_double fraction, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_double **coefs_ptr, hypre_double **ds_ptr ); +HYPRE_Int hypre_ParCSRRelax_Cheby_Setup_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double max_eig, + hypre_long_double min_eig, hypre_long_double fraction, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_long_double **coefs_ptr, hypre_long_double **ds_ptr ); +HYPRE_Int hypre_ParCSRRelax_Cheby_Solve_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_float *ds_data, hypre_float *coefs, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r, hypre_ParVector *orig_u_vec, + hypre_ParVector *tmp_vec); +HYPRE_Int hypre_ParCSRRelax_Cheby_Solve_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_double *ds_data, hypre_double *coefs, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r, hypre_ParVector *orig_u_vec, + hypre_ParVector *tmp_vec); +HYPRE_Int hypre_ParCSRRelax_Cheby_Solve_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_long_double *ds_data, hypre_long_double *coefs, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r, hypre_ParVector *orig_u_vec, + hypre_ParVector *tmp_vec); +HYPRE_Int hypre_ParCSRRelax_Cheby_SolveHost_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_float *ds_data, hypre_float *coefs, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r, hypre_ParVector *orig_u_vec, + hypre_ParVector *tmp_vec); +HYPRE_Int hypre_ParCSRRelax_Cheby_SolveHost_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_double *ds_data, hypre_double *coefs, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r, hypre_ParVector *orig_u_vec, + hypre_ParVector *tmp_vec); +HYPRE_Int hypre_ParCSRRelax_Cheby_SolveHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_long_double *ds_data, hypre_long_double *coefs, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r, hypre_ParVector *orig_u_vec, + hypre_ParVector *tmp_vec); +HYPRE_Int hypre_BoomerAMGCoarsen_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, HYPRE_Int CF_init, + HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsen_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, HYPRE_Int CF_init, + HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsen_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, HYPRE_Int CF_init, + HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenFalgout_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenFalgout_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenFalgout_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenHMIS_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenHMIS_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenHMIS_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenPMIS_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int CF_init, HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenPMIS_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int CF_init, HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenPMIS_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int CF_init, HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenPMISHost_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int CF_init, HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenPMISHost_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int CF_init, HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenPMISHost_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int CF_init, HYPRE_Int debug_flag, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenRuge_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int coarsen_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenRuge_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int coarsen_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarsenRuge_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int measure_type, HYPRE_Int coarsen_type, HYPRE_Int cut_factor, HYPRE_Int debug_flag, + hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCoarseParms_flt ( MPI_Comm comm, HYPRE_Int local_num_variables, + HYPRE_Int num_functions, hypre_IntArray *dof_func, hypre_IntArray *CF_marker, + hypre_IntArray **coarse_dof_func_ptr, HYPRE_BigInt *coarse_pnts_global ); +HYPRE_Int hypre_BoomerAMGCoarseParms_dbl ( MPI_Comm comm, HYPRE_Int local_num_variables, + HYPRE_Int num_functions, hypre_IntArray *dof_func, hypre_IntArray *CF_marker, + hypre_IntArray **coarse_dof_func_ptr, HYPRE_BigInt *coarse_pnts_global ); +HYPRE_Int hypre_BoomerAMGCoarseParms_long_dbl ( MPI_Comm comm, HYPRE_Int local_num_variables, + HYPRE_Int num_functions, hypre_IntArray *dof_func, hypre_IntArray *CF_marker, + hypre_IntArray **coarse_dof_func_ptr, HYPRE_BigInt *coarse_pnts_global ); +HYPRE_Int hypre_BoomerAMGCoarseParmsHost_flt ( MPI_Comm comm, HYPRE_Int local_num_variables, + HYPRE_Int num_functions, hypre_IntArray *dof_func, hypre_IntArray *CF_marker, + hypre_IntArray **coarse_dof_func_ptr, HYPRE_BigInt *coarse_pnts_global ); +HYPRE_Int hypre_BoomerAMGCoarseParmsHost_dbl ( MPI_Comm comm, HYPRE_Int local_num_variables, + HYPRE_Int num_functions, hypre_IntArray *dof_func, hypre_IntArray *CF_marker, + hypre_IntArray **coarse_dof_func_ptr, HYPRE_BigInt *coarse_pnts_global ); +HYPRE_Int hypre_BoomerAMGCoarseParmsHost_long_dbl ( MPI_Comm comm, HYPRE_Int local_num_variables, + HYPRE_Int num_functions, hypre_IntArray *dof_func, hypre_IntArray *CF_marker, + hypre_IntArray **coarse_dof_func_ptr, HYPRE_BigInt *coarse_pnts_global ); +float *GenerateCoordinates_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_BigInt nz, + HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, HYPRE_Int coorddim ); +float *GenerateCoordinates_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_BigInt nz, + HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, HYPRE_Int coorddim ); +float *GenerateCoordinates_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_BigInt nz, + HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, HYPRE_Int coorddim ); +HYPRE_Int hypre_BoomerAMGCoarsenCR_flt ( hypre_ParCSRMatrix *A, hypre_IntArray **CF_marker_ptr, + HYPRE_BigInt *coarse_size_ptr, HYPRE_Int num_CR_relax_steps, HYPRE_Int IS_type, + HYPRE_Int num_functions, HYPRE_Int rlx_type, hypre_float relax_weight, hypre_float omega, + hypre_float theta, HYPRE_Solver smoother, hypre_ParCSRMatrix *AN, HYPRE_Int useCG, + hypre_ParCSRMatrix *S ); +HYPRE_Int hypre_BoomerAMGCoarsenCR_dbl ( hypre_ParCSRMatrix *A, hypre_IntArray **CF_marker_ptr, + HYPRE_BigInt *coarse_size_ptr, HYPRE_Int num_CR_relax_steps, HYPRE_Int IS_type, + HYPRE_Int num_functions, HYPRE_Int rlx_type, hypre_double relax_weight, hypre_double omega, + hypre_double theta, HYPRE_Solver smoother, hypre_ParCSRMatrix *AN, HYPRE_Int useCG, + hypre_ParCSRMatrix *S ); +HYPRE_Int hypre_BoomerAMGCoarsenCR_long_dbl ( hypre_ParCSRMatrix *A, hypre_IntArray **CF_marker_ptr, + HYPRE_BigInt *coarse_size_ptr, HYPRE_Int num_CR_relax_steps, HYPRE_Int IS_type, + HYPRE_Int num_functions, HYPRE_Int rlx_type, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double theta, HYPRE_Solver smoother, hypre_ParCSRMatrix *AN, HYPRE_Int useCG, + hypre_ParCSRMatrix *S ); +HYPRE_Int hypre_BoomerAMGCoarsenCR1_flt ( hypre_ParCSRMatrix *A, hypre_IntArray **CF_marker_ptr, + HYPRE_BigInt *coarse_size_ptr, HYPRE_Int num_CR_relax_steps, HYPRE_Int IS_type, + HYPRE_Int CRaddCpoints ); +HYPRE_Int hypre_BoomerAMGCoarsenCR1_dbl ( hypre_ParCSRMatrix *A, hypre_IntArray **CF_marker_ptr, + HYPRE_BigInt *coarse_size_ptr, HYPRE_Int num_CR_relax_steps, HYPRE_Int IS_type, + HYPRE_Int CRaddCpoints ); +HYPRE_Int hypre_BoomerAMGCoarsenCR1_long_dbl ( hypre_ParCSRMatrix *A, hypre_IntArray **CF_marker_ptr, + HYPRE_BigInt *coarse_size_ptr, HYPRE_Int num_CR_relax_steps, HYPRE_Int IS_type, + HYPRE_Int CRaddCpoints ); +HYPRE_Int hypre_BoomerAMGIndepHMIS_flt ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepHMIS_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepHMIS_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepHMISa_flt ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepHMISa_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepHMISa_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepPMIS_flt ( hypre_ParCSRMatrix *S, HYPRE_Int CF_init, HYPRE_Int debug_flag, + HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepPMIS_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int CF_init, HYPRE_Int debug_flag, + HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepPMIS_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int CF_init, HYPRE_Int debug_flag, + HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepPMISa_flt ( hypre_ParCSRMatrix *S, HYPRE_Int CF_init, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepPMISa_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int CF_init, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepPMISa_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int CF_init, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepRS_flt ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepRS_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepRS_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepRSa_flt ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepRSa_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_BoomerAMGIndepRSa_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int measure_type, + HYPRE_Int debug_flag, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_cr_flt ( HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_float *A_data, HYPRE_Int n, HYPRE_Int *cf, + HYPRE_Int rlx, hypre_float omega, hypre_float tg, HYPRE_Int mu ); +HYPRE_Int hypre_cr_dbl ( HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_double *A_data, HYPRE_Int n, HYPRE_Int *cf, + HYPRE_Int rlx, hypre_double omega, hypre_double tg, HYPRE_Int mu ); +HYPRE_Int hypre_cr_long_dbl ( HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_long_double *A_data, HYPRE_Int n, HYPRE_Int *cf, + HYPRE_Int rlx, hypre_long_double omega, hypre_long_double tg, HYPRE_Int mu ); +HYPRE_Int hypre_formu_flt ( HYPRE_Int *cf, HYPRE_Int n, hypre_float *e1, HYPRE_Int *A_i, + hypre_float rho ); +HYPRE_Int hypre_formu_dbl ( HYPRE_Int *cf, HYPRE_Int n, hypre_double *e1, HYPRE_Int *A_i, + hypre_double rho ); +HYPRE_Int hypre_formu_long_dbl ( HYPRE_Int *cf, HYPRE_Int n, hypre_long_double *e1, HYPRE_Int *A_i, + hypre_long_double rho ); +HYPRE_Int hypre_fptgscr_flt ( HYPRE_Int *cf, HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_float *A_data, + HYPRE_Int n, hypre_float *e0, hypre_float *e1 ); +HYPRE_Int hypre_fptgscr_dbl ( HYPRE_Int *cf, HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_double *A_data, + HYPRE_Int n, hypre_double *e0, hypre_double *e1 ); +HYPRE_Int hypre_fptgscr_long_dbl ( HYPRE_Int *cf, HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_long_double *A_data, + HYPRE_Int n, hypre_long_double *e0, hypre_long_double *e1 ); +HYPRE_Int hypre_fptjaccr_flt ( HYPRE_Int *cf, HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_float *A_data, + HYPRE_Int n, hypre_float *e0, hypre_float omega, hypre_float *e1 ); +HYPRE_Int hypre_fptjaccr_dbl ( HYPRE_Int *cf, HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_double *A_data, + HYPRE_Int n, hypre_double *e0, hypre_double omega, hypre_double *e1 ); +HYPRE_Int hypre_fptjaccr_long_dbl ( HYPRE_Int *cf, HYPRE_Int *A_i, HYPRE_Int *A_j, hypre_long_double *A_data, + HYPRE_Int n, hypre_long_double *e0, hypre_long_double omega, hypre_long_double *e1 ); +HYPRE_Int hypre_GraphAdd_flt ( Link *list, HYPRE_Int *head, HYPRE_Int *tail, HYPRE_Int index, + HYPRE_Int istack ); +HYPRE_Int hypre_GraphAdd_dbl ( Link *list, HYPRE_Int *head, HYPRE_Int *tail, HYPRE_Int index, + HYPRE_Int istack ); +HYPRE_Int hypre_GraphAdd_long_dbl ( Link *list, HYPRE_Int *head, HYPRE_Int *tail, HYPRE_Int index, + HYPRE_Int istack ); +HYPRE_Int hypre_GraphRemove_flt ( Link *list, HYPRE_Int *head, HYPRE_Int *tail, HYPRE_Int index ); +HYPRE_Int hypre_GraphRemove_dbl ( Link *list, HYPRE_Int *head, HYPRE_Int *tail, HYPRE_Int index ); +HYPRE_Int hypre_GraphRemove_long_dbl ( Link *list, HYPRE_Int *head, HYPRE_Int *tail, HYPRE_Int index ); +HYPRE_Int hypre_IndepSetGreedy_flt ( HYPRE_Int *A_i, HYPRE_Int *A_j, HYPRE_Int n, HYPRE_Int *cf ); +HYPRE_Int hypre_IndepSetGreedy_dbl ( HYPRE_Int *A_i, HYPRE_Int *A_j, HYPRE_Int n, HYPRE_Int *cf ); +HYPRE_Int hypre_IndepSetGreedy_long_dbl ( HYPRE_Int *A_i, HYPRE_Int *A_j, HYPRE_Int n, HYPRE_Int *cf ); +HYPRE_Int hypre_IndepSetGreedyS_flt ( HYPRE_Int *A_i, HYPRE_Int *A_j, HYPRE_Int n, HYPRE_Int *cf ); +HYPRE_Int hypre_IndepSetGreedyS_dbl ( HYPRE_Int *A_i, HYPRE_Int *A_j, HYPRE_Int n, HYPRE_Int *cf ); +HYPRE_Int hypre_IndepSetGreedyS_long_dbl ( HYPRE_Int *A_i, HYPRE_Int *A_j, HYPRE_Int n, HYPRE_Int *cf ); +HYPRE_Int hypre_BoomerAMGCycle_flt ( void *amg_vdata, hypre_ParVector **F_array, + hypre_ParVector **U_array ); +HYPRE_Int hypre_BoomerAMGCycle_dbl ( void *amg_vdata, hypre_ParVector **F_array, + hypre_ParVector **U_array ); +HYPRE_Int hypre_BoomerAMGCycle_long_dbl ( void *amg_vdata, hypre_ParVector **F_array, + hypre_ParVector **U_array ); +HYPRE_ParCSRMatrix GenerateDifConv_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_float *value ); +HYPRE_ParCSRMatrix GenerateDifConv_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_double *value ); +HYPRE_ParCSRMatrix GenerateDifConv_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_long_double *value ); +void* hypre_FSAICreate_flt ( void ); +void* hypre_FSAICreate_dbl ( void ); +void* hypre_FSAICreate_long_dbl ( void ); +HYPRE_Int hypre_FSAIDestroy_flt ( void *data ); +HYPRE_Int hypre_FSAIDestroy_dbl ( void *data ); +HYPRE_Int hypre_FSAIDestroy_long_dbl ( void *data ); +HYPRE_Int hypre_FSAIGetAlgoType_flt ( void *data, HYPRE_Int *algo_type ); +HYPRE_Int hypre_FSAIGetAlgoType_dbl ( void *data, HYPRE_Int *algo_type ); +HYPRE_Int hypre_FSAIGetAlgoType_long_dbl ( void *data, HYPRE_Int *algo_type ); +HYPRE_Int hypre_FSAIGetEigMaxIters_flt ( void *data, HYPRE_Int *eig_max_iters ); +HYPRE_Int hypre_FSAIGetEigMaxIters_dbl ( void *data, HYPRE_Int *eig_max_iters ); +HYPRE_Int hypre_FSAIGetEigMaxIters_long_dbl ( void *data, HYPRE_Int *eig_max_iters ); +HYPRE_Int hypre_FSAIGetKapTolerance_flt ( void *data, hypre_float *kap_tolerance ); +HYPRE_Int hypre_FSAIGetKapTolerance_dbl ( void *data, hypre_double *kap_tolerance ); +HYPRE_Int hypre_FSAIGetKapTolerance_long_dbl ( void *data, hypre_long_double *kap_tolerance ); +HYPRE_Int hypre_FSAIGetLocalSolveType_flt ( void *data, HYPRE_Int *local_solve_type ); +HYPRE_Int hypre_FSAIGetLocalSolveType_dbl ( void *data, HYPRE_Int *local_solve_type ); +HYPRE_Int hypre_FSAIGetLocalSolveType_long_dbl ( void *data, HYPRE_Int *local_solve_type ); +HYPRE_Int hypre_FSAIGetLogging_flt ( void *data, HYPRE_Int *logging ); +HYPRE_Int hypre_FSAIGetLogging_dbl ( void *data, HYPRE_Int *logging ); +HYPRE_Int hypre_FSAIGetLogging_long_dbl ( void *data, HYPRE_Int *logging ); +HYPRE_Int hypre_FSAIGetMaxIterations_flt ( void *data, HYPRE_Int *max_iterations ); +HYPRE_Int hypre_FSAIGetMaxIterations_dbl ( void *data, HYPRE_Int *max_iterations ); +HYPRE_Int hypre_FSAIGetMaxIterations_long_dbl ( void *data, HYPRE_Int *max_iterations ); +HYPRE_Int hypre_FSAIGetMaxNnzRow_flt ( void *data, HYPRE_Int *max_nnz_row ); +HYPRE_Int hypre_FSAIGetMaxNnzRow_dbl ( void *data, HYPRE_Int *max_nnz_row ); +HYPRE_Int hypre_FSAIGetMaxNnzRow_long_dbl ( void *data, HYPRE_Int *max_nnz_row ); +HYPRE_Int hypre_FSAIGetMaxSteps_flt ( void *data, HYPRE_Int *max_steps ); +HYPRE_Int hypre_FSAIGetMaxSteps_dbl ( void *data, HYPRE_Int *max_steps ); +HYPRE_Int hypre_FSAIGetMaxSteps_long_dbl ( void *data, HYPRE_Int *max_steps ); +HYPRE_Int hypre_FSAIGetMaxStepSize_flt ( void *data, HYPRE_Int *max_step_size ); +HYPRE_Int hypre_FSAIGetMaxStepSize_dbl ( void *data, HYPRE_Int *max_step_size ); +HYPRE_Int hypre_FSAIGetMaxStepSize_long_dbl ( void *data, HYPRE_Int *max_step_size ); +HYPRE_Int hypre_FSAIGetNumIterations_flt ( void *data, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_FSAIGetNumIterations_dbl ( void *data, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_FSAIGetNumIterations_long_dbl ( void *data, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_FSAIGetNumLevels_flt ( void *data, HYPRE_Int *num_levels ); +HYPRE_Int hypre_FSAIGetNumLevels_dbl ( void *data, HYPRE_Int *num_levels ); +HYPRE_Int hypre_FSAIGetNumLevels_long_dbl ( void *data, HYPRE_Int *num_levels ); +HYPRE_Int hypre_FSAIGetOmega_flt ( void *data, hypre_float *omega ); +HYPRE_Int hypre_FSAIGetOmega_dbl ( void *data, hypre_double *omega ); +HYPRE_Int hypre_FSAIGetOmega_long_dbl ( void *data, hypre_long_double *omega ); +HYPRE_Int hypre_FSAIGetPrintLevel_flt ( void *data, HYPRE_Int *print_level ); +HYPRE_Int hypre_FSAIGetPrintLevel_dbl ( void *data, HYPRE_Int *print_level ); +HYPRE_Int hypre_FSAIGetPrintLevel_long_dbl ( void *data, HYPRE_Int *print_level ); +HYPRE_Int hypre_FSAIGetThreshold_flt ( void *data, hypre_float *threshold ); +HYPRE_Int hypre_FSAIGetThreshold_dbl ( void *data, hypre_double *threshold ); +HYPRE_Int hypre_FSAIGetThreshold_long_dbl ( void *data, hypre_long_double *threshold ); +HYPRE_Int hypre_FSAIGetTolerance_flt ( void *data, hypre_float *tolerance ); +HYPRE_Int hypre_FSAIGetTolerance_dbl ( void *data, hypre_double *tolerance ); +HYPRE_Int hypre_FSAIGetTolerance_long_dbl ( void *data, hypre_long_double *tolerance ); +HYPRE_Int hypre_FSAIGetZeroGuess_flt ( void *data, HYPRE_Int *zero_guess ); +HYPRE_Int hypre_FSAIGetZeroGuess_dbl ( void *data, HYPRE_Int *zero_guess ); +HYPRE_Int hypre_FSAIGetZeroGuess_long_dbl ( void *data, HYPRE_Int *zero_guess ); +HYPRE_Int hypre_FSAISetAlgoType_flt ( void *data, HYPRE_Int algo_type ); +HYPRE_Int hypre_FSAISetAlgoType_dbl ( void *data, HYPRE_Int algo_type ); +HYPRE_Int hypre_FSAISetAlgoType_long_dbl ( void *data, HYPRE_Int algo_type ); +HYPRE_Int hypre_FSAISetEigMaxIters_flt ( void *data, HYPRE_Int eig_max_iters ); +HYPRE_Int hypre_FSAISetEigMaxIters_dbl ( void *data, HYPRE_Int eig_max_iters ); +HYPRE_Int hypre_FSAISetEigMaxIters_long_dbl ( void *data, HYPRE_Int eig_max_iters ); +HYPRE_Int hypre_FSAISetKapTolerance_flt ( void *data, hypre_float kap_tolerance ); +HYPRE_Int hypre_FSAISetKapTolerance_dbl ( void *data, hypre_double kap_tolerance ); +HYPRE_Int hypre_FSAISetKapTolerance_long_dbl ( void *data, hypre_long_double kap_tolerance ); +HYPRE_Int hypre_FSAISetLocalSolveType_flt ( void *data, HYPRE_Int local_solve_type ); +HYPRE_Int hypre_FSAISetLocalSolveType_dbl ( void *data, HYPRE_Int local_solve_type ); +HYPRE_Int hypre_FSAISetLocalSolveType_long_dbl ( void *data, HYPRE_Int local_solve_type ); +HYPRE_Int hypre_FSAISetLogging_flt ( void *data, HYPRE_Int logging ); +HYPRE_Int hypre_FSAISetLogging_dbl ( void *data, HYPRE_Int logging ); +HYPRE_Int hypre_FSAISetLogging_long_dbl ( void *data, HYPRE_Int logging ); +HYPRE_Int hypre_FSAISetMaxIterations_flt ( void *data, HYPRE_Int max_iterations ); +HYPRE_Int hypre_FSAISetMaxIterations_dbl ( void *data, HYPRE_Int max_iterations ); +HYPRE_Int hypre_FSAISetMaxIterations_long_dbl ( void *data, HYPRE_Int max_iterations ); +HYPRE_Int hypre_FSAISetMaxNnzRow_flt ( void *data, HYPRE_Int max_nnz_row ); +HYPRE_Int hypre_FSAISetMaxNnzRow_dbl ( void *data, HYPRE_Int max_nnz_row ); +HYPRE_Int hypre_FSAISetMaxNnzRow_long_dbl ( void *data, HYPRE_Int max_nnz_row ); +HYPRE_Int hypre_FSAISetMaxSteps_flt ( void *data, HYPRE_Int max_steps ); +HYPRE_Int hypre_FSAISetMaxSteps_dbl ( void *data, HYPRE_Int max_steps ); +HYPRE_Int hypre_FSAISetMaxSteps_long_dbl ( void *data, HYPRE_Int max_steps ); +HYPRE_Int hypre_FSAISetMaxStepSize_flt ( void *data, HYPRE_Int max_step_size ); +HYPRE_Int hypre_FSAISetMaxStepSize_dbl ( void *data, HYPRE_Int max_step_size ); +HYPRE_Int hypre_FSAISetMaxStepSize_long_dbl ( void *data, HYPRE_Int max_step_size ); +HYPRE_Int hypre_FSAISetNumIterations_flt ( void *data, HYPRE_Int num_iterations ); +HYPRE_Int hypre_FSAISetNumIterations_dbl ( void *data, HYPRE_Int num_iterations ); +HYPRE_Int hypre_FSAISetNumIterations_long_dbl ( void *data, HYPRE_Int num_iterations ); +HYPRE_Int hypre_FSAISetNumLevels_flt ( void *data, HYPRE_Int num_levels ); +HYPRE_Int hypre_FSAISetNumLevels_dbl ( void *data, HYPRE_Int num_levels ); +HYPRE_Int hypre_FSAISetNumLevels_long_dbl ( void *data, HYPRE_Int num_levels ); +HYPRE_Int hypre_FSAISetOmega_flt ( void *data, hypre_float omega ); +HYPRE_Int hypre_FSAISetOmega_dbl ( void *data, hypre_double omega ); +HYPRE_Int hypre_FSAISetOmega_long_dbl ( void *data, hypre_long_double omega ); +HYPRE_Int hypre_FSAISetPrintLevel_flt ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_FSAISetPrintLevel_dbl ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_FSAISetPrintLevel_long_dbl ( void *data, HYPRE_Int print_level ); +HYPRE_Int hypre_FSAISetThreshold_flt ( void *data, hypre_float threshold ); +HYPRE_Int hypre_FSAISetThreshold_dbl ( void *data, hypre_double threshold ); +HYPRE_Int hypre_FSAISetThreshold_long_dbl ( void *data, hypre_long_double threshold ); +HYPRE_Int hypre_FSAISetTolerance_flt ( void *data, hypre_float tolerance ); +HYPRE_Int hypre_FSAISetTolerance_dbl ( void *data, hypre_double tolerance ); +HYPRE_Int hypre_FSAISetTolerance_long_dbl ( void *data, hypre_long_double tolerance ); +HYPRE_Int hypre_FSAISetZeroGuess_flt ( void *data, HYPRE_Int zero_guess ); +HYPRE_Int hypre_FSAISetZeroGuess_dbl ( void *data, HYPRE_Int zero_guess ); +HYPRE_Int hypre_FSAISetZeroGuess_long_dbl ( void *data, HYPRE_Int zero_guess ); +HYPRE_Int hypre_AddToPattern_flt ( hypre_Vector *kaporin_gradient, HYPRE_Int *kap_grad_nonzeros, + HYPRE_Int *S_Pattern, HYPRE_Int *S_nnz, HYPRE_Int *kg_marker, + HYPRE_Int max_step_size ); +HYPRE_Int hypre_AddToPattern_dbl ( hypre_Vector *kaporin_gradient, HYPRE_Int *kap_grad_nonzeros, + HYPRE_Int *S_Pattern, HYPRE_Int *S_nnz, HYPRE_Int *kg_marker, + HYPRE_Int max_step_size ); +HYPRE_Int hypre_AddToPattern_long_dbl ( hypre_Vector *kaporin_gradient, HYPRE_Int *kap_grad_nonzeros, + HYPRE_Int *S_Pattern, HYPRE_Int *S_nnz, HYPRE_Int *kg_marker, + HYPRE_Int max_step_size ); +HYPRE_Int hypre_CSRMatrixExtractDenseMat_flt ( hypre_CSRMatrix *A, hypre_Vector *A_sub, + HYPRE_Int *S_Pattern, HYPRE_Int S_nnz, + HYPRE_Int *marker ); +HYPRE_Int hypre_CSRMatrixExtractDenseMat_dbl ( hypre_CSRMatrix *A, hypre_Vector *A_sub, + HYPRE_Int *S_Pattern, HYPRE_Int S_nnz, + HYPRE_Int *marker ); +HYPRE_Int hypre_CSRMatrixExtractDenseMat_long_dbl ( hypre_CSRMatrix *A, hypre_Vector *A_sub, + HYPRE_Int *S_Pattern, HYPRE_Int S_nnz, + HYPRE_Int *marker ); +HYPRE_Int hypre_CSRMatrixExtractDenseRow_flt ( hypre_CSRMatrix *A, hypre_Vector *A_subrow, + HYPRE_Int *marker, HYPRE_Int row_num ); +HYPRE_Int hypre_CSRMatrixExtractDenseRow_dbl ( hypre_CSRMatrix *A, hypre_Vector *A_subrow, + HYPRE_Int *marker, HYPRE_Int row_num ); +HYPRE_Int hypre_CSRMatrixExtractDenseRow_long_dbl ( hypre_CSRMatrix *A, hypre_Vector *A_subrow, + HYPRE_Int *marker, HYPRE_Int row_num ); +HYPRE_Int hypre_FindKapGrad_flt ( hypre_CSRMatrix *A_diag, hypre_Vector *kaporin_gradient, + HYPRE_Int *kap_grad_nonzeros, hypre_Vector *G_temp, + HYPRE_Int *S_Pattern, HYPRE_Int S_nnz, + HYPRE_Int max_row_size, HYPRE_Int row_num, HYPRE_Int *kg_marker ); +HYPRE_Int hypre_FindKapGrad_dbl ( hypre_CSRMatrix *A_diag, hypre_Vector *kaporin_gradient, + HYPRE_Int *kap_grad_nonzeros, hypre_Vector *G_temp, + HYPRE_Int *S_Pattern, HYPRE_Int S_nnz, + HYPRE_Int max_row_size, HYPRE_Int row_num, HYPRE_Int *kg_marker ); +HYPRE_Int hypre_FindKapGrad_long_dbl ( hypre_CSRMatrix *A_diag, hypre_Vector *kaporin_gradient, + HYPRE_Int *kap_grad_nonzeros, hypre_Vector *G_temp, + HYPRE_Int *S_Pattern, HYPRE_Int S_nnz, + HYPRE_Int max_row_size, HYPRE_Int row_num, HYPRE_Int *kg_marker ); +HYPRE_Int hypre_FSAIComputeOmega_flt ( void *fsai_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIComputeOmega_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIComputeOmega_long_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIDumpLocalLSDense_flt ( void *fsai_vdata, const char *filename, + hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIDumpLocalLSDense_dbl ( void *fsai_vdata, const char *filename, + hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIDumpLocalLSDense_long_dbl ( void *fsai_vdata, const char *filename, + hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIPrintStats_flt ( void *fsai_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIPrintStats_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAIPrintStats_long_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_FSAISetup_flt ( void *fsai_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetup_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetup_long_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetupNative_flt ( void *fsai_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetupNative_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetupNative_long_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetupOMPDyn_flt ( void *fsai_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetupOMPDyn_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_FSAISetupOMPDyn_long_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +void hypre_qsort2_ci_flt ( hypre_float *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_ci_dbl ( hypre_double *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_ci_long_dbl ( hypre_long_double *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_swap2_ci_flt ( hypre_float *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2_ci_dbl ( hypre_double *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2_ci_long_dbl ( hypre_long_double *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +HYPRE_Int hypre_FSAIApply_flt ( void *fsai_vdata, hypre_float alpha, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_FSAIApply_dbl ( void *fsai_vdata, hypre_double alpha, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_FSAIApply_long_dbl ( void *fsai_vdata, hypre_long_double alpha, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_FSAISolve_flt ( void *fsai_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_FSAISolve_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_FSAISolve_long_dbl ( void *fsai_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *b, + hypre_ParVector *x ); +HYPRE_Int hypre_GaussElimSetup_flt ( hypre_ParAMGData *amg_data, HYPRE_Int level, + HYPRE_Int relax_type ); +HYPRE_Int hypre_GaussElimSetup_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int level, + HYPRE_Int relax_type ); +HYPRE_Int hypre_GaussElimSetup_long_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int level, + HYPRE_Int relax_type ); +HYPRE_Int hypre_GaussElimSolve_flt ( hypre_ParAMGData *amg_data, HYPRE_Int level, + HYPRE_Int relax_type ); +HYPRE_Int hypre_GaussElimSolve_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int level, + HYPRE_Int relax_type ); +HYPRE_Int hypre_GaussElimSolve_long_dbl ( hypre_ParAMGData *amg_data, HYPRE_Int level, + HYPRE_Int relax_type ); +HYPRE_Int hypre_BoomerAMGBuildInterpGSMG_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpGSMG_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpGSMG_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpLS_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int num_smooth, hypre_float *SmoothVecs, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpLS_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int num_smooth, hypre_double *SmoothVecs, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpLS_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int num_smooth, hypre_long_double *SmoothVecs, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSmoothDirs_flt ( void *data, hypre_ParCSRMatrix *A, + hypre_float *SmoothVecs, hypre_float thresh, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSmoothDirs_dbl ( void *data, hypre_ParCSRMatrix *A, + hypre_double *SmoothVecs, hypre_double thresh, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSmoothDirs_long_dbl ( void *data, hypre_ParCSRMatrix *A, + hypre_long_double *SmoothVecs, hypre_long_double thresh, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSmoothVecs_flt ( void *data, hypre_ParCSRMatrix *A, HYPRE_Int num_sweeps, + HYPRE_Int level, hypre_float **SmoothVecs_p ); +HYPRE_Int hypre_BoomerAMGCreateSmoothVecs_dbl ( void *data, hypre_ParCSRMatrix *A, HYPRE_Int num_sweeps, + HYPRE_Int level, hypre_double **SmoothVecs_p ); +HYPRE_Int hypre_BoomerAMGCreateSmoothVecs_long_dbl ( void *data, hypre_ParCSRMatrix *A, HYPRE_Int num_sweeps, + HYPRE_Int level, hypre_long_double **SmoothVecs_p ); +HYPRE_Int hypre_BoomerAMGFitVectors_flt ( HYPRE_Int ip, HYPRE_Int n, HYPRE_Int num, const hypre_float *V, + HYPRE_Int nc, const HYPRE_Int *ind, hypre_float *val ); +HYPRE_Int hypre_BoomerAMGFitVectors_dbl ( HYPRE_Int ip, HYPRE_Int n, HYPRE_Int num, const hypre_double *V, + HYPRE_Int nc, const HYPRE_Int *ind, hypre_double *val ); +HYPRE_Int hypre_BoomerAMGFitVectors_long_dbl ( HYPRE_Int ip, HYPRE_Int n, HYPRE_Int num, const hypre_long_double *V, + HYPRE_Int nc, const HYPRE_Int *ind, hypre_long_double *val ); +HYPRE_Int hypre_BoomerAMGNormalizeVecs_flt ( HYPRE_Int n, HYPRE_Int num, hypre_float *V ); +HYPRE_Int hypre_BoomerAMGNormalizeVecs_dbl ( HYPRE_Int n, HYPRE_Int num, hypre_double *V ); +HYPRE_Int hypre_BoomerAMGNormalizeVecs_long_dbl ( HYPRE_Int n, HYPRE_Int num, hypre_long_double *V ); +hypre_float hypre_ParCSRMatrixChooseThresh_flt ( hypre_ParCSRMatrix *S ); +hypre_double hypre_ParCSRMatrixChooseThresh_dbl ( hypre_ParCSRMatrix *S ); +hypre_long_double hypre_ParCSRMatrixChooseThresh_long_dbl ( hypre_ParCSRMatrix *S ); +HYPRE_Int hypre_ParCSRMatrixFillSmooth_flt ( HYPRE_Int nsamples, hypre_float *samples, + hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, HYPRE_Int num_functions, HYPRE_Int *dof_func ); +HYPRE_Int hypre_ParCSRMatrixFillSmooth_dbl ( HYPRE_Int nsamples, hypre_double *samples, + hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, HYPRE_Int num_functions, HYPRE_Int *dof_func ); +HYPRE_Int hypre_ParCSRMatrixFillSmooth_long_dbl ( HYPRE_Int nsamples, hypre_long_double *samples, + hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, HYPRE_Int num_functions, HYPRE_Int *dof_func ); +HYPRE_Int hypre_ParCSRMatrixThreshold_flt ( hypre_ParCSRMatrix *A, hypre_float thresh ); +HYPRE_Int hypre_ParCSRMatrixThreshold_dbl ( hypre_ParCSRMatrix *A, hypre_double thresh ); +HYPRE_Int hypre_ParCSRMatrixThreshold_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double thresh ); +HYPRE_Int hypre_CSRMatrixDropInplace_flt ( hypre_CSRMatrix *A, hypre_float droptol, + HYPRE_Int max_row_nnz ); +HYPRE_Int hypre_CSRMatrixDropInplace_dbl ( hypre_CSRMatrix *A, hypre_double droptol, + HYPRE_Int max_row_nnz ); +HYPRE_Int hypre_CSRMatrixDropInplace_long_dbl ( hypre_CSRMatrix *A, hypre_long_double droptol, + HYPRE_Int max_row_nnz ); +HYPRE_Int hypre_CSRMatrixNormFro_flt ( hypre_CSRMatrix *A, hypre_float *norm_io); +HYPRE_Int hypre_CSRMatrixNormFro_dbl ( hypre_CSRMatrix *A, hypre_double *norm_io); +HYPRE_Int hypre_CSRMatrixNormFro_long_dbl ( hypre_CSRMatrix *A, hypre_long_double *norm_io); +HYPRE_Int hypre_CSRMatrixResNormFro_flt ( hypre_CSRMatrix *A, hypre_float *norm_io); +HYPRE_Int hypre_CSRMatrixResNormFro_dbl ( hypre_CSRMatrix *A, hypre_double *norm_io); +HYPRE_Int hypre_CSRMatrixResNormFro_long_dbl ( hypre_CSRMatrix *A, hypre_long_double *norm_io); +HYPRE_Int hypre_CSRMatrixTrace_flt ( hypre_CSRMatrix *A, hypre_float *trace_io); +HYPRE_Int hypre_CSRMatrixTrace_dbl ( hypre_CSRMatrix *A, hypre_double *trace_io); +HYPRE_Int hypre_CSRMatrixTrace_long_dbl ( hypre_CSRMatrix *A, hypre_long_double *trace_io); +HYPRE_Int hypre_ILUBuildRASExternalMatrix_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *rperm, + HYPRE_Int **E_i, HYPRE_Int **E_j, hypre_float **E_data ); +HYPRE_Int hypre_ILUBuildRASExternalMatrix_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *rperm, + HYPRE_Int **E_i, HYPRE_Int **E_j, hypre_double **E_data ); +HYPRE_Int hypre_ILUBuildRASExternalMatrix_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *rperm, + HYPRE_Int **E_i, HYPRE_Int **E_j, hypre_long_double **E_data ); +void *hypre_ILUCreate_flt ( void ); +void *hypre_ILUCreate_dbl ( void ); +void *hypre_ILUCreate_long_dbl ( void ); +HYPRE_Int hypre_ILUCSRMatrixInverseSelfPrecondMRGlobal_flt ( hypre_CSRMatrix *matA, + hypre_CSRMatrix **M, + hypre_float droptol, hypre_float tol, + hypre_float eps_tol, HYPRE_Int max_row_nnz, + HYPRE_Int max_iter, + HYPRE_Int print_level ); +HYPRE_Int hypre_ILUCSRMatrixInverseSelfPrecondMRGlobal_dbl ( hypre_CSRMatrix *matA, + hypre_CSRMatrix **M, + hypre_double droptol, hypre_double tol, + hypre_double eps_tol, HYPRE_Int max_row_nnz, + HYPRE_Int max_iter, + HYPRE_Int print_level ); +HYPRE_Int hypre_ILUCSRMatrixInverseSelfPrecondMRGlobal_long_dbl ( hypre_CSRMatrix *matA, + hypre_CSRMatrix **M, + hypre_long_double droptol, hypre_long_double tol, + hypre_long_double eps_tol, HYPRE_Int max_row_nnz, + HYPRE_Int max_iter, + HYPRE_Int print_level ); +HYPRE_Int hypre_ILUDestroy_flt ( void *ilu_vdata ); +HYPRE_Int hypre_ILUDestroy_dbl ( void *ilu_vdata ); +HYPRE_Int hypre_ILUDestroy_long_dbl ( void *ilu_vdata ); +HYPRE_Int hypre_ILUGetFinalRelativeResidualNorm_flt ( void *ilu_vdata, hypre_float *res_norm ); +HYPRE_Int hypre_ILUGetFinalRelativeResidualNorm_dbl ( void *ilu_vdata, hypre_double *res_norm ); +HYPRE_Int hypre_ILUGetFinalRelativeResidualNorm_long_dbl ( void *ilu_vdata, hypre_long_double *res_norm ); +HYPRE_Int hypre_ILUGetInteriorExteriorPerm_flt ( hypre_ParCSRMatrix *A, + HYPRE_MemoryLocation memory_location, + HYPRE_Int **perm, HYPRE_Int *nLU, + HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetInteriorExteriorPerm_dbl ( hypre_ParCSRMatrix *A, + HYPRE_MemoryLocation memory_location, + HYPRE_Int **perm, HYPRE_Int *nLU, + HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetInteriorExteriorPerm_long_dbl ( hypre_ParCSRMatrix *A, + HYPRE_MemoryLocation memory_location, + HYPRE_Int **perm, HYPRE_Int *nLU, + HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetLocalPerm_flt ( hypre_ParCSRMatrix *A, HYPRE_Int **perm_ptr, + HYPRE_Int *nLU, HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetLocalPerm_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int **perm_ptr, + HYPRE_Int *nLU, HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetLocalPerm_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int **perm_ptr, + HYPRE_Int *nLU, HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetNumIterations_flt ( void *ilu_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_ILUGetNumIterations_dbl ( void *ilu_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_ILUGetNumIterations_long_dbl ( void *ilu_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_ILUGetPermddPQ_flt ( hypre_ParCSRMatrix *A, HYPRE_Int **io_pperm, HYPRE_Int **io_qperm, + hypre_float tol, HYPRE_Int *nB, HYPRE_Int *nI, + HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetPermddPQ_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int **io_pperm, HYPRE_Int **io_qperm, + hypre_double tol, HYPRE_Int *nB, HYPRE_Int *nI, + HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetPermddPQ_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int **io_pperm, HYPRE_Int **io_qperm, + hypre_long_double tol, HYPRE_Int *nB, HYPRE_Int *nI, + HYPRE_Int reordering_type ); +HYPRE_Int hypre_ILUGetPermddPQPre_flt ( HYPRE_Int n, HYPRE_Int nLU, HYPRE_Int *A_diag_i, + HYPRE_Int *A_diag_j, hypre_float *A_diag_data, + hypre_float tol, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *pperm_pre, HYPRE_Int *qperm_pre, HYPRE_Int *nB ); +HYPRE_Int hypre_ILUGetPermddPQPre_dbl ( HYPRE_Int n, HYPRE_Int nLU, HYPRE_Int *A_diag_i, + HYPRE_Int *A_diag_j, hypre_double *A_diag_data, + hypre_double tol, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *pperm_pre, HYPRE_Int *qperm_pre, HYPRE_Int *nB ); +HYPRE_Int hypre_ILUGetPermddPQPre_long_dbl ( HYPRE_Int n, HYPRE_Int nLU, HYPRE_Int *A_diag_i, + HYPRE_Int *A_diag_j, hypre_long_double *A_diag_data, + hypre_long_double tol, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *pperm_pre, HYPRE_Int *qperm_pre, HYPRE_Int *nB ); +HYPRE_Int hypre_ILULocalRCM_flt ( hypre_CSRMatrix *A, HYPRE_Int start, HYPRE_Int end, + HYPRE_Int **permp, HYPRE_Int **qpermp, HYPRE_Int sym ); +HYPRE_Int hypre_ILULocalRCM_dbl ( hypre_CSRMatrix *A, HYPRE_Int start, HYPRE_Int end, + HYPRE_Int **permp, HYPRE_Int **qpermp, HYPRE_Int sym ); +HYPRE_Int hypre_ILULocalRCM_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int start, HYPRE_Int end, + HYPRE_Int **permp, HYPRE_Int **qpermp, HYPRE_Int sym ); +HYPRE_Int hypre_ILULocalRCMBuildFinalPerm_flt ( HYPRE_Int start, HYPRE_Int end, + HYPRE_Int *G_perm, HYPRE_Int *perm, HYPRE_Int *qperm, + HYPRE_Int **permp, HYPRE_Int **qpermp ); +HYPRE_Int hypre_ILULocalRCMBuildFinalPerm_dbl ( HYPRE_Int start, HYPRE_Int end, + HYPRE_Int *G_perm, HYPRE_Int *perm, HYPRE_Int *qperm, + HYPRE_Int **permp, HYPRE_Int **qpermp ); +HYPRE_Int hypre_ILULocalRCMBuildFinalPerm_long_dbl ( HYPRE_Int start, HYPRE_Int end, + HYPRE_Int *G_perm, HYPRE_Int *perm, HYPRE_Int *qperm, + HYPRE_Int **permp, HYPRE_Int **qpermp ); +HYPRE_Int hypre_ILULocalRCMBuildLevel_flt ( hypre_CSRMatrix *A, HYPRE_Int root, HYPRE_Int *marker, + HYPRE_Int *level_i, HYPRE_Int *level_j, HYPRE_Int *nlevp ); +HYPRE_Int hypre_ILULocalRCMBuildLevel_dbl ( hypre_CSRMatrix *A, HYPRE_Int root, HYPRE_Int *marker, + HYPRE_Int *level_i, HYPRE_Int *level_j, HYPRE_Int *nlevp ); +HYPRE_Int hypre_ILULocalRCMBuildLevel_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int root, HYPRE_Int *marker, + HYPRE_Int *level_i, HYPRE_Int *level_j, HYPRE_Int *nlevp ); +HYPRE_Int hypre_ILULocalRCMFindPPNode_flt ( hypre_CSRMatrix *A, HYPRE_Int *rootp, HYPRE_Int *marker ); +HYPRE_Int hypre_ILULocalRCMFindPPNode_dbl ( hypre_CSRMatrix *A, HYPRE_Int *rootp, HYPRE_Int *marker ); +HYPRE_Int hypre_ILULocalRCMFindPPNode_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int *rootp, HYPRE_Int *marker ); +HYPRE_Int hypre_ILULocalRCMMindegree_flt ( HYPRE_Int n, HYPRE_Int *degree, + HYPRE_Int *marker, HYPRE_Int *rootp ); +HYPRE_Int hypre_ILULocalRCMMindegree_dbl ( HYPRE_Int n, HYPRE_Int *degree, + HYPRE_Int *marker, HYPRE_Int *rootp ); +HYPRE_Int hypre_ILULocalRCMMindegree_long_dbl ( HYPRE_Int n, HYPRE_Int *degree, + HYPRE_Int *marker, HYPRE_Int *rootp ); +HYPRE_Int hypre_ILULocalRCMNumbering_flt ( hypre_CSRMatrix *A, HYPRE_Int root, HYPRE_Int *marker, + HYPRE_Int *perm, HYPRE_Int *current_nump ); +HYPRE_Int hypre_ILULocalRCMNumbering_dbl ( hypre_CSRMatrix *A, HYPRE_Int root, HYPRE_Int *marker, + HYPRE_Int *perm, HYPRE_Int *current_nump ); +HYPRE_Int hypre_ILULocalRCMNumbering_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int root, HYPRE_Int *marker, + HYPRE_Int *perm, HYPRE_Int *current_nump ); +HYPRE_Int hypre_ILULocalRCMOrder_flt ( hypre_CSRMatrix *A, HYPRE_Int *perm ); +HYPRE_Int hypre_ILULocalRCMOrder_dbl ( hypre_CSRMatrix *A, HYPRE_Int *perm ); +HYPRE_Int hypre_ILULocalRCMOrder_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int *perm ); +HYPRE_Int hypre_ILULocalRCMQsort_flt ( HYPRE_Int *perm, HYPRE_Int start, HYPRE_Int end, + HYPRE_Int *degree ); +HYPRE_Int hypre_ILULocalRCMQsort_dbl ( HYPRE_Int *perm, HYPRE_Int start, HYPRE_Int end, + HYPRE_Int *degree ); +HYPRE_Int hypre_ILULocalRCMQsort_long_dbl ( HYPRE_Int *perm, HYPRE_Int start, HYPRE_Int end, + HYPRE_Int *degree ); +HYPRE_Int hypre_ILULocalRCMReverse_flt ( HYPRE_Int *perm, HYPRE_Int start, HYPRE_Int end ); +HYPRE_Int hypre_ILULocalRCMReverse_dbl ( HYPRE_Int *perm, HYPRE_Int start, HYPRE_Int end ); +HYPRE_Int hypre_ILULocalRCMReverse_long_dbl ( HYPRE_Int *perm, HYPRE_Int start, HYPRE_Int end ); +HYPRE_Int hypre_ILUMaxQSplitRabsI_flt ( hypre_float *arrayR, HYPRE_Int *arrayI, HYPRE_Int left, + HYPRE_Int bound, HYPRE_Int right ); +HYPRE_Int hypre_ILUMaxQSplitRabsI_dbl ( hypre_double *arrayR, HYPRE_Int *arrayI, HYPRE_Int left, + HYPRE_Int bound, HYPRE_Int right ); +HYPRE_Int hypre_ILUMaxQSplitRabsI_long_dbl ( hypre_long_double *arrayR, HYPRE_Int *arrayI, HYPRE_Int left, + HYPRE_Int bound, HYPRE_Int right ); +HYPRE_Int hypre_ILUMaxRabs_flt ( hypre_float *array_data, HYPRE_Int *array_j, HYPRE_Int start, + HYPRE_Int end, HYPRE_Int nLU, HYPRE_Int *rperm, hypre_float *value, + HYPRE_Int *index, hypre_float *l1_norm, HYPRE_Int *nnz ); +HYPRE_Int hypre_ILUMaxRabs_dbl ( hypre_double *array_data, HYPRE_Int *array_j, HYPRE_Int start, + HYPRE_Int end, HYPRE_Int nLU, HYPRE_Int *rperm, hypre_double *value, + HYPRE_Int *index, hypre_double *l1_norm, HYPRE_Int *nnz ); +HYPRE_Int hypre_ILUMaxRabs_long_dbl ( hypre_long_double *array_data, HYPRE_Int *array_j, HYPRE_Int start, + HYPRE_Int end, HYPRE_Int nLU, HYPRE_Int *rperm, hypre_long_double *value, + HYPRE_Int *index, hypre_long_double *l1_norm, HYPRE_Int *nnz ); +HYPRE_Int hypre_ILUMaxrHeapAddRabsI_flt ( hypre_float *heap, HYPRE_Int *I1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMaxrHeapAddRabsI_dbl ( hypre_double *heap, HYPRE_Int *I1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMaxrHeapAddRabsI_long_dbl ( hypre_long_double *heap, HYPRE_Int *I1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMaxrHeapRemoveRabsI_flt ( hypre_float *heap, HYPRE_Int *I1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMaxrHeapRemoveRabsI_dbl ( hypre_double *heap, HYPRE_Int *I1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMaxrHeapRemoveRabsI_long_dbl ( hypre_long_double *heap, HYPRE_Int *I1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddI_flt ( HYPRE_Int *heap, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddI_dbl ( HYPRE_Int *heap, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddI_long_dbl ( HYPRE_Int *heap, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddIIIi_flt ( HYPRE_Int *heap, HYPRE_Int *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddIIIi_dbl ( HYPRE_Int *heap, HYPRE_Int *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddIIIi_long_dbl ( HYPRE_Int *heap, HYPRE_Int *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddIRIi_flt ( HYPRE_Int *heap, hypre_float *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddIRIi_dbl ( HYPRE_Int *heap, hypre_double *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapAddIRIi_long_dbl ( HYPRE_Int *heap, hypre_long_double *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveI_flt ( HYPRE_Int *heap, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveI_dbl ( HYPRE_Int *heap, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveI_long_dbl ( HYPRE_Int *heap, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveIIIi_flt ( HYPRE_Int *heap, HYPRE_Int *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveIIIi_dbl ( HYPRE_Int *heap, HYPRE_Int *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveIIIi_long_dbl ( HYPRE_Int *heap, HYPRE_Int *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveIRIi_flt ( HYPRE_Int *heap, hypre_float *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveIRIi_dbl ( HYPRE_Int *heap, hypre_double *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUMinHeapRemoveIRIi_long_dbl ( HYPRE_Int *heap, hypre_long_double *I1, + HYPRE_Int *Ii1, HYPRE_Int len ); +HYPRE_Int hypre_ILUParCSRInverseNSH_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **M, + hypre_float *droptol, hypre_float mr_tol, + hypre_float nsh_tol, hypre_float eps_tol, + HYPRE_Int mr_max_row_nnz, HYPRE_Int nsh_max_row_nnz, + HYPRE_Int mr_max_iter, HYPRE_Int nsh_max_iter, + HYPRE_Int mr_col_version, HYPRE_Int print_level ); +HYPRE_Int hypre_ILUParCSRInverseNSH_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **M, + hypre_double *droptol, hypre_double mr_tol, + hypre_double nsh_tol, hypre_double eps_tol, + HYPRE_Int mr_max_row_nnz, HYPRE_Int nsh_max_row_nnz, + HYPRE_Int mr_max_iter, HYPRE_Int nsh_max_iter, + HYPRE_Int mr_col_version, HYPRE_Int print_level ); +HYPRE_Int hypre_ILUParCSRInverseNSH_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **M, + hypre_long_double *droptol, hypre_long_double mr_tol, + hypre_long_double nsh_tol, hypre_long_double eps_tol, + HYPRE_Int mr_max_row_nnz, HYPRE_Int nsh_max_row_nnz, + HYPRE_Int mr_max_iter, HYPRE_Int nsh_max_iter, + HYPRE_Int mr_col_version, HYPRE_Int print_level ); +HYPRE_Int hypre_ILUSetDropThreshold_flt ( void *ilu_vdata, hypre_float threshold ); +HYPRE_Int hypre_ILUSetDropThreshold_dbl ( void *ilu_vdata, hypre_double threshold ); +HYPRE_Int hypre_ILUSetDropThreshold_long_dbl ( void *ilu_vdata, hypre_long_double threshold ); +HYPRE_Int hypre_ILUSetDropThresholdArray_flt ( void *ilu_vdata, hypre_float *threshold ); +HYPRE_Int hypre_ILUSetDropThresholdArray_dbl ( void *ilu_vdata, hypre_double *threshold ); +HYPRE_Int hypre_ILUSetDropThresholdArray_long_dbl ( void *ilu_vdata, hypre_long_double *threshold ); +HYPRE_Int hypre_ILUSetLevelOfFill_flt ( void *ilu_vdata, HYPRE_Int lfil ); +HYPRE_Int hypre_ILUSetLevelOfFill_dbl ( void *ilu_vdata, HYPRE_Int lfil ); +HYPRE_Int hypre_ILUSetLevelOfFill_long_dbl ( void *ilu_vdata, HYPRE_Int lfil ); +HYPRE_Int hypre_ILUSetLocalReordering_flt ( void *ilu_vdata, HYPRE_Int ordering_type ); +HYPRE_Int hypre_ILUSetLocalReordering_dbl ( void *ilu_vdata, HYPRE_Int ordering_type ); +HYPRE_Int hypre_ILUSetLocalReordering_long_dbl ( void *ilu_vdata, HYPRE_Int ordering_type ); +HYPRE_Int hypre_ILUSetLogging_flt ( void *ilu_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_ILUSetLogging_dbl ( void *ilu_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_ILUSetLogging_long_dbl ( void *ilu_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_ILUSetLowerJacobiIters_flt ( void *ilu_vdata, HYPRE_Int lower_jacobi_iters ); +HYPRE_Int hypre_ILUSetLowerJacobiIters_dbl ( void *ilu_vdata, HYPRE_Int lower_jacobi_iters ); +HYPRE_Int hypre_ILUSetLowerJacobiIters_long_dbl ( void *ilu_vdata, HYPRE_Int lower_jacobi_iters ); +HYPRE_Int hypre_ILUSetMaxIter_flt ( void *ilu_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_ILUSetMaxIter_dbl ( void *ilu_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_ILUSetMaxIter_long_dbl ( void *ilu_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_ILUSetMaxNnzPerRow_flt ( void *ilu_vdata, HYPRE_Int nzmax ); +HYPRE_Int hypre_ILUSetMaxNnzPerRow_dbl ( void *ilu_vdata, HYPRE_Int nzmax ); +HYPRE_Int hypre_ILUSetMaxNnzPerRow_long_dbl ( void *ilu_vdata, HYPRE_Int nzmax ); +HYPRE_Int hypre_ILUSetPrintLevel_flt ( void *ilu_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_ILUSetPrintLevel_dbl ( void *ilu_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_ILUSetPrintLevel_long_dbl ( void *ilu_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_ILUSetSchurNSHDropThreshold_flt ( void *ilu_vdata, hypre_float threshold ); +HYPRE_Int hypre_ILUSetSchurNSHDropThreshold_dbl ( void *ilu_vdata, hypre_double threshold ); +HYPRE_Int hypre_ILUSetSchurNSHDropThreshold_long_dbl ( void *ilu_vdata, hypre_long_double threshold ); +HYPRE_Int hypre_ILUSetSchurNSHDropThresholdArray_flt ( void *ilu_vdata, hypre_float *threshold ); +HYPRE_Int hypre_ILUSetSchurNSHDropThresholdArray_dbl ( void *ilu_vdata, hypre_double *threshold ); +HYPRE_Int hypre_ILUSetSchurNSHDropThresholdArray_long_dbl ( void *ilu_vdata, hypre_long_double *threshold ); +HYPRE_Int hypre_ILUSetSchurPrecondILUDropThreshold_flt ( void *ilu_vdata, hypre_float sp_ilu_droptol ); +HYPRE_Int hypre_ILUSetSchurPrecondILUDropThreshold_dbl ( void *ilu_vdata, hypre_double sp_ilu_droptol ); +HYPRE_Int hypre_ILUSetSchurPrecondILUDropThreshold_long_dbl ( void *ilu_vdata, hypre_long_double sp_ilu_droptol ); +HYPRE_Int hypre_ILUSetSchurPrecondILUDropThresholdArray_flt ( void *ilu_vdata, + hypre_float *sp_ilu_droptol ); +HYPRE_Int hypre_ILUSetSchurPrecondILUDropThresholdArray_dbl ( void *ilu_vdata, + hypre_double *sp_ilu_droptol ); +HYPRE_Int hypre_ILUSetSchurPrecondILUDropThresholdArray_long_dbl ( void *ilu_vdata, + hypre_long_double *sp_ilu_droptol ); +HYPRE_Int hypre_ILUSetSchurPrecondILULevelOfFill_flt ( void *ilu_vdata, HYPRE_Int sp_ilu_lfil ); +HYPRE_Int hypre_ILUSetSchurPrecondILULevelOfFill_dbl ( void *ilu_vdata, HYPRE_Int sp_ilu_lfil ); +HYPRE_Int hypre_ILUSetSchurPrecondILULevelOfFill_long_dbl ( void *ilu_vdata, HYPRE_Int sp_ilu_lfil ); +HYPRE_Int hypre_ILUSetSchurPrecondILUMaxNnzPerRow_flt ( void *ilu_vdata, + HYPRE_Int sp_ilu_max_row_nnz ); +HYPRE_Int hypre_ILUSetSchurPrecondILUMaxNnzPerRow_dbl ( void *ilu_vdata, + HYPRE_Int sp_ilu_max_row_nnz ); +HYPRE_Int hypre_ILUSetSchurPrecondILUMaxNnzPerRow_long_dbl ( void *ilu_vdata, + HYPRE_Int sp_ilu_max_row_nnz ); +HYPRE_Int hypre_ILUSetSchurPrecondILUType_flt ( void *ilu_vdata, HYPRE_Int sp_ilu_type ); +HYPRE_Int hypre_ILUSetSchurPrecondILUType_dbl ( void *ilu_vdata, HYPRE_Int sp_ilu_type ); +HYPRE_Int hypre_ILUSetSchurPrecondILUType_long_dbl ( void *ilu_vdata, HYPRE_Int sp_ilu_type ); +HYPRE_Int hypre_ILUSetSchurPrecondLowerJacobiIters_flt ( void *ilu_vdata, + HYPRE_Int sp_lower_jacobi_iters ); +HYPRE_Int hypre_ILUSetSchurPrecondLowerJacobiIters_dbl ( void *ilu_vdata, + HYPRE_Int sp_lower_jacobi_iters ); +HYPRE_Int hypre_ILUSetSchurPrecondLowerJacobiIters_long_dbl ( void *ilu_vdata, + HYPRE_Int sp_lower_jacobi_iters ); +HYPRE_Int hypre_ILUSetSchurPrecondMaxIter_flt ( void *ilu_vdata, HYPRE_Int sp_max_iter ); +HYPRE_Int hypre_ILUSetSchurPrecondMaxIter_dbl ( void *ilu_vdata, HYPRE_Int sp_max_iter ); +HYPRE_Int hypre_ILUSetSchurPrecondMaxIter_long_dbl ( void *ilu_vdata, HYPRE_Int sp_max_iter ); +HYPRE_Int hypre_ILUSetSchurPrecondPrintLevel_flt ( void *ilu_vdata, HYPRE_Int sp_print_level ); +HYPRE_Int hypre_ILUSetSchurPrecondPrintLevel_dbl ( void *ilu_vdata, HYPRE_Int sp_print_level ); +HYPRE_Int hypre_ILUSetSchurPrecondPrintLevel_long_dbl ( void *ilu_vdata, HYPRE_Int sp_print_level ); +HYPRE_Int hypre_ILUSetSchurPrecondTol_flt ( void *ilu_vdata, HYPRE_Int sp_tol ); +HYPRE_Int hypre_ILUSetSchurPrecondTol_dbl ( void *ilu_vdata, HYPRE_Int sp_tol ); +HYPRE_Int hypre_ILUSetSchurPrecondTol_long_dbl ( void *ilu_vdata, HYPRE_Int sp_tol ); +HYPRE_Int hypre_ILUSetSchurPrecondTriSolve_flt ( void *ilu_vdata, HYPRE_Int sp_tri_solve ); +HYPRE_Int hypre_ILUSetSchurPrecondTriSolve_dbl ( void *ilu_vdata, HYPRE_Int sp_tri_solve ); +HYPRE_Int hypre_ILUSetSchurPrecondTriSolve_long_dbl ( void *ilu_vdata, HYPRE_Int sp_tri_solve ); +HYPRE_Int hypre_ILUSetSchurPrecondUpperJacobiIters_flt ( void *ilu_vdata, + HYPRE_Int sp_upper_jacobi_iters ); +HYPRE_Int hypre_ILUSetSchurPrecondUpperJacobiIters_dbl ( void *ilu_vdata, + HYPRE_Int sp_upper_jacobi_iters ); +HYPRE_Int hypre_ILUSetSchurPrecondUpperJacobiIters_long_dbl ( void *ilu_vdata, + HYPRE_Int sp_upper_jacobi_iters ); +HYPRE_Int hypre_ILUSetSchurSolverAbsoluteTol_flt ( void *ilu_vdata, hypre_float ss_absolute_tol ); +HYPRE_Int hypre_ILUSetSchurSolverAbsoluteTol_dbl ( void *ilu_vdata, hypre_double ss_absolute_tol ); +HYPRE_Int hypre_ILUSetSchurSolverAbsoluteTol_long_dbl ( void *ilu_vdata, hypre_long_double ss_absolute_tol ); +HYPRE_Int hypre_ILUSetSchurSolverLogging_flt ( void *ilu_vdata, HYPRE_Int ss_logging ); +HYPRE_Int hypre_ILUSetSchurSolverLogging_dbl ( void *ilu_vdata, HYPRE_Int ss_logging ); +HYPRE_Int hypre_ILUSetSchurSolverLogging_long_dbl ( void *ilu_vdata, HYPRE_Int ss_logging ); +HYPRE_Int hypre_ILUSetSchurSolverMaxIter_flt ( void *ilu_vdata, HYPRE_Int ss_max_iter ); +HYPRE_Int hypre_ILUSetSchurSolverMaxIter_dbl ( void *ilu_vdata, HYPRE_Int ss_max_iter ); +HYPRE_Int hypre_ILUSetSchurSolverMaxIter_long_dbl ( void *ilu_vdata, HYPRE_Int ss_max_iter ); +HYPRE_Int hypre_ILUSetSchurSolverPrintLevel_flt ( void *ilu_vdata, HYPRE_Int ss_print_level ); +HYPRE_Int hypre_ILUSetSchurSolverPrintLevel_dbl ( void *ilu_vdata, HYPRE_Int ss_print_level ); +HYPRE_Int hypre_ILUSetSchurSolverPrintLevel_long_dbl ( void *ilu_vdata, HYPRE_Int ss_print_level ); +HYPRE_Int hypre_ILUSetSchurSolverRelChange_flt ( void *ilu_vdata, HYPRE_Int ss_rel_change ); +HYPRE_Int hypre_ILUSetSchurSolverRelChange_dbl ( void *ilu_vdata, HYPRE_Int ss_rel_change ); +HYPRE_Int hypre_ILUSetSchurSolverRelChange_long_dbl ( void *ilu_vdata, HYPRE_Int ss_rel_change ); +HYPRE_Int hypre_ILUSetSchurSolverTol_flt ( void *ilu_vdata, hypre_float ss_tol ); +HYPRE_Int hypre_ILUSetSchurSolverTol_dbl ( void *ilu_vdata, hypre_double ss_tol ); +HYPRE_Int hypre_ILUSetSchurSolverTol_long_dbl ( void *ilu_vdata, hypre_long_double ss_tol ); +HYPRE_Int hypre_ILUSetTol_flt ( void *ilu_vdata, hypre_float tol ); +HYPRE_Int hypre_ILUSetTol_dbl ( void *ilu_vdata, hypre_double tol ); +HYPRE_Int hypre_ILUSetTol_long_dbl ( void *ilu_vdata, hypre_long_double tol ); +HYPRE_Int hypre_ILUSetTriSolve_flt ( void *ilu_vdata, HYPRE_Int tri_solve ); +HYPRE_Int hypre_ILUSetTriSolve_dbl ( void *ilu_vdata, HYPRE_Int tri_solve ); +HYPRE_Int hypre_ILUSetTriSolve_long_dbl ( void *ilu_vdata, HYPRE_Int tri_solve ); +HYPRE_Int hypre_ILUSetType_flt ( void *ilu_vdata, HYPRE_Int ilu_type ); +HYPRE_Int hypre_ILUSetType_dbl ( void *ilu_vdata, HYPRE_Int ilu_type ); +HYPRE_Int hypre_ILUSetType_long_dbl ( void *ilu_vdata, HYPRE_Int ilu_type ); +HYPRE_Int hypre_ILUSetUpperJacobiIters_flt ( void *ilu_vdata, HYPRE_Int upper_jacobi_iters ); +HYPRE_Int hypre_ILUSetUpperJacobiIters_dbl ( void *ilu_vdata, HYPRE_Int upper_jacobi_iters ); +HYPRE_Int hypre_ILUSetUpperJacobiIters_long_dbl ( void *ilu_vdata, HYPRE_Int upper_jacobi_iters ); +HYPRE_Int hypre_ILUSortOffdColmap_flt ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ILUSortOffdColmap_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ILUSortOffdColmap_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ILUWriteSolverParams_flt ( void *ilu_vdata ); +HYPRE_Int hypre_ILUWriteSolverParams_dbl ( void *ilu_vdata ); +HYPRE_Int hypre_ILUWriteSolverParams_long_dbl ( void *ilu_vdata ); +void *hypre_NSHCreate_flt ( void ); +void *hypre_NSHCreate_dbl ( void ); +void *hypre_NSHCreate_long_dbl ( void ); +HYPRE_Int hypre_NSHDestroy_flt ( void *data ); +HYPRE_Int hypre_NSHDestroy_dbl ( void *data ); +HYPRE_Int hypre_NSHDestroy_long_dbl ( void *data ); +HYPRE_Int hypre_NSHSetColVersion_flt ( void *nsh_vdata, HYPRE_Int mr_col_version ); +HYPRE_Int hypre_NSHSetColVersion_dbl ( void *nsh_vdata, HYPRE_Int mr_col_version ); +HYPRE_Int hypre_NSHSetColVersion_long_dbl ( void *nsh_vdata, HYPRE_Int mr_col_version ); +HYPRE_Int hypre_NSHSetDropThreshold_flt ( void *nsh_vdata, hypre_float droptol ); +HYPRE_Int hypre_NSHSetDropThreshold_dbl ( void *nsh_vdata, hypre_double droptol ); +HYPRE_Int hypre_NSHSetDropThreshold_long_dbl ( void *nsh_vdata, hypre_long_double droptol ); +HYPRE_Int hypre_NSHSetDropThresholdArray_flt ( void *nsh_vdata, hypre_float *droptol ); +HYPRE_Int hypre_NSHSetDropThresholdArray_dbl ( void *nsh_vdata, hypre_double *droptol ); +HYPRE_Int hypre_NSHSetDropThresholdArray_long_dbl ( void *nsh_vdata, hypre_long_double *droptol ); +HYPRE_Int hypre_NSHSetGlobalSolver_flt ( void *nsh_vdata, HYPRE_Int global_solver ); +HYPRE_Int hypre_NSHSetGlobalSolver_dbl ( void *nsh_vdata, HYPRE_Int global_solver ); +HYPRE_Int hypre_NSHSetGlobalSolver_long_dbl ( void *nsh_vdata, HYPRE_Int global_solver ); +HYPRE_Int hypre_NSHSetLogging_flt ( void *nsh_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_NSHSetLogging_dbl ( void *nsh_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_NSHSetLogging_long_dbl ( void *nsh_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_NSHSetMaxIter_flt ( void *nsh_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_NSHSetMaxIter_dbl ( void *nsh_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_NSHSetMaxIter_long_dbl ( void *nsh_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_NSHSetMRMaxIter_flt ( void *nsh_vdata, HYPRE_Int mr_max_iter ); +HYPRE_Int hypre_NSHSetMRMaxIter_dbl ( void *nsh_vdata, HYPRE_Int mr_max_iter ); +HYPRE_Int hypre_NSHSetMRMaxIter_long_dbl ( void *nsh_vdata, HYPRE_Int mr_max_iter ); +HYPRE_Int hypre_NSHSetMRMaxRowNnz_flt ( void *nsh_vdata, HYPRE_Int mr_max_row_nnz ); +HYPRE_Int hypre_NSHSetMRMaxRowNnz_dbl ( void *nsh_vdata, HYPRE_Int mr_max_row_nnz ); +HYPRE_Int hypre_NSHSetMRMaxRowNnz_long_dbl ( void *nsh_vdata, HYPRE_Int mr_max_row_nnz ); +HYPRE_Int hypre_NSHSetMRTol_flt ( void *nsh_vdata, hypre_float mr_tol ); +HYPRE_Int hypre_NSHSetMRTol_dbl ( void *nsh_vdata, hypre_double mr_tol ); +HYPRE_Int hypre_NSHSetMRTol_long_dbl ( void *nsh_vdata, hypre_long_double mr_tol ); +HYPRE_Int hypre_NSHSetNSHMaxIter_flt ( void *nsh_vdata, HYPRE_Int nsh_max_iter ); +HYPRE_Int hypre_NSHSetNSHMaxIter_dbl ( void *nsh_vdata, HYPRE_Int nsh_max_iter ); +HYPRE_Int hypre_NSHSetNSHMaxIter_long_dbl ( void *nsh_vdata, HYPRE_Int nsh_max_iter ); +HYPRE_Int hypre_NSHSetNSHMaxRowNnz_flt ( void *nsh_vdata, HYPRE_Int nsh_max_row_nnz ); +HYPRE_Int hypre_NSHSetNSHMaxRowNnz_dbl ( void *nsh_vdata, HYPRE_Int nsh_max_row_nnz ); +HYPRE_Int hypre_NSHSetNSHMaxRowNnz_long_dbl ( void *nsh_vdata, HYPRE_Int nsh_max_row_nnz ); +HYPRE_Int hypre_NSHSetNSHTol_flt ( void *nsh_vdata, hypre_float nsh_tol ); +HYPRE_Int hypre_NSHSetNSHTol_dbl ( void *nsh_vdata, hypre_double nsh_tol ); +HYPRE_Int hypre_NSHSetNSHTol_long_dbl ( void *nsh_vdata, hypre_long_double nsh_tol ); +HYPRE_Int hypre_NSHSetPrintLevel_flt ( void *nsh_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_NSHSetPrintLevel_dbl ( void *nsh_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_NSHSetPrintLevel_long_dbl ( void *nsh_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_NSHSetTol_flt ( void *nsh_vdata, hypre_float tol ); +HYPRE_Int hypre_NSHSetTol_dbl ( void *nsh_vdata, hypre_double tol ); +HYPRE_Int hypre_NSHSetTol_long_dbl ( void *nsh_vdata, hypre_long_double tol ); +HYPRE_Int hypre_NSHWriteSolverParams_flt ( void *nsh_vdata ); +HYPRE_Int hypre_NSHWriteSolverParams_dbl ( void *nsh_vdata ); +HYPRE_Int hypre_NSHWriteSolverParams_long_dbl ( void *nsh_vdata ); +HYPRE_Int hypre_ParCSRMatrixNormFro_flt ( hypre_ParCSRMatrix *A, hypre_float *norm_io); +HYPRE_Int hypre_ParCSRMatrixNormFro_dbl ( hypre_ParCSRMatrix *A, hypre_double *norm_io); +HYPRE_Int hypre_ParCSRMatrixNormFro_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double *norm_io); +HYPRE_Int hypre_ParCSRMatrixResNormFro_flt ( hypre_ParCSRMatrix *A, hypre_float *norm_io); +HYPRE_Int hypre_ParCSRMatrixResNormFro_dbl ( hypre_ParCSRMatrix *A, hypre_double *norm_io); +HYPRE_Int hypre_ParCSRMatrixResNormFro_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double *norm_io); +HYPRE_Int hypre_ParILURAPSchurGMRESCommInfoHost_flt ( void *ilu_vdata, HYPRE_Int *my_id, + HYPRE_Int *num_procs ); +HYPRE_Int hypre_ParILURAPSchurGMRESCommInfoHost_dbl ( void *ilu_vdata, HYPRE_Int *my_id, + HYPRE_Int *num_procs ); +HYPRE_Int hypre_ParILURAPSchurGMRESCommInfoHost_long_dbl ( void *ilu_vdata, HYPRE_Int *my_id, + HYPRE_Int *num_procs ); +HYPRE_Int hypre_ParILURAPSchurGMRESMatvecHost_flt ( void *matvec_data, hypre_float alpha, + void *ilu_vdata, void *x, + hypre_float beta, void *y ); +HYPRE_Int hypre_ParILURAPSchurGMRESMatvecHost_dbl ( void *matvec_data, hypre_double alpha, + void *ilu_vdata, void *x, + hypre_double beta, void *y ); +HYPRE_Int hypre_ParILURAPSchurGMRESMatvecHost_long_dbl ( void *matvec_data, hypre_long_double alpha, + void *ilu_vdata, void *x, + hypre_long_double beta, void *y ); +HYPRE_Int hypre_ParILURAPSchurGMRESSolveHost_flt ( void *ilu_vdata, void *ilu_vdata2, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ParILURAPSchurGMRESSolveHost_dbl ( void *ilu_vdata, void *ilu_vdata2, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ParILURAPSchurGMRESSolveHost_long_dbl ( void *ilu_vdata, void *ilu_vdata2, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSetup_flt ( void *ilu_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSetup_dbl ( void *ilu_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSetup_long_dbl ( void *ilu_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSetupILU0_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int *qperm, + HYPRE_Int nLU, HYPRE_Int nI, hypre_ParCSRMatrix **Lptr, + hypre_float **Dptr, hypre_ParCSRMatrix **Uptr, + hypre_ParCSRMatrix **Sptr, HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILU0_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int *qperm, + HYPRE_Int nLU, HYPRE_Int nI, hypre_ParCSRMatrix **Lptr, + hypre_double **Dptr, hypre_ParCSRMatrix **Uptr, + hypre_ParCSRMatrix **Sptr, HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILU0_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int *qperm, + HYPRE_Int nLU, HYPRE_Int nI, hypre_ParCSRMatrix **Lptr, + hypre_long_double **Dptr, hypre_ParCSRMatrix **Uptr, + hypre_ParCSRMatrix **Sptr, HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILU0RAS_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, + hypre_float **Dptr, hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILU0RAS_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, + hypre_double **Dptr, hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILU0RAS_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, + hypre_long_double **Dptr, hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILUK_flt ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, HYPRE_Int *permp, + HYPRE_Int *qpermp, HYPRE_Int nLU, HYPRE_Int nI, + hypre_ParCSRMatrix **Lptr, hypre_float **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUK_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, HYPRE_Int *permp, + HYPRE_Int *qpermp, HYPRE_Int nLU, HYPRE_Int nI, + hypre_ParCSRMatrix **Lptr, hypre_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUK_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, HYPRE_Int *permp, + HYPRE_Int *qpermp, HYPRE_Int nLU, HYPRE_Int nI, + hypre_ParCSRMatrix **Lptr, hypre_long_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUKRAS_flt ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, HYPRE_Int *perm, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, + hypre_float **Dptr, hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILUKRAS_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, HYPRE_Int *perm, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, + hypre_double **Dptr, hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILUKRAS_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, HYPRE_Int *perm, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, + hypre_long_double **Dptr, hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILUKRASSymbolic_flt ( HYPRE_Int n, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, + HYPRE_Int *E_i, HYPRE_Int *E_j, HYPRE_Int ext, + HYPRE_Int lfil, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *iw, HYPRE_Int nLU, HYPRE_Int *L_diag_i, + HYPRE_Int *U_diag_i, HYPRE_Int **L_diag_j, + HYPRE_Int **U_diag_j ); +HYPRE_Int hypre_ILUSetupILUKRASSymbolic_dbl ( HYPRE_Int n, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, + HYPRE_Int *E_i, HYPRE_Int *E_j, HYPRE_Int ext, + HYPRE_Int lfil, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *iw, HYPRE_Int nLU, HYPRE_Int *L_diag_i, + HYPRE_Int *U_diag_i, HYPRE_Int **L_diag_j, + HYPRE_Int **U_diag_j ); +HYPRE_Int hypre_ILUSetupILUKRASSymbolic_long_dbl ( HYPRE_Int n, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, + HYPRE_Int *E_i, HYPRE_Int *E_j, HYPRE_Int ext, + HYPRE_Int lfil, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *iw, HYPRE_Int nLU, HYPRE_Int *L_diag_i, + HYPRE_Int *U_diag_i, HYPRE_Int **L_diag_j, + HYPRE_Int **U_diag_j ); +HYPRE_Int hypre_ILUSetupILUKSymbolic_flt ( HYPRE_Int n, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int lfil, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *iw, HYPRE_Int nLU, HYPRE_Int *L_diag_i, + HYPRE_Int *U_diag_i, HYPRE_Int *S_diag_i, + HYPRE_Int **L_diag_j, HYPRE_Int **U_diag_j, + HYPRE_Int **S_diag_j, HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUKSymbolic_dbl ( HYPRE_Int n, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int lfil, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *iw, HYPRE_Int nLU, HYPRE_Int *L_diag_i, + HYPRE_Int *U_diag_i, HYPRE_Int *S_diag_i, + HYPRE_Int **L_diag_j, HYPRE_Int **U_diag_j, + HYPRE_Int **S_diag_j, HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUKSymbolic_long_dbl ( HYPRE_Int n, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int lfil, HYPRE_Int *perm, HYPRE_Int *rperm, + HYPRE_Int *iw, HYPRE_Int nLU, HYPRE_Int *L_diag_i, + HYPRE_Int *U_diag_i, HYPRE_Int *S_diag_i, + HYPRE_Int **L_diag_j, HYPRE_Int **U_diag_j, + HYPRE_Int **S_diag_j, HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUT_flt ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, hypre_float *tol, + HYPRE_Int *permp, HYPRE_Int *qpermp, HYPRE_Int nLU, + HYPRE_Int nI, hypre_ParCSRMatrix **Lptr, hypre_float **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUT_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, hypre_double *tol, + HYPRE_Int *permp, HYPRE_Int *qpermp, HYPRE_Int nLU, + HYPRE_Int nI, hypre_ParCSRMatrix **Lptr, hypre_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUT_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, hypre_long_double *tol, + HYPRE_Int *permp, HYPRE_Int *qpermp, HYPRE_Int nLU, + HYPRE_Int nI, hypre_ParCSRMatrix **Lptr, hypre_long_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupILUTRAS_flt ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, + hypre_float *tol, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix **Lptr, hypre_float **Dptr, + hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILUTRAS_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, + hypre_double *tol, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix **Lptr, hypre_double **Dptr, + hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupILUTRAS_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int lfil, + hypre_long_double *tol, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix **Lptr, hypre_long_double **Dptr, + hypre_ParCSRMatrix **Uptr ); +HYPRE_Int hypre_ILUSetupLDUtoCusparse_flt ( hypre_ParCSRMatrix *L, hypre_float *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix **LDUp ); +HYPRE_Int hypre_ILUSetupLDUtoCusparse_dbl ( hypre_ParCSRMatrix *L, hypre_double *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix **LDUp ); +HYPRE_Int hypre_ILUSetupLDUtoCusparse_long_dbl ( hypre_ParCSRMatrix *L, hypre_long_double *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix **LDUp ); +HYPRE_Int hypre_ILUSetupMILU0_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *permp, + HYPRE_Int *qpermp, HYPRE_Int nLU, HYPRE_Int nI, + hypre_ParCSRMatrix **Lptr, hypre_float **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end, HYPRE_Int modified ); +HYPRE_Int hypre_ILUSetupMILU0_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *permp, + HYPRE_Int *qpermp, HYPRE_Int nLU, HYPRE_Int nI, + hypre_ParCSRMatrix **Lptr, hypre_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end, HYPRE_Int modified ); +HYPRE_Int hypre_ILUSetupMILU0_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *permp, + HYPRE_Int *qpermp, HYPRE_Int nLU, HYPRE_Int nI, + hypre_ParCSRMatrix **Lptr, hypre_long_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **Sptr, + HYPRE_Int **u_end, HYPRE_Int modified ); +HYPRE_Int hypre_ILUSetupRAPILU0_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int n, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, hypre_float **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **mLptr, + hypre_float **mDptr, hypre_ParCSRMatrix **mUptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupRAPILU0_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int n, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, hypre_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **mLptr, + hypre_double **mDptr, hypre_ParCSRMatrix **mUptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupRAPILU0_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int n, + HYPRE_Int nLU, hypre_ParCSRMatrix **Lptr, hypre_long_double **Dptr, + hypre_ParCSRMatrix **Uptr, hypre_ParCSRMatrix **mLptr, + hypre_long_double **mDptr, hypre_ParCSRMatrix **mUptr, + HYPRE_Int **u_end ); +HYPRE_Int hypre_ILUSetupRAPILU0Device_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int n, + HYPRE_Int nLU, hypre_ParCSRMatrix **Apermptr, + hypre_ParCSRMatrix **matSptr, hypre_CSRMatrix **ALUptr, + hypre_CSRMatrix **BLUptr, hypre_CSRMatrix **CLUptr, + hypre_CSRMatrix **Eptr, hypre_CSRMatrix **Fptr, + HYPRE_Int test_opt ); +HYPRE_Int hypre_ILUSetupRAPILU0Device_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int n, + HYPRE_Int nLU, hypre_ParCSRMatrix **Apermptr, + hypre_ParCSRMatrix **matSptr, hypre_CSRMatrix **ALUptr, + hypre_CSRMatrix **BLUptr, hypre_CSRMatrix **CLUptr, + hypre_CSRMatrix **Eptr, hypre_CSRMatrix **Fptr, + HYPRE_Int test_opt ); +HYPRE_Int hypre_ILUSetupRAPILU0Device_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, HYPRE_Int n, + HYPRE_Int nLU, hypre_ParCSRMatrix **Apermptr, + hypre_ParCSRMatrix **matSptr, hypre_CSRMatrix **ALUptr, + hypre_CSRMatrix **BLUptr, hypre_CSRMatrix **CLUptr, + hypre_CSRMatrix **Eptr, hypre_CSRMatrix **Fptr, + HYPRE_Int test_opt ); +HYPRE_Int hypre_ILUSetupRAPMILU0_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **ALUp, + HYPRE_Int modified ); +HYPRE_Int hypre_ILUSetupRAPMILU0_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **ALUp, + HYPRE_Int modified ); +HYPRE_Int hypre_ILUSetupRAPMILU0_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **ALUp, + HYPRE_Int modified ); +HYPRE_Int hypre_NSHSetup_flt ( void *nsh_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_NSHSetup_dbl ( void *nsh_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_NSHSetup_long_dbl ( void *nsh_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ParILUExtractEBFC_flt ( hypre_CSRMatrix *A_diag, HYPRE_Int nLU, + hypre_CSRMatrix **Bp, hypre_CSRMatrix **Cp, + hypre_CSRMatrix **Ep, hypre_CSRMatrix **Fp ); +HYPRE_Int hypre_ParILUExtractEBFC_dbl ( hypre_CSRMatrix *A_diag, HYPRE_Int nLU, + hypre_CSRMatrix **Bp, hypre_CSRMatrix **Cp, + hypre_CSRMatrix **Ep, hypre_CSRMatrix **Fp ); +HYPRE_Int hypre_ParILUExtractEBFC_long_dbl ( hypre_CSRMatrix *A_diag, HYPRE_Int nLU, + hypre_CSRMatrix **Bp, hypre_CSRMatrix **Cp, + hypre_CSRMatrix **Ep, hypre_CSRMatrix **Fp ); +HYPRE_Int hypre_ParILURAPReorder_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, + HYPRE_Int *rqperm, hypre_ParCSRMatrix **A_pq ); +HYPRE_Int hypre_ParILURAPReorder_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, + HYPRE_Int *rqperm, hypre_ParCSRMatrix **A_pq ); +HYPRE_Int hypre_ParILURAPReorder_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *perm, + HYPRE_Int *rqperm, hypre_ParCSRMatrix **A_pq ); +HYPRE_Int hypre_ILUSolve_flt ( void *ilu_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSolve_dbl ( void *ilu_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSolve_long_dbl ( void *ilu_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_ILUSolveLU_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_float *D, hypre_ParCSRMatrix *U, + hypre_ParVector *ftemp, hypre_ParVector *utemp ); +HYPRE_Int hypre_ILUSolveLU_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_double *D, hypre_ParCSRMatrix *U, + hypre_ParVector *ftemp, hypre_ParVector *utemp ); +HYPRE_Int hypre_ILUSolveLU_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_long_double *D, hypre_ParCSRMatrix *U, + hypre_ParVector *ftemp, hypre_ParVector *utemp ); +HYPRE_Int hypre_ILUSolveLUIter_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_float *D, hypre_ParCSRMatrix *U, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + hypre_ParVector *xtemp, HYPRE_Int lower_jacobi_iters, + HYPRE_Int upper_jacobi_iters ); +HYPRE_Int hypre_ILUSolveLUIter_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_double *D, hypre_ParCSRMatrix *U, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + hypre_ParVector *xtemp, HYPRE_Int lower_jacobi_iters, + HYPRE_Int upper_jacobi_iters ); +HYPRE_Int hypre_ILUSolveLUIter_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_long_double *D, hypre_ParCSRMatrix *U, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + hypre_ParVector *xtemp, HYPRE_Int lower_jacobi_iters, + HYPRE_Int upper_jacobi_iters ); +HYPRE_Int hypre_ILUSolveLURAS_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_ParVector *u, + HYPRE_Int *perm, hypre_ParCSRMatrix *L, hypre_float *D, + hypre_ParCSRMatrix *U, hypre_ParVector *ftemp, + hypre_ParVector *utemp, hypre_float *fext, hypre_float *uext ); +HYPRE_Int hypre_ILUSolveLURAS_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_ParVector *u, + HYPRE_Int *perm, hypre_ParCSRMatrix *L, hypre_double *D, + hypre_ParCSRMatrix *U, hypre_ParVector *ftemp, + hypre_ParVector *utemp, hypre_double *fext, hypre_double *uext ); +HYPRE_Int hypre_ILUSolveLURAS_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_ParVector *u, + HYPRE_Int *perm, hypre_ParCSRMatrix *L, hypre_long_double *D, + hypre_ParCSRMatrix *U, hypre_ParVector *ftemp, + hypre_ParVector *utemp, hypre_long_double *fext, hypre_long_double *uext ); +HYPRE_Int hypre_ILUSolveRAPGMRESHost_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_float *D, hypre_ParCSRMatrix *U, + hypre_ParCSRMatrix *mL, hypre_float *mD, + hypre_ParCSRMatrix *mU, hypre_ParVector *ftemp, + hypre_ParVector *utemp, hypre_ParVector *xtemp, + hypre_ParVector *ytemp, HYPRE_Solver schur_solver, + HYPRE_Solver schur_precond, hypre_ParVector *rhs, + hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveRAPGMRESHost_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_double *D, hypre_ParCSRMatrix *U, + hypre_ParCSRMatrix *mL, hypre_double *mD, + hypre_ParCSRMatrix *mU, hypre_ParVector *ftemp, + hypre_ParVector *utemp, hypre_ParVector *xtemp, + hypre_ParVector *ytemp, HYPRE_Solver schur_solver, + HYPRE_Solver schur_precond, hypre_ParVector *rhs, + hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveRAPGMRESHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_long_double *D, hypre_ParCSRMatrix *U, + hypre_ParCSRMatrix *mL, hypre_long_double *mD, + hypre_ParCSRMatrix *mU, hypre_ParVector *ftemp, + hypre_ParVector *utemp, hypre_ParVector *xtemp, + hypre_ParVector *ytemp, HYPRE_Solver schur_solver, + HYPRE_Solver schur_precond, hypre_ParVector *rhs, + hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveSchurGMRES_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, + HYPRE_Int *qperm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_float *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix *S, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + HYPRE_Solver schur_solver, HYPRE_Solver schur_precond, + hypre_ParVector *rhs, hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveSchurGMRES_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, + HYPRE_Int *qperm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_double *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix *S, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + HYPRE_Solver schur_solver, HYPRE_Solver schur_precond, + hypre_ParVector *rhs, hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveSchurGMRES_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, + HYPRE_Int *qperm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_long_double *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix *S, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + HYPRE_Solver schur_solver, HYPRE_Solver schur_precond, + hypre_ParVector *rhs, hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveSchurNSH_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_float *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix *S, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + HYPRE_Solver schur_solver, hypre_ParVector *rhs, + hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveSchurNSH_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_double *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix *S, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + HYPRE_Solver schur_solver, hypre_ParVector *rhs, + hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_ILUSolveSchurNSH_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *perm, HYPRE_Int nLU, + hypre_ParCSRMatrix *L, hypre_long_double *D, + hypre_ParCSRMatrix *U, hypre_ParCSRMatrix *S, + hypre_ParVector *ftemp, hypre_ParVector *utemp, + HYPRE_Solver schur_solver, hypre_ParVector *rhs, + hypre_ParVector *x, HYPRE_Int *u_end ); +HYPRE_Int hypre_NSHSolve_flt ( void *nsh_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_NSHSolve_dbl ( void *nsh_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_NSHSolve_long_dbl ( void *nsh_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_NSHSolveInverse_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, hypre_ParCSRMatrix *M, + hypre_ParVector *ftemp, hypre_ParVector *utemp ); +HYPRE_Int hypre_NSHSolveInverse_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, hypre_ParCSRMatrix *M, + hypre_ParVector *ftemp, hypre_ParVector *utemp ); +HYPRE_Int hypre_NSHSolveInverse_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, hypre_ParCSRMatrix *M, + hypre_ParVector *ftemp, hypre_ParVector *utemp ); +HYPRE_Int hypre_BoomerAMGIndepSet_flt ( hypre_ParCSRMatrix *S, hypre_float *measure_array, + HYPRE_Int *graph_array, HYPRE_Int graph_array_size, HYPRE_Int *graph_array_offd, + HYPRE_Int graph_array_offd_size, HYPRE_Int *IS_marker, HYPRE_Int *IS_marker_offd ); +HYPRE_Int hypre_BoomerAMGIndepSet_dbl ( hypre_ParCSRMatrix *S, hypre_double *measure_array, + HYPRE_Int *graph_array, HYPRE_Int graph_array_size, HYPRE_Int *graph_array_offd, + HYPRE_Int graph_array_offd_size, HYPRE_Int *IS_marker, HYPRE_Int *IS_marker_offd ); +HYPRE_Int hypre_BoomerAMGIndepSet_long_dbl ( hypre_ParCSRMatrix *S, hypre_long_double *measure_array, + HYPRE_Int *graph_array, HYPRE_Int graph_array_size, HYPRE_Int *graph_array_offd, + HYPRE_Int graph_array_offd_size, HYPRE_Int *IS_marker, HYPRE_Int *IS_marker_offd ); +HYPRE_Int hypre_BoomerAMGIndepSetInit_flt ( hypre_ParCSRMatrix *S, hypre_float *measure_array, + HYPRE_Int seq_rand ); +HYPRE_Int hypre_BoomerAMGIndepSetInit_dbl ( hypre_ParCSRMatrix *S, hypre_double *measure_array, + HYPRE_Int seq_rand ); +HYPRE_Int hypre_BoomerAMGIndepSetInit_long_dbl ( hypre_ParCSRMatrix *S, hypre_long_double *measure_array, + HYPRE_Int seq_rand ); +HYPRE_Int hypre_BoomerAMGBuildDirInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, HYPRE_Int interp_type, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildDirInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, HYPRE_Int interp_type, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildDirInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, HYPRE_Int interp_type, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpHE_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpHE_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpHE_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpModUnk_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpModUnk_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpModUnk_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildInterpOnePnt_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildInterpOnePnt_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildInterpOnePnt_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildInterpOnePntHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildInterpOnePntHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildInterpOnePntHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGInterpTruncation_flt ( hypre_ParCSRMatrix *P, hypre_float trunc_factor, + HYPRE_Int max_elmts ); +HYPRE_Int hypre_BoomerAMGInterpTruncation_dbl ( hypre_ParCSRMatrix *P, hypre_double trunc_factor, + HYPRE_Int max_elmts ); +HYPRE_Int hypre_BoomerAMGInterpTruncation_long_dbl ( hypre_ParCSRMatrix *P, hypre_long_double trunc_factor, + HYPRE_Int max_elmts ); +HYPRE_Int hypre_BoomerAMGTruncandBuild_flt ( hypre_ParCSRMatrix *P, hypre_float trunc_factor, + HYPRE_Int max_elmts ); +HYPRE_Int hypre_BoomerAMGTruncandBuild_dbl ( hypre_ParCSRMatrix *P, hypre_double trunc_factor, + HYPRE_Int max_elmts ); +HYPRE_Int hypre_BoomerAMGTruncandBuild_long_dbl ( hypre_ParCSRMatrix *P, hypre_long_double trunc_factor, + HYPRE_Int max_elmts ); +hypre_ParCSRMatrix *hypre_CreateC_flt ( hypre_ParCSRMatrix *A, hypre_float w ); +hypre_ParCSRMatrix *hypre_CreateC_dbl ( hypre_ParCSRMatrix *A, hypre_double w ); +hypre_ParCSRMatrix *hypre_CreateC_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double w ); +void hypre_BoomerAMGJacobiInterp_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + hypre_ParCSRMatrix *S, HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int *CF_marker, + HYPRE_Int level, hypre_float truncation_threshold, hypre_float truncation_threshold_minus ); +void hypre_BoomerAMGJacobiInterp_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + hypre_ParCSRMatrix *S, HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int *CF_marker, + HYPRE_Int level, hypre_double truncation_threshold, hypre_double truncation_threshold_minus ); +void hypre_BoomerAMGJacobiInterp_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + hypre_ParCSRMatrix *S, HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int *CF_marker, + HYPRE_Int level, hypre_long_double truncation_threshold, hypre_long_double truncation_threshold_minus ); +void hypre_BoomerAMGJacobiInterp_1_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, HYPRE_Int level, hypre_float truncation_threshold, + hypre_float truncation_threshold_minus, HYPRE_Int *dof_func, HYPRE_Int *dof_func_offd, + hypre_float weight_AF ); +void hypre_BoomerAMGJacobiInterp_1_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, HYPRE_Int level, hypre_double truncation_threshold, + hypre_double truncation_threshold_minus, HYPRE_Int *dof_func, HYPRE_Int *dof_func_offd, + hypre_double weight_AF ); +void hypre_BoomerAMGJacobiInterp_1_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, HYPRE_Int level, hypre_long_double truncation_threshold, + hypre_long_double truncation_threshold_minus, HYPRE_Int *dof_func, HYPRE_Int *dof_func_offd, + hypre_long_double weight_AF ); +void hypre_BoomerAMGTruncateInterp_flt ( hypre_ParCSRMatrix *P, hypre_float eps, hypre_float dlt, + HYPRE_Int *CF_marker ); +void hypre_BoomerAMGTruncateInterp_dbl ( hypre_ParCSRMatrix *P, hypre_double eps, hypre_double dlt, + HYPRE_Int *CF_marker ); +void hypre_BoomerAMGTruncateInterp_long_dbl ( hypre_ParCSRMatrix *P, hypre_long_double eps, hypre_long_double dlt, + HYPRE_Int *CF_marker ); +HYPRE_Int hypre_ParCSRMatrix_dof_func_offd_flt ( hypre_ParCSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int **dof_func_offd ); +HYPRE_Int hypre_ParCSRMatrix_dof_func_offd_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int **dof_func_offd ); +HYPRE_Int hypre_ParCSRMatrix_dof_func_offd_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int **dof_func_offd ); +HYPRE_Int hypre_ParKrylovAxpy_flt ( hypre_float alpha, void *x, void *y ); +HYPRE_Int hypre_ParKrylovAxpy_dbl ( hypre_double alpha, void *x, void *y ); +HYPRE_Int hypre_ParKrylovAxpy_long_dbl ( hypre_long_double alpha, void *x, void *y ); +void *hypre_ParKrylovCAlloc_flt ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ); +void *hypre_ParKrylovCAlloc_dbl ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ); +void *hypre_ParKrylovCAlloc_long_dbl ( size_t count, size_t elt_size, HYPRE_MemoryLocation location ); +HYPRE_Int hypre_ParKrylovClearVector_flt ( void *x ); +HYPRE_Int hypre_ParKrylovClearVector_dbl ( void *x ); +HYPRE_Int hypre_ParKrylovClearVector_long_dbl ( void *x ); +HYPRE_Int hypre_ParKrylovCommInfo_flt ( void *A, HYPRE_Int *my_id, HYPRE_Int *num_procs ); +HYPRE_Int hypre_ParKrylovCommInfo_dbl ( void *A, HYPRE_Int *my_id, HYPRE_Int *num_procs ); +HYPRE_Int hypre_ParKrylovCommInfo_long_dbl ( void *A, HYPRE_Int *my_id, HYPRE_Int *num_procs ); +HYPRE_Int hypre_ParKrylovCopyVector_flt ( void *x, void *y ); +HYPRE_Int hypre_ParKrylovCopyVector_dbl ( void *x, void *y ); +HYPRE_Int hypre_ParKrylovCopyVector_long_dbl ( void *x, void *y ); +void *hypre_ParKrylovCreateVector_flt ( void *vvector ); +void *hypre_ParKrylovCreateVector_dbl ( void *vvector ); +void *hypre_ParKrylovCreateVector_long_dbl ( void *vvector ); +void *hypre_ParKrylovCreateVectorArray_flt ( HYPRE_Int n, void *vvector ); +void *hypre_ParKrylovCreateVectorArray_dbl ( HYPRE_Int n, void *vvector ); +void *hypre_ParKrylovCreateVectorArray_long_dbl ( HYPRE_Int n, void *vvector ); +HYPRE_Int hypre_ParKrylovDestroyVector_flt ( void *vvector ); +HYPRE_Int hypre_ParKrylovDestroyVector_dbl ( void *vvector ); +HYPRE_Int hypre_ParKrylovDestroyVector_long_dbl ( void *vvector ); +HYPRE_Int hypre_ParKrylovFree_flt ( void *ptr ); +HYPRE_Int hypre_ParKrylovFree_dbl ( void *ptr ); +HYPRE_Int hypre_ParKrylovFree_long_dbl ( void *ptr ); +HYPRE_Int hypre_ParKrylovIdentity_flt ( void *vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_ParKrylovIdentity_dbl ( void *vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_ParKrylovIdentity_long_dbl ( void *vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_ParKrylovIdentitySetup_flt ( void *vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_ParKrylovIdentitySetup_dbl ( void *vdata, void *A, void *b, void *x ); +HYPRE_Int hypre_ParKrylovIdentitySetup_long_dbl ( void *vdata, void *A, void *b, void *x ); +hypre_float hypre_ParKrylovInnerProd_flt ( void *x, void *y ); +hypre_double hypre_ParKrylovInnerProd_dbl ( void *x, void *y ); +hypre_long_double hypre_ParKrylovInnerProd_long_dbl ( void *x, void *y ); +HYPRE_Int hypre_ParKrylovMassAxpy_flt ( hypre_float *alpha, void **x, void *y, HYPRE_Int k, + HYPRE_Int unroll); +HYPRE_Int hypre_ParKrylovMassAxpy_dbl ( hypre_double *alpha, void **x, void *y, HYPRE_Int k, + HYPRE_Int unroll); +HYPRE_Int hypre_ParKrylovMassAxpy_long_dbl ( hypre_long_double *alpha, void **x, void *y, HYPRE_Int k, + HYPRE_Int unroll); +HYPRE_Int hypre_ParKrylovMassDotpTwo_flt ( void *x, void *y, void **z, HYPRE_Int k, HYPRE_Int unroll, + void *result_x, void *result_y ); +HYPRE_Int hypre_ParKrylovMassDotpTwo_dbl ( void *x, void *y, void **z, HYPRE_Int k, HYPRE_Int unroll, + void *result_x, void *result_y ); +HYPRE_Int hypre_ParKrylovMassDotpTwo_long_dbl ( void *x, void *y, void **z, HYPRE_Int k, HYPRE_Int unroll, + void *result_x, void *result_y ); +HYPRE_Int hypre_ParKrylovMassInnerProd_flt ( void *x, void **y, HYPRE_Int k, HYPRE_Int unroll, + void *result ); +HYPRE_Int hypre_ParKrylovMassInnerProd_dbl ( void *x, void **y, HYPRE_Int k, HYPRE_Int unroll, + void *result ); +HYPRE_Int hypre_ParKrylovMassInnerProd_long_dbl ( void *x, void **y, HYPRE_Int k, HYPRE_Int unroll, + void *result ); +HYPRE_Int hypre_ParKrylovMatvec_flt ( void *matvec_data, hypre_float alpha, void *A, void *x, + hypre_float beta, void *y ); +HYPRE_Int hypre_ParKrylovMatvec_dbl ( void *matvec_data, hypre_double alpha, void *A, void *x, + hypre_double beta, void *y ); +HYPRE_Int hypre_ParKrylovMatvec_long_dbl ( void *matvec_data, hypre_long_double alpha, void *A, void *x, + hypre_long_double beta, void *y ); +void *hypre_ParKrylovMatvecCreate_flt ( void *A, void *x ); +void *hypre_ParKrylovMatvecCreate_dbl ( void *A, void *x ); +void *hypre_ParKrylovMatvecCreate_long_dbl ( void *A, void *x ); +HYPRE_Int hypre_ParKrylovMatvecDestroy_flt ( void *matvec_data ); +HYPRE_Int hypre_ParKrylovMatvecDestroy_dbl ( void *matvec_data ); +HYPRE_Int hypre_ParKrylovMatvecDestroy_long_dbl ( void *matvec_data ); +HYPRE_Int hypre_ParKrylovMatvecT_flt ( void *matvec_data, hypre_float alpha, void *A, void *x, + hypre_float beta, void *y ); +HYPRE_Int hypre_ParKrylovMatvecT_dbl ( void *matvec_data, hypre_double alpha, void *A, void *x, + hypre_double beta, void *y ); +HYPRE_Int hypre_ParKrylovMatvecT_long_dbl ( void *matvec_data, hypre_long_double alpha, void *A, void *x, + hypre_long_double beta, void *y ); +HYPRE_Int hypre_ParKrylovScaleVector_flt ( hypre_float alpha, void *x ); +HYPRE_Int hypre_ParKrylovScaleVector_dbl ( hypre_double alpha, void *x ); +HYPRE_Int hypre_ParKrylovScaleVector_long_dbl ( hypre_long_double alpha, void *x ); +HYPRE_ParCSRMatrix GenerateLaplacian27pt_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_float *value ); +HYPRE_ParCSRMatrix GenerateLaplacian27pt_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_double *value ); +HYPRE_ParCSRMatrix GenerateLaplacian27pt_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_long_double *value ); +HYPRE_ParCSRMatrix GenerateLaplacian9pt_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_Int P, HYPRE_Int Q, HYPRE_Int p, HYPRE_Int q, hypre_float *value ); +HYPRE_ParCSRMatrix GenerateLaplacian9pt_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_Int P, HYPRE_Int Q, HYPRE_Int p, HYPRE_Int q, hypre_double *value ); +HYPRE_ParCSRMatrix GenerateLaplacian9pt_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_Int P, HYPRE_Int Q, HYPRE_Int p, HYPRE_Int q, hypre_long_double *value ); +HYPRE_BigInt hypre_map2_flt ( HYPRE_BigInt ix, HYPRE_BigInt iy, HYPRE_Int p, HYPRE_Int q, + HYPRE_BigInt nx, HYPRE_BigInt *nx_part, HYPRE_BigInt *ny_part ); +HYPRE_BigInt hypre_map2_dbl ( HYPRE_BigInt ix, HYPRE_BigInt iy, HYPRE_Int p, HYPRE_Int q, + HYPRE_BigInt nx, HYPRE_BigInt *nx_part, HYPRE_BigInt *ny_part ); +HYPRE_BigInt hypre_map2_long_dbl ( HYPRE_BigInt ix, HYPRE_BigInt iy, HYPRE_Int p, HYPRE_Int q, + HYPRE_BigInt nx, HYPRE_BigInt *nx_part, HYPRE_BigInt *ny_part ); +HYPRE_ParCSRMatrix GenerateLaplacian_flt ( MPI_Comm comm, HYPRE_BigInt ix, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_float *value ); +HYPRE_ParCSRMatrix GenerateLaplacian_dbl ( MPI_Comm comm, HYPRE_BigInt ix, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_double *value ); +HYPRE_ParCSRMatrix GenerateLaplacian_long_dbl ( MPI_Comm comm, HYPRE_BigInt ix, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_long_double *value ); +HYPRE_ParCSRMatrix GenerateSysLaplacian_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + HYPRE_Int num_fun, hypre_float *mtrx, hypre_float *value ); +HYPRE_ParCSRMatrix GenerateSysLaplacian_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + HYPRE_Int num_fun, hypre_double *mtrx, hypre_double *value ); +HYPRE_ParCSRMatrix GenerateSysLaplacian_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + HYPRE_Int num_fun, hypre_long_double *mtrx, hypre_long_double *value ); +HYPRE_ParCSRMatrix GenerateSysLaplacianVCoef_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + HYPRE_Int num_fun, hypre_float *mtrx, hypre_float *value ); +HYPRE_ParCSRMatrix GenerateSysLaplacianVCoef_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + HYPRE_Int num_fun, hypre_double *mtrx, hypre_double *value ); +HYPRE_ParCSRMatrix GenerateSysLaplacianVCoef_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + HYPRE_Int num_fun, hypre_long_double *mtrx, hypre_long_double *value ); +HYPRE_BigInt hypre_map_flt ( HYPRE_BigInt ix, HYPRE_BigInt iy, HYPRE_BigInt iz, HYPRE_Int p, + HYPRE_Int q, HYPRE_Int r, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_BigInt *nx_part, + HYPRE_BigInt *ny_part, HYPRE_BigInt *nz_part ); +HYPRE_BigInt hypre_map_dbl ( HYPRE_BigInt ix, HYPRE_BigInt iy, HYPRE_BigInt iz, HYPRE_Int p, + HYPRE_Int q, HYPRE_Int r, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_BigInt *nx_part, + HYPRE_BigInt *ny_part, HYPRE_BigInt *nz_part ); +HYPRE_BigInt hypre_map_long_dbl ( HYPRE_BigInt ix, HYPRE_BigInt iy, HYPRE_BigInt iz, HYPRE_Int p, + HYPRE_Int q, HYPRE_Int r, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_BigInt *nx_part, + HYPRE_BigInt *ny_part, HYPRE_BigInt *nz_part ); +HYPRE_Int hypre_BoomerAMGBuildExtInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPICCInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPICCInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPICCInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPIInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPIInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPIInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPIInterpHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPIInterpHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildExtPIInterpHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildFF1Interp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildFF1Interp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildFF1Interp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildFFInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildFFInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildFFInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildStdInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int sep_weight, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildStdInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int sep_weight, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildStdInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int sep_weight, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildRestrDist2AIR_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_float filter_thresholdR, HYPRE_Int debug_flag, hypre_ParCSRMatrix **R_ptr, HYPRE_Int AIR1_5, + HYPRE_Int is_triangular, HYPRE_Int gmres_switch); +HYPRE_Int hypre_BoomerAMGBuildRestrDist2AIR_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_double filter_thresholdR, HYPRE_Int debug_flag, hypre_ParCSRMatrix **R_ptr, HYPRE_Int AIR1_5, + HYPRE_Int is_triangular, HYPRE_Int gmres_switch); +HYPRE_Int hypre_BoomerAMGBuildRestrDist2AIR_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_long_double filter_thresholdR, HYPRE_Int debug_flag, hypre_ParCSRMatrix **R_ptr, HYPRE_Int AIR1_5, + HYPRE_Int is_triangular, HYPRE_Int gmres_switch); +HYPRE_Int hypre_BoomerAMGBuildRestrNeumannAIR_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int NeumannDeg, + hypre_float strong_thresholdR, hypre_float filter_thresholdR, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **R_ptr); +HYPRE_Int hypre_BoomerAMGBuildRestrNeumannAIR_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int NeumannDeg, + hypre_double strong_thresholdR, hypre_double filter_thresholdR, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **R_ptr); +HYPRE_Int hypre_BoomerAMGBuildRestrNeumannAIR_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int NeumannDeg, + hypre_long_double strong_thresholdR, hypre_long_double filter_thresholdR, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **R_ptr); +HYPRE_Int hypre_MGRCoarseParms_flt ( MPI_Comm comm, HYPRE_Int num_rows, hypre_IntArray *CF_marker, + HYPRE_BigInt *row_starts_cpts, HYPRE_BigInt *row_starts_fpts ); +HYPRE_Int hypre_MGRCoarseParms_dbl ( MPI_Comm comm, HYPRE_Int num_rows, hypre_IntArray *CF_marker, + HYPRE_BigInt *row_starts_cpts, HYPRE_BigInt *row_starts_fpts ); +HYPRE_Int hypre_MGRCoarseParms_long_dbl ( MPI_Comm comm, HYPRE_Int num_rows, hypre_IntArray *CF_marker, + HYPRE_BigInt *row_starts_cpts, HYPRE_BigInt *row_starts_fpts ); +HYPRE_Int hypre_block_jacobi_solve_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int blk_size, + HYPRE_Int method, hypre_float *diaginv, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_block_jacobi_solve_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int blk_size, + HYPRE_Int method, hypre_double *diaginv, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_block_jacobi_solve_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int blk_size, + HYPRE_Int method, hypre_long_double *diaginv, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_MGRAddVectorP_flt ( hypre_IntArray *CF_marker, HYPRE_Int point_type, hypre_float a, + hypre_ParVector *fromVector, hypre_float b, + hypre_ParVector **toVector ); +HYPRE_Int hypre_MGRAddVectorP_dbl ( hypre_IntArray *CF_marker, HYPRE_Int point_type, hypre_double a, + hypre_ParVector *fromVector, hypre_double b, + hypre_ParVector **toVector ); +HYPRE_Int hypre_MGRAddVectorP_long_dbl ( hypre_IntArray *CF_marker, HYPRE_Int point_type, hypre_long_double a, + hypre_ParVector *fromVector, hypre_long_double b, + hypre_ParVector **toVector ); +HYPRE_Int hypre_MGRAddVectorR_flt ( hypre_IntArray *CF_marker, HYPRE_Int point_type, hypre_float a, + hypre_ParVector *fromVector, hypre_float b, + hypre_ParVector **toVector ); +HYPRE_Int hypre_MGRAddVectorR_dbl ( hypre_IntArray *CF_marker, HYPRE_Int point_type, hypre_double a, + hypre_ParVector *fromVector, hypre_double b, + hypre_ParVector **toVector ); +HYPRE_Int hypre_MGRAddVectorR_long_dbl ( hypre_IntArray *CF_marker, HYPRE_Int point_type, hypre_long_double a, + hypre_ParVector *fromVector, hypre_long_double b, + hypre_ParVector **toVector ); +HYPRE_Int hypre_MGRApproximateInverse_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **A_inv ); +HYPRE_Int hypre_MGRApproximateInverse_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **A_inv ); +HYPRE_Int hypre_MGRApproximateInverse_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **A_inv ); +HYPRE_Int hypre_MGRBlockRelaxSetup_flt ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + hypre_float **diaginvptr ); +HYPRE_Int hypre_MGRBlockRelaxSetup_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + hypre_double **diaginvptr ); +HYPRE_Int hypre_MGRBlockRelaxSetup_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + hypre_long_double **diaginvptr ); +HYPRE_Int hypre_MGRBlockRelaxSolve_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int blk_size, + HYPRE_Int n_block, HYPRE_Int left_size, + HYPRE_Int method, hypre_float *diaginv, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_MGRBlockRelaxSolve_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int blk_size, + HYPRE_Int n_block, HYPRE_Int left_size, + HYPRE_Int method, hypre_double *diaginv, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_MGRBlockRelaxSolve_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int blk_size, + HYPRE_Int n_block, HYPRE_Int left_size, + HYPRE_Int method, hypre_long_double *diaginv, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_MGRBlockRelaxSolveDevice_flt ( hypre_ParCSRMatrix *B, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_float relax_weight ); +HYPRE_Int hypre_MGRBlockRelaxSolveDevice_dbl ( hypre_ParCSRMatrix *B, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_double relax_weight ); +HYPRE_Int hypre_MGRBlockRelaxSolveDevice_long_dbl ( hypre_ParCSRMatrix *B, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_long_double relax_weight ); +HYPRE_Int hypre_MGRBuildAff_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **A_ff_ptr ); +HYPRE_Int hypre_MGRBuildAff_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **A_ff_ptr ); +HYPRE_Int hypre_MGRBuildAff_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **A_ff_ptr ); +HYPRE_Int hypre_MGRBuildBlockJacobiWp_flt ( hypre_ParCSRMatrix *A_FF, hypre_ParCSRMatrix *A_FC, + HYPRE_Int blk_size, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts_in, + hypre_ParCSRMatrix **Wp_ptr ); +HYPRE_Int hypre_MGRBuildBlockJacobiWp_dbl ( hypre_ParCSRMatrix *A_FF, hypre_ParCSRMatrix *A_FC, + HYPRE_Int blk_size, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts_in, + hypre_ParCSRMatrix **Wp_ptr ); +HYPRE_Int hypre_MGRBuildBlockJacobiWp_long_dbl ( hypre_ParCSRMatrix *A_FF, hypre_ParCSRMatrix *A_FC, + HYPRE_Int blk_size, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts_in, + hypre_ParCSRMatrix **Wp_ptr ); +HYPRE_Int hypre_MGRBuildInterp_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int block_jacobi_bsize, + hypre_ParCSRMatrix **P, HYPRE_Int method, + HYPRE_Int numsweeps ); +HYPRE_Int hypre_MGRBuildInterp_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int block_jacobi_bsize, + hypre_ParCSRMatrix **P, HYPRE_Int method, + HYPRE_Int numsweeps ); +HYPRE_Int hypre_MGRBuildInterp_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int block_jacobi_bsize, + hypre_ParCSRMatrix **P, HYPRE_Int method, + HYPRE_Int numsweeps ); +HYPRE_Int hypre_MGRBuildP_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int method, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildP_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int method, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildP_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int method, + HYPRE_Int debug_flag, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPBlockJacobi_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, hypre_ParCSRMatrix *Wp, + HYPRE_Int blk_size, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPBlockJacobi_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, hypre_ParCSRMatrix *Wp, + HYPRE_Int blk_size, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPBlockJacobi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, hypre_ParCSRMatrix *Wp, + HYPRE_Int blk_size, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPFromWp_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *Wp, + HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPFromWp_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *Wp, + HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPFromWp_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *Wp, + HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPFromWpHost_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *Wp, + HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPFromWpHost_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *Wp, + HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildPFromWpHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *Wp, + HYPRE_Int *CF_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_MGRBuildRestrict_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int debug_flag, + hypre_float trunc_factor, HYPRE_Int max_elmts, + hypre_float strong_threshold, hypre_float max_row_sum, + HYPRE_Int blk_size, hypre_ParCSRMatrix **RT, + HYPRE_Int method, HYPRE_Int numsweeps ); +HYPRE_Int hypre_MGRBuildRestrict_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int debug_flag, + hypre_double trunc_factor, HYPRE_Int max_elmts, + hypre_double strong_threshold, hypre_double max_row_sum, + HYPRE_Int blk_size, hypre_ParCSRMatrix **RT, + HYPRE_Int method, HYPRE_Int numsweeps ); +HYPRE_Int hypre_MGRBuildRestrict_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *A_FF, + hypre_ParCSRMatrix *A_FC, HYPRE_Int *CF_marker, + HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int debug_flag, + hypre_long_double trunc_factor, HYPRE_Int max_elmts, + hypre_long_double strong_threshold, hypre_long_double max_row_sum, + HYPRE_Int blk_size, hypre_ParCSRMatrix **RT, + HYPRE_Int method, HYPRE_Int numsweeps ); +HYPRE_Int hypre_MGRCoarsen_flt ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int final_coarse_size, HYPRE_Int *final_coarse_indexes, + HYPRE_Int debug_flag, hypre_IntArray **CF_marker, + HYPRE_Int last_level ); +HYPRE_Int hypre_MGRCoarsen_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int final_coarse_size, HYPRE_Int *final_coarse_indexes, + HYPRE_Int debug_flag, hypre_IntArray **CF_marker, + HYPRE_Int last_level ); +HYPRE_Int hypre_MGRCoarsen_long_dbl ( hypre_ParCSRMatrix *S, hypre_ParCSRMatrix *A, + HYPRE_Int final_coarse_size, HYPRE_Int *final_coarse_indexes, + HYPRE_Int debug_flag, hypre_IntArray **CF_marker, + HYPRE_Int last_level ); +HYPRE_Int hypre_MGRComputeNonGalerkinCoarseGrid_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + hypre_ParCSRMatrix *RT, HYPRE_Int bsize, + HYPRE_Int ordering, HYPRE_Int method, + HYPRE_Int Pmax, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix **A_H_ptr ); +HYPRE_Int hypre_MGRComputeNonGalerkinCoarseGrid_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + hypre_ParCSRMatrix *RT, HYPRE_Int bsize, + HYPRE_Int ordering, HYPRE_Int method, + HYPRE_Int Pmax, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix **A_H_ptr ); +HYPRE_Int hypre_MGRComputeNonGalerkinCoarseGrid_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + hypre_ParCSRMatrix *RT, HYPRE_Int bsize, + HYPRE_Int ordering, HYPRE_Int method, + HYPRE_Int Pmax, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix **A_H_ptr ); +void *hypre_MGRCreate_flt ( void ); +void *hypre_MGRCreate_dbl ( void ); +void *hypre_MGRCreate_long_dbl ( void ); +void *hypre_MGRCreateFrelaxVcycleData_flt ( void ); +void *hypre_MGRCreateFrelaxVcycleData_dbl ( void ); +void *hypre_MGRCreateFrelaxVcycleData_long_dbl ( void ); +void *hypre_MGRCreateGSElimData_flt ( void ); +void *hypre_MGRCreateGSElimData_dbl ( void ); +void *hypre_MGRCreateGSElimData_long_dbl ( void ); +HYPRE_Int hypre_MGRDestroy_flt ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroy_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroy_long_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroyFrelaxVcycleData_flt ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroyFrelaxVcycleData_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroyFrelaxVcycleData_long_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroyGSElimData_flt ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroyGSElimData_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRDestroyGSElimData_long_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRGetCoarseGridConvergenceFactor_flt ( void *mgr_data, hypre_float *conv_factor ); +HYPRE_Int hypre_MGRGetCoarseGridConvergenceFactor_dbl ( void *mgr_data, hypre_double *conv_factor ); +HYPRE_Int hypre_MGRGetCoarseGridConvergenceFactor_long_dbl ( void *mgr_data, hypre_long_double *conv_factor ); +HYPRE_Int hypre_MGRGetFinalRelativeResidualNorm_flt ( void *mgr_vdata, hypre_float *res_norm ); +HYPRE_Int hypre_MGRGetFinalRelativeResidualNorm_dbl ( void *mgr_vdata, hypre_double *res_norm ); +HYPRE_Int hypre_MGRGetFinalRelativeResidualNorm_long_dbl ( void *mgr_vdata, hypre_long_double *res_norm ); +HYPRE_Int hypre_MGRGetNumIterations_flt ( void *mgr_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_MGRGetNumIterations_dbl ( void *mgr_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_MGRGetNumIterations_long_dbl ( void *mgr_vdata, HYPRE_Int *num_iterations ); +HYPRE_Int hypre_MGRGetSubBlock_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *row_cf_marker, + HYPRE_Int *col_cf_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **A_ff_ptr ); +HYPRE_Int hypre_MGRGetSubBlock_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *row_cf_marker, + HYPRE_Int *col_cf_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **A_ff_ptr ); +HYPRE_Int hypre_MGRGetSubBlock_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *row_cf_marker, + HYPRE_Int *col_cf_marker, HYPRE_Int debug_flag, + hypre_ParCSRMatrix **A_ff_ptr ); +HYPRE_Int hypre_MGRSetBlockJacobiBlockSize_flt ( void *mgr_vdata, HYPRE_Int blk_size ); +HYPRE_Int hypre_MGRSetBlockJacobiBlockSize_dbl ( void *mgr_vdata, HYPRE_Int blk_size ); +HYPRE_Int hypre_MGRSetBlockJacobiBlockSize_long_dbl ( void *mgr_vdata, HYPRE_Int blk_size ); +HYPRE_Int hypre_MGRSetBlockSize_flt ( void *mgr_vdata, HYPRE_Int bsize ); +HYPRE_Int hypre_MGRSetBlockSize_dbl ( void *mgr_vdata, HYPRE_Int bsize ); +HYPRE_Int hypre_MGRSetBlockSize_long_dbl ( void *mgr_vdata, HYPRE_Int bsize ); +HYPRE_Int hypre_MGRSetCoarseGridMethod_flt ( void *mgr_vdata, HYPRE_Int *cg_method ); +HYPRE_Int hypre_MGRSetCoarseGridMethod_dbl ( void *mgr_vdata, HYPRE_Int *cg_method ); +HYPRE_Int hypre_MGRSetCoarseGridMethod_long_dbl ( void *mgr_vdata, HYPRE_Int *cg_method ); +HYPRE_Int hypre_MGRSetCoarseGridPrintLevel_flt ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetCoarseGridPrintLevel_dbl ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetCoarseGridPrintLevel_long_dbl ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetCoarseSolver_flt ( void *mgr_vdata, + HYPRE_Int (*cgrid_solver_solve)(void*, void*, void*, void*), + HYPRE_Int (*cgrid_solver_setup)(void*, void*, void*, void*), + void *coarse_grid_solver ); +HYPRE_Int hypre_MGRSetCoarseSolver_dbl ( void *mgr_vdata, + HYPRE_Int (*cgrid_solver_solve)(void*, void*, void*, void*), + HYPRE_Int (*cgrid_solver_setup)(void*, void*, void*, void*), + void *coarse_grid_solver ); +HYPRE_Int hypre_MGRSetCoarseSolver_long_dbl ( void *mgr_vdata, + HYPRE_Int (*cgrid_solver_solve)(void*, void*, void*, void*), + HYPRE_Int (*cgrid_solver_setup)(void*, void*, void*, void*), + void *coarse_grid_solver ); +HYPRE_Int hypre_MGRSetCpointsByBlock_flt ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes ); +HYPRE_Int hypre_MGRSetCpointsByBlock_dbl ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes ); +HYPRE_Int hypre_MGRSetCpointsByBlock_long_dbl ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes ); +HYPRE_Int hypre_MGRSetCpointsByContiguousBlock_flt ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_BigInt *begin_idx_array, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes ); +HYPRE_Int hypre_MGRSetCpointsByContiguousBlock_dbl ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_BigInt *begin_idx_array, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes ); +HYPRE_Int hypre_MGRSetCpointsByContiguousBlock_long_dbl ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_BigInt *begin_idx_array, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes ); +HYPRE_Int hypre_MGRSetCpointsByPointMarkerArray_flt ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes, + HYPRE_Int *point_marker_array ); +HYPRE_Int hypre_MGRSetCpointsByPointMarkerArray_dbl ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes, + HYPRE_Int *point_marker_array ); +HYPRE_Int hypre_MGRSetCpointsByPointMarkerArray_long_dbl ( void *mgr_vdata, HYPRE_Int block_size, + HYPRE_Int max_num_levels, + HYPRE_Int *block_num_coarse_points, + HYPRE_Int **block_coarse_indexes, + HYPRE_Int *point_marker_array ); +HYPRE_Int hypre_MGRSetFRelaxMethod_flt ( void *mgr_vdata, HYPRE_Int relax_method ); +HYPRE_Int hypre_MGRSetFRelaxMethod_dbl ( void *mgr_vdata, HYPRE_Int relax_method ); +HYPRE_Int hypre_MGRSetFRelaxMethod_long_dbl ( void *mgr_vdata, HYPRE_Int relax_method ); +HYPRE_Int hypre_MGRSetFrelaxPrintLevel_flt ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetFrelaxPrintLevel_dbl ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetFrelaxPrintLevel_long_dbl ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetFSolver_flt ( void *mgr_vdata, + HYPRE_Int (*fine_grid_solver_solve)(void*, void*, void*, void*), + HYPRE_Int (*fine_grid_solver_setup)(void*, void*, void*, void*), + void *fsolver ); +HYPRE_Int hypre_MGRSetFSolver_dbl ( void *mgr_vdata, + HYPRE_Int (*fine_grid_solver_solve)(void*, void*, void*, void*), + HYPRE_Int (*fine_grid_solver_setup)(void*, void*, void*, void*), + void *fsolver ); +HYPRE_Int hypre_MGRSetFSolver_long_dbl ( void *mgr_vdata, + HYPRE_Int (*fine_grid_solver_solve)(void*, void*, void*, void*), + HYPRE_Int (*fine_grid_solver_setup)(void*, void*, void*, void*), + void *fsolver ); +HYPRE_Int hypre_MGRSetGlobalSmoothCycle_flt ( void *mgr_vdata, HYPRE_Int global_smooth_cycle ); +HYPRE_Int hypre_MGRSetGlobalSmoothCycle_dbl ( void *mgr_vdata, HYPRE_Int global_smooth_cycle ); +HYPRE_Int hypre_MGRSetGlobalSmoothCycle_long_dbl ( void *mgr_vdata, HYPRE_Int global_smooth_cycle ); +HYPRE_Int hypre_MGRSetGlobalSmoothType_flt ( void *mgr_vdata, HYPRE_Int iter_type ); +HYPRE_Int hypre_MGRSetGlobalSmoothType_dbl ( void *mgr_vdata, HYPRE_Int iter_type ); +HYPRE_Int hypre_MGRSetGlobalSmoothType_long_dbl ( void *mgr_vdata, HYPRE_Int iter_type ); +HYPRE_Int hypre_MGRSetInterpType_flt ( void *mgr_vdata, HYPRE_Int interpType ); +HYPRE_Int hypre_MGRSetInterpType_dbl ( void *mgr_vdata, HYPRE_Int interpType ); +HYPRE_Int hypre_MGRSetInterpType_long_dbl ( void *mgr_vdata, HYPRE_Int interpType ); +HYPRE_Int hypre_MGRSetLevelFRelaxMethod_flt ( void *mgr_vdata, HYPRE_Int *relax_method ); +HYPRE_Int hypre_MGRSetLevelFRelaxMethod_dbl ( void *mgr_vdata, HYPRE_Int *relax_method ); +HYPRE_Int hypre_MGRSetLevelFRelaxMethod_long_dbl ( void *mgr_vdata, HYPRE_Int *relax_method ); +HYPRE_Int hypre_MGRSetLevelFRelaxNumFunctions_flt ( void *mgr_vdata, HYPRE_Int *num_functions ); +HYPRE_Int hypre_MGRSetLevelFRelaxNumFunctions_dbl ( void *mgr_vdata, HYPRE_Int *num_functions ); +HYPRE_Int hypre_MGRSetLevelFRelaxNumFunctions_long_dbl ( void *mgr_vdata, HYPRE_Int *num_functions ); +HYPRE_Int hypre_MGRSetLevelFRelaxType_flt ( void *mgr_vdata, HYPRE_Int *relax_type ); +HYPRE_Int hypre_MGRSetLevelFRelaxType_dbl ( void *mgr_vdata, HYPRE_Int *relax_type ); +HYPRE_Int hypre_MGRSetLevelFRelaxType_long_dbl ( void *mgr_vdata, HYPRE_Int *relax_type ); +HYPRE_Int hypre_MGRSetLevelInterpType_flt ( void *mgr_vdata, HYPRE_Int *interpType ); +HYPRE_Int hypre_MGRSetLevelInterpType_dbl ( void *mgr_vdata, HYPRE_Int *interpType ); +HYPRE_Int hypre_MGRSetLevelInterpType_long_dbl ( void *mgr_vdata, HYPRE_Int *interpType ); +HYPRE_Int hypre_MGRSetLevelNumRelaxSweeps_flt ( void *mgr_vdata, HYPRE_Int *nsweeps ); +HYPRE_Int hypre_MGRSetLevelNumRelaxSweeps_dbl ( void *mgr_vdata, HYPRE_Int *nsweeps ); +HYPRE_Int hypre_MGRSetLevelNumRelaxSweeps_long_dbl ( void *mgr_vdata, HYPRE_Int *nsweeps ); +HYPRE_Int hypre_MGRSetLevelRestrictType_flt ( void *mgr_vdata, HYPRE_Int *restrictType ); +HYPRE_Int hypre_MGRSetLevelRestrictType_dbl ( void *mgr_vdata, HYPRE_Int *restrictType ); +HYPRE_Int hypre_MGRSetLevelRestrictType_long_dbl ( void *mgr_vdata, HYPRE_Int *restrictType ); +HYPRE_Int hypre_MGRSetLevelSmoothIters_flt ( void *mgr_vdata, HYPRE_Int *level_smooth_iters ); +HYPRE_Int hypre_MGRSetLevelSmoothIters_dbl ( void *mgr_vdata, HYPRE_Int *level_smooth_iters ); +HYPRE_Int hypre_MGRSetLevelSmoothIters_long_dbl ( void *mgr_vdata, HYPRE_Int *level_smooth_iters ); +HYPRE_Int hypre_MGRSetLevelSmoothType_flt ( void *mgr_vdata, HYPRE_Int *level_smooth_type ); +HYPRE_Int hypre_MGRSetLevelSmoothType_dbl ( void *mgr_vdata, HYPRE_Int *level_smooth_type ); +HYPRE_Int hypre_MGRSetLevelSmoothType_long_dbl ( void *mgr_vdata, HYPRE_Int *level_smooth_type ); +HYPRE_Int hypre_MGRSetLogging_flt ( void *mgr_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_MGRSetLogging_dbl ( void *mgr_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_MGRSetLogging_long_dbl ( void *mgr_vdata, HYPRE_Int logging ); +HYPRE_Int hypre_MGRSetMaxCoarseLevels_flt ( void *mgr_vdata, HYPRE_Int maxlev ); +HYPRE_Int hypre_MGRSetMaxCoarseLevels_dbl ( void *mgr_vdata, HYPRE_Int maxlev ); +HYPRE_Int hypre_MGRSetMaxCoarseLevels_long_dbl ( void *mgr_vdata, HYPRE_Int maxlev ); +HYPRE_Int hypre_MGRSetMaxGlobalSmoothIters_flt ( void *mgr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_MGRSetMaxGlobalSmoothIters_dbl ( void *mgr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_MGRSetMaxGlobalSmoothIters_long_dbl ( void *mgr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_MGRSetMaxIter_flt ( void *mgr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_MGRSetMaxIter_dbl ( void *mgr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_MGRSetMaxIter_long_dbl ( void *mgr_vdata, HYPRE_Int max_iter ); +HYPRE_Int hypre_MGRSetNonCpointsToFpoints_flt ( void *mgr_vdata, HYPRE_Int nonCptToFptFlag ); +HYPRE_Int hypre_MGRSetNonCpointsToFpoints_dbl ( void *mgr_vdata, HYPRE_Int nonCptToFptFlag ); +HYPRE_Int hypre_MGRSetNonCpointsToFpoints_long_dbl ( void *mgr_vdata, HYPRE_Int nonCptToFptFlag ); +HYPRE_Int hypre_MGRSetNumInterpSweeps_flt ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumInterpSweeps_dbl ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumInterpSweeps_long_dbl ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumRelaxSweeps_flt ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumRelaxSweeps_dbl ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumRelaxSweeps_long_dbl ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumRestrictSweeps_flt ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumRestrictSweeps_dbl ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetNumRestrictSweeps_long_dbl ( void *mgr_vdata, HYPRE_Int nsweeps ); +HYPRE_Int hypre_MGRSetPMaxElmts_flt ( void *mgr_vdata, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_MGRSetPMaxElmts_dbl ( void *mgr_vdata, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_MGRSetPMaxElmts_long_dbl ( void *mgr_vdata, HYPRE_Int P_max_elmts ); +HYPRE_Int hypre_MGRSetPrintLevel_flt ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetPrintLevel_dbl ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetPrintLevel_long_dbl ( void *mgr_vdata, HYPRE_Int print_level ); +HYPRE_Int hypre_MGRSetRelaxType_flt ( void *mgr_vdata, HYPRE_Int relax_type ); +HYPRE_Int hypre_MGRSetRelaxType_dbl ( void *mgr_vdata, HYPRE_Int relax_type ); +HYPRE_Int hypre_MGRSetRelaxType_long_dbl ( void *mgr_vdata, HYPRE_Int relax_type ); +HYPRE_Int hypre_MGRSetReservedCoarseNodes_flt ( void *mgr_vdata, HYPRE_Int reserved_coarse_size, + HYPRE_BigInt *reserved_coarse_nodes ); +HYPRE_Int hypre_MGRSetReservedCoarseNodes_dbl ( void *mgr_vdata, HYPRE_Int reserved_coarse_size, + HYPRE_BigInt *reserved_coarse_nodes ); +HYPRE_Int hypre_MGRSetReservedCoarseNodes_long_dbl ( void *mgr_vdata, HYPRE_Int reserved_coarse_size, + HYPRE_BigInt *reserved_coarse_nodes ); +HYPRE_Int hypre_MGRSetReservedCpointsLevelToKeep_flt ( void *mgr_vdata, HYPRE_Int level ); +HYPRE_Int hypre_MGRSetReservedCpointsLevelToKeep_dbl ( void *mgr_vdata, HYPRE_Int level ); +HYPRE_Int hypre_MGRSetReservedCpointsLevelToKeep_long_dbl ( void *mgr_vdata, HYPRE_Int level ); +HYPRE_Int hypre_MGRSetRestrictType_flt ( void *mgr_vdata, HYPRE_Int restrictType ); +HYPRE_Int hypre_MGRSetRestrictType_dbl ( void *mgr_vdata, HYPRE_Int restrictType ); +HYPRE_Int hypre_MGRSetRestrictType_long_dbl ( void *mgr_vdata, HYPRE_Int restrictType ); +HYPRE_Int hypre_MGRSetTol_flt ( void *mgr_vdata, hypre_float tol ); +HYPRE_Int hypre_MGRSetTol_dbl ( void *mgr_vdata, hypre_double tol ); +HYPRE_Int hypre_MGRSetTol_long_dbl ( void *mgr_vdata, hypre_long_double tol ); +HYPRE_Int hypre_MGRSetTruncateCoarseGridThreshold_flt ( void *mgr_vdata, hypre_float threshold ); +HYPRE_Int hypre_MGRSetTruncateCoarseGridThreshold_dbl ( void *mgr_vdata, hypre_double threshold ); +HYPRE_Int hypre_MGRSetTruncateCoarseGridThreshold_long_dbl ( void *mgr_vdata, hypre_long_double threshold ); +HYPRE_Int hypre_MGRTruncateAcfCPR_flt ( hypre_ParCSRMatrix *A_CF, hypre_ParCSRMatrix **A_CF_new_ptr ); +HYPRE_Int hypre_MGRTruncateAcfCPR_dbl ( hypre_ParCSRMatrix *A_CF, hypre_ParCSRMatrix **A_CF_new_ptr ); +HYPRE_Int hypre_MGRTruncateAcfCPR_long_dbl ( hypre_ParCSRMatrix *A_CF, hypre_ParCSRMatrix **A_CF_new_ptr ); +HYPRE_Int hypre_MGRTruncateAcfCPRDevice_flt ( hypre_ParCSRMatrix *A_CF, + hypre_ParCSRMatrix **A_CF_new_ptr ); +HYPRE_Int hypre_MGRTruncateAcfCPRDevice_dbl ( hypre_ParCSRMatrix *A_CF, + hypre_ParCSRMatrix **A_CF_new_ptr ); +HYPRE_Int hypre_MGRTruncateAcfCPRDevice_long_dbl ( hypre_ParCSRMatrix *A_CF, + hypre_ParCSRMatrix **A_CF_new_ptr ); +HYPRE_Int hypre_MGRWriteSolverParams_flt ( void *mgr_vdata ); +HYPRE_Int hypre_MGRWriteSolverParams_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_MGRWriteSolverParams_long_dbl ( void *mgr_vdata ); +HYPRE_Int hypre_ParCSRMatrixBlockDiagMatrix_flt ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + HYPRE_Int point_type, HYPRE_Int *CF_marker, + HYPRE_Int diag_type, hypre_ParCSRMatrix **B_ptr ); +HYPRE_Int hypre_ParCSRMatrixBlockDiagMatrix_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + HYPRE_Int point_type, HYPRE_Int *CF_marker, + HYPRE_Int diag_type, hypre_ParCSRMatrix **B_ptr ); +HYPRE_Int hypre_ParCSRMatrixBlockDiagMatrix_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + HYPRE_Int point_type, HYPRE_Int *CF_marker, + HYPRE_Int diag_type, hypre_ParCSRMatrix **B_ptr ); +HYPRE_Int hypre_ParCSRMatrixBlockDiagMatrixHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + HYPRE_Int point_type, HYPRE_Int *CF_marker, + HYPRE_Int diag_type, + hypre_ParCSRMatrix **B_ptr ); +HYPRE_Int hypre_ParCSRMatrixBlockDiagMatrixHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + HYPRE_Int point_type, HYPRE_Int *CF_marker, + HYPRE_Int diag_type, + hypre_ParCSRMatrix **B_ptr ); +HYPRE_Int hypre_ParCSRMatrixBlockDiagMatrixHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blk_size, + HYPRE_Int point_type, HYPRE_Int *CF_marker, + HYPRE_Int diag_type, + hypre_ParCSRMatrix **B_ptr ); +HYPRE_Int hypre_ParCSRMatrixExtractBlockDiagHost_flt ( hypre_ParCSRMatrix *par_A, HYPRE_Int blk_size, + HYPRE_Int num_points, HYPRE_Int point_type, + HYPRE_Int *CF_marker, HYPRE_Int diag_size, + HYPRE_Int diag_type, hypre_float *diag_data ); +HYPRE_Int hypre_ParCSRMatrixExtractBlockDiagHost_dbl ( hypre_ParCSRMatrix *par_A, HYPRE_Int blk_size, + HYPRE_Int num_points, HYPRE_Int point_type, + HYPRE_Int *CF_marker, HYPRE_Int diag_size, + HYPRE_Int diag_type, hypre_double *diag_data ); +HYPRE_Int hypre_ParCSRMatrixExtractBlockDiagHost_long_dbl ( hypre_ParCSRMatrix *par_A, HYPRE_Int blk_size, + HYPRE_Int num_points, HYPRE_Int point_type, + HYPRE_Int *CF_marker, HYPRE_Int diag_size, + HYPRE_Int diag_type, hypre_long_double *diag_data ); +HYPRE_Int hypre_MGRSetup_flt ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRSetup_dbl ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRSetup_long_dbl ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRSetupFrelaxVcycleData_flt ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u, + HYPRE_Int level ); +HYPRE_Int hypre_MGRSetupFrelaxVcycleData_dbl ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u, + HYPRE_Int level ); +HYPRE_Int hypre_MGRSetupFrelaxVcycleData_long_dbl ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u, + HYPRE_Int level ); +HYPRE_Int hypre_MGRCycle_flt ( void *mgr_vdata, hypre_ParVector **F_array, hypre_ParVector **U_array ); +HYPRE_Int hypre_MGRCycle_dbl ( void *mgr_vdata, hypre_ParVector **F_array, hypre_ParVector **U_array ); +HYPRE_Int hypre_MGRCycle_long_dbl ( void *mgr_vdata, hypre_ParVector **F_array, hypre_ParVector **U_array ); +HYPRE_Int hypre_MGRFrelaxVcycle_flt ( void *mgr_vdata, hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRFrelaxVcycle_dbl ( void *mgr_vdata, hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRFrelaxVcycle_long_dbl ( void *mgr_vdata, hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRSolve_flt ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRSolve_dbl ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_MGRSolve_long_dbl ( void *mgr_vdata, hypre_ParCSRMatrix *A, + hypre_ParVector *f, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGBuildModExtInterp_flt (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtInterp_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtInterp_long_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtPEInterp_flt (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtPEInterp_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtPEInterp_long_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtPIInterp_flt (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtPIInterp_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModExtPIInterp_long_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr); +HYPRE_Int hypre_BoomerAMGBuildModMultipass_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, hypre_float trunc_factor, + HYPRE_Int P_max_elmts, HYPRE_Int interp_type, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModMultipass_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, hypre_double trunc_factor, + HYPRE_Int P_max_elmts, HYPRE_Int interp_type, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModMultipass_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, hypre_long_double trunc_factor, + HYPRE_Int P_max_elmts, HYPRE_Int interp_type, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModMultipassHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, hypre_float trunc_factor, + HYPRE_Int P_max_elmts, HYPRE_Int interp_type, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModMultipassHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, hypre_double trunc_factor, + HYPRE_Int P_max_elmts, HYPRE_Int interp_type, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildModMultipassHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, hypre_long_double trunc_factor, + HYPRE_Int P_max_elmts, HYPRE_Int interp_type, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_GenerateMultipassPi_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + HYPRE_BigInt *c_pts_starts, HYPRE_Int *pass_order, HYPRE_Int *pass_marker, + HYPRE_Int *pass_marker_offd, HYPRE_Int num_points, HYPRE_Int color, hypre_float *row_sums, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_GenerateMultipassPi_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + HYPRE_BigInt *c_pts_starts, HYPRE_Int *pass_order, HYPRE_Int *pass_marker, + HYPRE_Int *pass_marker_offd, HYPRE_Int num_points, HYPRE_Int color, hypre_double *row_sums, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_GenerateMultipassPi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + HYPRE_BigInt *c_pts_starts, HYPRE_Int *pass_order, HYPRE_Int *pass_marker, + HYPRE_Int *pass_marker_offd, HYPRE_Int num_points, HYPRE_Int color, hypre_long_double *row_sums, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_GenerateMultiPi_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix *P, HYPRE_BigInt *c_pts_starts, HYPRE_Int *pass_order, HYPRE_Int *pass_marker, + HYPRE_Int *pass_marker_offd, HYPRE_Int num_points, HYPRE_Int color, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int *dof_func_offd, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_GenerateMultiPi_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix *P, HYPRE_BigInt *c_pts_starts, HYPRE_Int *pass_order, HYPRE_Int *pass_marker, + HYPRE_Int *pass_marker_offd, HYPRE_Int num_points, HYPRE_Int color, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int *dof_func_offd, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_GenerateMultiPi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix *P, HYPRE_BigInt *c_pts_starts, HYPRE_Int *pass_order, HYPRE_Int *pass_marker, + HYPRE_Int *pass_marker_offd, HYPRE_Int num_points, HYPRE_Int color, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int *dof_func_offd, hypre_ParCSRMatrix **Pi_ptr ); +HYPRE_Int hypre_BoomerAMGBuildMultipass_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int P_max_elmts, HYPRE_Int weight_option, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildMultipass_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int P_max_elmts, HYPRE_Int weight_option, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildMultipass_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int P_max_elmts, HYPRE_Int weight_option, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildMultipassHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_float trunc_factor, HYPRE_Int P_max_elmts, HYPRE_Int weight_option, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildMultipassHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_double trunc_factor, HYPRE_Int P_max_elmts, HYPRE_Int weight_option, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildMultipassHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + HYPRE_Int debug_flag, hypre_long_double trunc_factor, HYPRE_Int P_max_elmts, HYPRE_Int weight_option, + hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGCreateNodalA_flt ( hypre_ParCSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int option, HYPRE_Int diag_option, hypre_ParCSRMatrix **AN_ptr ); +HYPRE_Int hypre_BoomerAMGCreateNodalA_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int option, HYPRE_Int diag_option, hypre_ParCSRMatrix **AN_ptr ); +HYPRE_Int hypre_BoomerAMGCreateNodalA_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int *dof_func, HYPRE_Int option, HYPRE_Int diag_option, hypre_ParCSRMatrix **AN_ptr ); +HYPRE_Int hypre_BoomerAMGCreateScalarCF_flt ( HYPRE_Int *CFN_marker, HYPRE_Int num_functions, + HYPRE_Int num_nodes, hypre_IntArray **dof_func_ptr, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCreateScalarCF_dbl ( HYPRE_Int *CFN_marker, HYPRE_Int num_functions, + HYPRE_Int num_nodes, hypre_IntArray **dof_func_ptr, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCreateScalarCF_long_dbl ( HYPRE_Int *CFN_marker, HYPRE_Int num_functions, + HYPRE_Int num_nodes, hypre_IntArray **dof_func_ptr, hypre_IntArray **CF_marker_ptr ); +HYPRE_Int hypre_BoomerAMGCreateScalarCFS_flt ( hypre_ParCSRMatrix *SN, hypre_ParCSRMatrix *A, + HYPRE_Int *CFN_marker, HYPRE_Int num_functions, HYPRE_Int nodal, HYPRE_Int keep_same_sign, + hypre_IntArray **dof_func_ptr, hypre_IntArray **CF_marker_ptr, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateScalarCFS_dbl ( hypre_ParCSRMatrix *SN, hypre_ParCSRMatrix *A, + HYPRE_Int *CFN_marker, HYPRE_Int num_functions, HYPRE_Int nodal, HYPRE_Int keep_same_sign, + hypre_IntArray **dof_func_ptr, hypre_IntArray **CF_marker_ptr, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateScalarCFS_long_dbl ( hypre_ParCSRMatrix *SN, hypre_ParCSRMatrix *A, + HYPRE_Int *CFN_marker, HYPRE_Int num_functions, HYPRE_Int nodal, HYPRE_Int keep_same_sign, + hypre_IntArray **dof_func_ptr, hypre_IntArray **CF_marker_ptr, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGBuildNonGalerkinCoarseOperator_flt ( hypre_ParCSRMatrix **RAP_ptr, + hypre_ParCSRMatrix *AP, hypre_float strong_threshold, hypre_float max_row_sum, + HYPRE_Int num_functions, HYPRE_Int *dof_func_value, HYPRE_Int * CF_marker, hypre_float droptol, + HYPRE_Int sym_collapse, hypre_float lump_percent, HYPRE_Int collapse_beta ); +HYPRE_Int hypre_BoomerAMGBuildNonGalerkinCoarseOperator_dbl ( hypre_ParCSRMatrix **RAP_ptr, + hypre_ParCSRMatrix *AP, hypre_double strong_threshold, hypre_double max_row_sum, + HYPRE_Int num_functions, HYPRE_Int *dof_func_value, HYPRE_Int * CF_marker, hypre_double droptol, + HYPRE_Int sym_collapse, hypre_double lump_percent, HYPRE_Int collapse_beta ); +HYPRE_Int hypre_BoomerAMGBuildNonGalerkinCoarseOperator_long_dbl ( hypre_ParCSRMatrix **RAP_ptr, + hypre_ParCSRMatrix *AP, hypre_long_double strong_threshold, hypre_long_double max_row_sum, + HYPRE_Int num_functions, HYPRE_Int *dof_func_value, HYPRE_Int * CF_marker, hypre_long_double droptol, + HYPRE_Int sym_collapse, hypre_long_double lump_percent, HYPRE_Int collapse_beta ); +HYPRE_Int hypre_BoomerAMG_MyCreateS_flt ( hypre_ParCSRMatrix *A, hypre_float strength_threshold, + hypre_float max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMG_MyCreateS_dbl ( hypre_ParCSRMatrix *A, hypre_double strength_threshold, + hypre_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMG_MyCreateS_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double strength_threshold, + hypre_long_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_GrabSubArray_flt ( HYPRE_Int *indices, HYPRE_Int start, HYPRE_Int end, + HYPRE_BigInt *array, HYPRE_BigInt *output ); +HYPRE_Int hypre_GrabSubArray_dbl ( HYPRE_Int *indices, HYPRE_Int start, HYPRE_Int end, + HYPRE_BigInt *array, HYPRE_BigInt *output ); +HYPRE_Int hypre_GrabSubArray_long_dbl ( HYPRE_Int *indices, HYPRE_Int start, HYPRE_Int end, + HYPRE_BigInt *array, HYPRE_BigInt *output ); +HYPRE_Int hypre_IntersectTwoArrays_flt ( HYPRE_Int *x, hypre_float *x_data, HYPRE_Int x_length, + HYPRE_Int *y, HYPRE_Int y_length, HYPRE_Int *z, hypre_float *output_x_data, + HYPRE_Int *intersect_length ); +HYPRE_Int hypre_IntersectTwoArrays_dbl ( HYPRE_Int *x, hypre_double *x_data, HYPRE_Int x_length, + HYPRE_Int *y, HYPRE_Int y_length, HYPRE_Int *z, hypre_double *output_x_data, + HYPRE_Int *intersect_length ); +HYPRE_Int hypre_IntersectTwoArrays_long_dbl ( HYPRE_Int *x, hypre_long_double *x_data, HYPRE_Int x_length, + HYPRE_Int *y, HYPRE_Int y_length, HYPRE_Int *z, hypre_long_double *output_x_data, + HYPRE_Int *intersect_length ); +HYPRE_Int hypre_IntersectTwoBigArrays_flt ( HYPRE_BigInt *x, hypre_float *x_data, HYPRE_Int x_length, + HYPRE_BigInt *y, HYPRE_Int y_length, HYPRE_BigInt *z, hypre_float *output_x_data, + HYPRE_Int *intersect_length ); +HYPRE_Int hypre_IntersectTwoBigArrays_dbl ( HYPRE_BigInt *x, hypre_double *x_data, HYPRE_Int x_length, + HYPRE_BigInt *y, HYPRE_Int y_length, HYPRE_BigInt *z, hypre_double *output_x_data, + HYPRE_Int *intersect_length ); +HYPRE_Int hypre_IntersectTwoBigArrays_long_dbl ( HYPRE_BigInt *x, hypre_long_double *x_data, HYPRE_Int x_length, + HYPRE_BigInt *y, HYPRE_Int y_length, HYPRE_BigInt *z, hypre_long_double *output_x_data, + HYPRE_Int *intersect_length ); +HYPRE_Int hypre_NonGalerkinIJBigBufferInit_flt ( HYPRE_Int *ijbuf_cnt, HYPRE_Int *ijbuf_rowcounter, + HYPRE_BigInt *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBigBufferInit_dbl ( HYPRE_Int *ijbuf_cnt, HYPRE_Int *ijbuf_rowcounter, + HYPRE_BigInt *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBigBufferInit_long_dbl ( HYPRE_Int *ijbuf_cnt, HYPRE_Int *ijbuf_rowcounter, + HYPRE_BigInt *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferCompress_flt ( HYPRE_MemoryLocation memory_location, + HYPRE_Int ijbuf_size, HYPRE_Int *ijbuf_cnt, + HYPRE_Int *ijbuf_rowcounter, hypre_float **ijbuf_data, HYPRE_BigInt **ijbuf_cols, + HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferCompress_dbl ( HYPRE_MemoryLocation memory_location, + HYPRE_Int ijbuf_size, HYPRE_Int *ijbuf_cnt, + HYPRE_Int *ijbuf_rowcounter, hypre_double **ijbuf_data, HYPRE_BigInt **ijbuf_cols, + HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferCompress_long_dbl ( HYPRE_MemoryLocation memory_location, + HYPRE_Int ijbuf_size, HYPRE_Int *ijbuf_cnt, + HYPRE_Int *ijbuf_rowcounter, hypre_long_double **ijbuf_data, HYPRE_BigInt **ijbuf_cols, + HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferCompressRow_flt ( HYPRE_Int *ijbuf_cnt, HYPRE_Int ijbuf_rowcounter, + hypre_float *ijbuf_data, HYPRE_BigInt *ijbuf_cols, HYPRE_BigInt *ijbuf_rownums, + HYPRE_Int *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferCompressRow_dbl ( HYPRE_Int *ijbuf_cnt, HYPRE_Int ijbuf_rowcounter, + hypre_double *ijbuf_data, HYPRE_BigInt *ijbuf_cols, HYPRE_BigInt *ijbuf_rownums, + HYPRE_Int *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferCompressRow_long_dbl ( HYPRE_Int *ijbuf_cnt, HYPRE_Int ijbuf_rowcounter, + hypre_long_double *ijbuf_data, HYPRE_BigInt *ijbuf_cols, HYPRE_BigInt *ijbuf_rownums, + HYPRE_Int *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferEmpty_flt ( HYPRE_IJMatrix B, HYPRE_Int ijbuf_size, + HYPRE_Int *ijbuf_cnt, HYPRE_Int ijbuf_rowcounter, hypre_float **ijbuf_data, + HYPRE_BigInt **ijbuf_cols, HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferEmpty_dbl ( HYPRE_IJMatrix B, HYPRE_Int ijbuf_size, + HYPRE_Int *ijbuf_cnt, HYPRE_Int ijbuf_rowcounter, hypre_double **ijbuf_data, + HYPRE_BigInt **ijbuf_cols, HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferEmpty_long_dbl ( HYPRE_IJMatrix B, HYPRE_Int ijbuf_size, + HYPRE_Int *ijbuf_cnt, HYPRE_Int ijbuf_rowcounter, hypre_long_double **ijbuf_data, + HYPRE_BigInt **ijbuf_cols, HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferInit_flt ( HYPRE_Int *ijbuf_cnt, HYPRE_Int *ijbuf_rowcounter, + HYPRE_Int *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferInit_dbl ( HYPRE_Int *ijbuf_cnt, HYPRE_Int *ijbuf_rowcounter, + HYPRE_Int *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferInit_long_dbl ( HYPRE_Int *ijbuf_cnt, HYPRE_Int *ijbuf_rowcounter, + HYPRE_Int *ijbuf_numcols ); +HYPRE_Int hypre_NonGalerkinIJBufferNewRow_flt ( HYPRE_BigInt *ijbuf_rownums, HYPRE_Int *ijbuf_numcols, + HYPRE_Int *ijbuf_rowcounter, HYPRE_BigInt new_row ); +HYPRE_Int hypre_NonGalerkinIJBufferNewRow_dbl ( HYPRE_BigInt *ijbuf_rownums, HYPRE_Int *ijbuf_numcols, + HYPRE_Int *ijbuf_rowcounter, HYPRE_BigInt new_row ); +HYPRE_Int hypre_NonGalerkinIJBufferNewRow_long_dbl ( HYPRE_BigInt *ijbuf_rownums, HYPRE_Int *ijbuf_numcols, + HYPRE_Int *ijbuf_rowcounter, HYPRE_BigInt new_row ); +HYPRE_Int hypre_NonGalerkinIJBufferWrite_flt ( HYPRE_IJMatrix B, HYPRE_Int *ijbuf_cnt, + HYPRE_Int ijbuf_size, HYPRE_Int *ijbuf_rowcounter, hypre_float **ijbuf_data, + HYPRE_BigInt **ijbuf_cols, HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols, + HYPRE_BigInt row_to_write, HYPRE_BigInt col_to_write, hypre_float val_to_write ); +HYPRE_Int hypre_NonGalerkinIJBufferWrite_dbl ( HYPRE_IJMatrix B, HYPRE_Int *ijbuf_cnt, + HYPRE_Int ijbuf_size, HYPRE_Int *ijbuf_rowcounter, hypre_double **ijbuf_data, + HYPRE_BigInt **ijbuf_cols, HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols, + HYPRE_BigInt row_to_write, HYPRE_BigInt col_to_write, hypre_double val_to_write ); +HYPRE_Int hypre_NonGalerkinIJBufferWrite_long_dbl ( HYPRE_IJMatrix B, HYPRE_Int *ijbuf_cnt, + HYPRE_Int ijbuf_size, HYPRE_Int *ijbuf_rowcounter, hypre_long_double **ijbuf_data, + HYPRE_BigInt **ijbuf_cols, HYPRE_BigInt **ijbuf_rownums, HYPRE_Int **ijbuf_numcols, + HYPRE_BigInt row_to_write, HYPRE_BigInt col_to_write, hypre_long_double val_to_write ); +hypre_ParCSRMatrix *hypre_NonGalerkinSparsityPattern_flt (hypre_ParCSRMatrix *R_IAP, + hypre_ParCSRMatrix *RAP, HYPRE_Int * CF_marker, hypre_float droptol, HYPRE_Int sym_collapse, + HYPRE_Int collapse_beta ); +hypre_ParCSRMatrix *hypre_NonGalerkinSparsityPattern_dbl (hypre_ParCSRMatrix *R_IAP, + hypre_ParCSRMatrix *RAP, HYPRE_Int * CF_marker, hypre_double droptol, HYPRE_Int sym_collapse, + HYPRE_Int collapse_beta ); +hypre_ParCSRMatrix *hypre_NonGalerkinSparsityPattern_long_dbl (hypre_ParCSRMatrix *R_IAP, + hypre_ParCSRMatrix *RAP, HYPRE_Int * CF_marker, hypre_long_double droptol, HYPRE_Int sym_collapse, + HYPRE_Int collapse_beta ); +HYPRE_Int hypre_SortedCopyParCSRData_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +HYPRE_Int hypre_SortedCopyParCSRData_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +HYPRE_Int hypre_SortedCopyParCSRData_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +HYPRE_Int hypre_GenerateSendMapAndCommPkg_flt ( MPI_Comm comm, HYPRE_Int num_sends, HYPRE_Int num_recvs, + HYPRE_Int *recv_procs, HYPRE_Int *send_procs, HYPRE_Int *recv_vec_starts, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_GenerateSendMapAndCommPkg_dbl ( MPI_Comm comm, HYPRE_Int num_sends, HYPRE_Int num_recvs, + HYPRE_Int *recv_procs, HYPRE_Int *send_procs, HYPRE_Int *recv_vec_starts, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_GenerateSendMapAndCommPkg_long_dbl ( MPI_Comm comm, HYPRE_Int num_sends, HYPRE_Int num_recvs, + HYPRE_Int *recv_procs, HYPRE_Int *send_procs, HYPRE_Int *recv_vec_starts, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_GetCommPkgRTFromCommPkgA_flt ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + HYPRE_Int *fine_to_coarse, HYPRE_Int *tmp_map_offd ); +HYPRE_Int hypre_GetCommPkgRTFromCommPkgA_dbl ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + HYPRE_Int *fine_to_coarse, HYPRE_Int *tmp_map_offd ); +HYPRE_Int hypre_GetCommPkgRTFromCommPkgA_long_dbl ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + HYPRE_Int *fine_to_coarse, HYPRE_Int *tmp_map_offd ); +HYPRE_Int hypre_BoomerAMGBuildCoarseOperator_flt ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, hypre_ParCSRMatrix **RAP_ptr ); +HYPRE_Int hypre_BoomerAMGBuildCoarseOperator_dbl ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, hypre_ParCSRMatrix **RAP_ptr ); +HYPRE_Int hypre_BoomerAMGBuildCoarseOperator_long_dbl ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, hypre_ParCSRMatrix **RAP_ptr ); +HYPRE_Int hypre_BoomerAMGBuildCoarseOperatorKT_flt ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keepTranspose, hypre_ParCSRMatrix **RAP_ptr ); +HYPRE_Int hypre_BoomerAMGBuildCoarseOperatorKT_dbl ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keepTranspose, hypre_ParCSRMatrix **RAP_ptr ); +HYPRE_Int hypre_BoomerAMGBuildCoarseOperatorKT_long_dbl ( hypre_ParCSRMatrix *RT, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keepTranspose, hypre_ParCSRMatrix **RAP_ptr ); +HYPRE_Int hypre_BoomerAMGRelax_FCFJacobi_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, hypre_float relax_weight, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax_FCFJacobi_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, hypre_double relax_weight, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax_FCFJacobi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, hypre_long_double relax_weight, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelaxIF_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_order, HYPRE_Int cycle_type, hypre_float relax_weight, + hypre_float omega, hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, + hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelaxIF_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_order, HYPRE_Int cycle_type, hypre_double relax_weight, + hypre_double omega, hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, + hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelaxIF_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_order, HYPRE_Int cycle_type, hypre_long_double relax_weight, + hypre_long_double omega, hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, + hypre_ParVector *Ztemp ); +HYPRE_Int hypre_ParCSRRelax_L1_Jacobi_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_ParCSRRelax_L1_Jacobi_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_ParCSRRelax_L1_Jacobi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +hypre_float hypre_LINPACKcgpthy_flt ( hypre_float *a, hypre_float *b ); +hypre_double hypre_LINPACKcgpthy_dbl ( hypre_double *a, hypre_double *b ); +hypre_long_double hypre_LINPACKcgpthy_long_dbl ( hypre_long_double *a, hypre_long_double *b ); +HYPRE_Int hypre_LINPACKcgtql1_flt ( HYPRE_Int *n, hypre_float *d, hypre_float *e, HYPRE_Int *ierr ); +HYPRE_Int hypre_LINPACKcgtql1_dbl ( HYPRE_Int *n, hypre_double *d, hypre_double *e, HYPRE_Int *ierr ); +HYPRE_Int hypre_LINPACKcgtql1_long_dbl ( HYPRE_Int *n, hypre_long_double *d, hypre_long_double *e, HYPRE_Int *ierr ); +HYPRE_Int hypre_ParCSRMaxEigEstimate_flt ( hypre_ParCSRMatrix *A, HYPRE_Int scale, hypre_float *max_eig, + hypre_float *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimate_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, hypre_double *max_eig, + hypre_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimate_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, hypre_long_double *max_eig, + hypre_long_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateCG_flt ( hypre_ParCSRMatrix *A, HYPRE_Int scale, HYPRE_Int max_iter, + hypre_float *max_eig, hypre_float *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateCG_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, HYPRE_Int max_iter, + hypre_double *max_eig, hypre_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateCG_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, HYPRE_Int max_iter, + hypre_long_double *max_eig, hypre_long_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateCGHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int scale, + HYPRE_Int max_iter, hypre_float *max_eig, hypre_float *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateCGHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, + HYPRE_Int max_iter, hypre_double *max_eig, hypre_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateCGHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, + HYPRE_Int max_iter, hypre_long_double *max_eig, hypre_long_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int scale, + hypre_float *max_eig, hypre_float *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, + hypre_double *max_eig, hypre_double *min_eig ); +HYPRE_Int hypre_ParCSRMaxEigEstimateHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int scale, + hypre_long_double *max_eig, hypre_long_double *min_eig ); +HYPRE_Int hypre_ParCSRRelax_CG_flt ( HYPRE_Solver solver, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int num_its ); +HYPRE_Int hypre_ParCSRRelax_CG_dbl ( HYPRE_Solver solver, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int num_its ); +HYPRE_Int hypre_ParCSRRelax_CG_long_dbl ( HYPRE_Solver solver, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int num_its ); +HYPRE_Int hypre_ParCSRRelax_Cheby_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_float max_eig, + hypre_float min_eig, hypre_float fraction, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r ); +HYPRE_Int hypre_ParCSRRelax_Cheby_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_double max_eig, + hypre_double min_eig, hypre_double fraction, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r ); +HYPRE_Int hypre_ParCSRRelax_Cheby_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_long_double max_eig, + hypre_long_double min_eig, hypre_long_double fraction, HYPRE_Int order, HYPRE_Int scale, HYPRE_Int variant, + hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *r ); +HYPRE_Int hypre_BoomerAMGRelax_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, HYPRE_Int *cf_marker, + HYPRE_Int relax_type, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax0WeightedJacobi_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_ParVector *u, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax0WeightedJacobi_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_ParVector *u, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax0WeightedJacobi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_ParVector *u, + hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax10TopoOrderedGaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax10TopoOrderedGaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax10TopoOrderedGaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax11TwoStageGaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, + hypre_float relax_weight, hypre_float omega, + hypre_float *A_diag_diag, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax11TwoStageGaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, + hypre_double relax_weight, hypre_double omega, + hypre_double *A_diag_diag, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax11TwoStageGaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, + hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *A_diag_diag, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax12TwoStageGaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, + hypre_float relax_weight, hypre_float omega, + hypre_float *A_diag_diag, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax12TwoStageGaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, + hypre_double relax_weight, hypre_double omega, + hypre_double *A_diag_diag, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax12TwoStageGaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, + hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *A_diag_diag, hypre_ParVector *u, + hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax13HybridL1GaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax13HybridL1GaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax13HybridL1GaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax14HybridL1GaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax14HybridL1GaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax14HybridL1GaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax18WeightedL1Jacobi_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax18WeightedL1Jacobi_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax18WeightedL1Jacobi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax19GaussElim_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax19GaussElim_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax19GaussElim_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax1GaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax1GaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax1GaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax2GaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax2GaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax2GaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax3HybridGaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax3HybridGaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax3HybridGaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax4HybridGaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax4HybridGaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax4HybridGaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax5ChaoticHybridGaussSeidel_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax5ChaoticHybridGaussSeidel_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax5ChaoticHybridGaussSeidel_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax6HybridSSOR_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax6HybridSSOR_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax6HybridSSOR_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax7Jacobi_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax7Jacobi_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax7Jacobi_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double *l1_norms, + hypre_ParVector *u, hypre_ParVector *Vtemp ); +HYPRE_Int hypre_BoomerAMGRelax8HybridL1SSOR_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax8HybridL1SSOR_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax8HybridL1SSOR_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp ); +HYPRE_Int hypre_BoomerAMGRelax98GaussElimPivot_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax98GaussElimPivot_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelax98GaussElimPivot_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelaxComputeL1Norms_flt ( hypre_ParCSRMatrix *A, HYPRE_Int relax_type, + HYPRE_Int relax_order, HYPRE_Int coarsest_lvl, + hypre_IntArray *CF_marker, + hypre_float **l1_norms_data_ptr ); +HYPRE_Int hypre_BoomerAMGRelaxComputeL1Norms_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int relax_type, + HYPRE_Int relax_order, HYPRE_Int coarsest_lvl, + hypre_IntArray *CF_marker, + hypre_double **l1_norms_data_ptr ); +HYPRE_Int hypre_BoomerAMGRelaxComputeL1Norms_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int relax_type, + HYPRE_Int relax_order, HYPRE_Int coarsest_lvl, + hypre_IntArray *CF_marker, + hypre_long_double **l1_norms_data_ptr ); +HYPRE_Int hypre_BoomerAMGRelaxHybridGaussSeidel_core_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp, + HYPRE_Int GS_order, HYPRE_Int Symm, HYPRE_Int Skip_diag, HYPRE_Int forced_seq, + HYPRE_Int Topo_order ); +HYPRE_Int hypre_BoomerAMGRelaxHybridGaussSeidel_core_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp, + HYPRE_Int GS_order, HYPRE_Int Symm, HYPRE_Int Skip_diag, HYPRE_Int forced_seq, + HYPRE_Int Topo_order ); +HYPRE_Int hypre_BoomerAMGRelaxHybridGaussSeidel_core_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp, + HYPRE_Int GS_order, HYPRE_Int Symm, HYPRE_Int Skip_diag, HYPRE_Int forced_seq, + HYPRE_Int Topo_order ); +HYPRE_Int hypre_BoomerAMGRelaxHybridSOR_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_float relax_weight, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp, + HYPRE_Int direction, HYPRE_Int symm, HYPRE_Int skip_diag, HYPRE_Int force_seq ); +HYPRE_Int hypre_BoomerAMGRelaxHybridSOR_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_double relax_weight, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp, + HYPRE_Int direction, HYPRE_Int symm, HYPRE_Int skip_diag, HYPRE_Int force_seq ); +HYPRE_Int hypre_BoomerAMGRelaxHybridSOR_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, + HYPRE_Int *cf_marker, HYPRE_Int relax_points, hypre_long_double relax_weight, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp, hypre_ParVector *Ztemp, + HYPRE_Int direction, HYPRE_Int symm, HYPRE_Int skip_diag, HYPRE_Int force_seq ); +HYPRE_Int hypre_BoomerAMGRelaxKaczmarz_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_float omega, + hypre_float *l1_norms, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelaxKaczmarz_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_double omega, + hypre_double *l1_norms, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGRelaxKaczmarz_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_long_double omega, + hypre_long_double *l1_norms, hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGBuildRestrAIR_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_float filter_thresholdR, HYPRE_Int debug_flag, hypre_ParCSRMatrix **R_ptr, + HYPRE_Int is_triangular, HYPRE_Int gmres_switch); +HYPRE_Int hypre_BoomerAMGBuildRestrAIR_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_double filter_thresholdR, HYPRE_Int debug_flag, hypre_ParCSRMatrix **R_ptr, + HYPRE_Int is_triangular, HYPRE_Int gmres_switch); +HYPRE_Int hypre_BoomerAMGBuildRestrAIR_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_long_double filter_thresholdR, HYPRE_Int debug_flag, hypre_ParCSRMatrix **R_ptr, + HYPRE_Int is_triangular, HYPRE_Int gmres_switch); +HYPRE_ParCSRMatrix GenerateRotate7pt_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_Int P, + HYPRE_Int Q, HYPRE_Int p, HYPRE_Int q, hypre_float alpha, hypre_float eps ); +HYPRE_ParCSRMatrix GenerateRotate7pt_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_Int P, + HYPRE_Int Q, HYPRE_Int p, HYPRE_Int q, hypre_double alpha, hypre_double eps ); +HYPRE_ParCSRMatrix GenerateRotate7pt_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, HYPRE_Int P, + HYPRE_Int Q, HYPRE_Int p, HYPRE_Int q, hypre_long_double alpha, hypre_long_double eps ); +HYPRE_Int hypre_ParCSRMatrixScaledNorm_flt ( hypre_ParCSRMatrix *A, hypre_float *scnorm ); +HYPRE_Int hypre_ParCSRMatrixScaledNorm_dbl ( hypre_ParCSRMatrix *A, hypre_double *scnorm ); +HYPRE_Int hypre_ParCSRMatrixScaledNorm_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double *scnorm ); +HYPRE_Int hypre_SchwarzCFSolve_flt ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt ); +HYPRE_Int hypre_SchwarzCFSolve_dbl ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt ); +HYPRE_Int hypre_SchwarzCFSolve_long_dbl ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt ); +void *hypre_SchwarzCreate_flt ( void ); +void *hypre_SchwarzCreate_dbl ( void ); +void *hypre_SchwarzCreate_long_dbl ( void ); +HYPRE_Int hypre_SchwarzDestroy_flt ( void *data ); +HYPRE_Int hypre_SchwarzDestroy_dbl ( void *data ); +HYPRE_Int hypre_SchwarzDestroy_long_dbl ( void *data ); +HYPRE_Int hypre_SchwarzReScale_flt ( void *data, HYPRE_Int size, hypre_float value ); +HYPRE_Int hypre_SchwarzReScale_dbl ( void *data, HYPRE_Int size, hypre_double value ); +HYPRE_Int hypre_SchwarzReScale_long_dbl ( void *data, HYPRE_Int size, hypre_long_double value ); +HYPRE_Int hypre_SchwarzSetDofFunc_flt ( void *data, HYPRE_Int *dof_func ); +HYPRE_Int hypre_SchwarzSetDofFunc_dbl ( void *data, HYPRE_Int *dof_func ); +HYPRE_Int hypre_SchwarzSetDofFunc_long_dbl ( void *data, HYPRE_Int *dof_func ); +HYPRE_Int hypre_SchwarzSetDomainStructure_flt ( void *data, hypre_CSRMatrix *domain_structure ); +HYPRE_Int hypre_SchwarzSetDomainStructure_dbl ( void *data, hypre_CSRMatrix *domain_structure ); +HYPRE_Int hypre_SchwarzSetDomainStructure_long_dbl ( void *data, hypre_CSRMatrix *domain_structure ); +HYPRE_Int hypre_SchwarzSetDomainType_flt ( void *data, HYPRE_Int domain_type ); +HYPRE_Int hypre_SchwarzSetDomainType_dbl ( void *data, HYPRE_Int domain_type ); +HYPRE_Int hypre_SchwarzSetDomainType_long_dbl ( void *data, HYPRE_Int domain_type ); +HYPRE_Int hypre_SchwarzSetNonSymm_flt ( void *data, HYPRE_Int value ); +HYPRE_Int hypre_SchwarzSetNonSymm_dbl ( void *data, HYPRE_Int value ); +HYPRE_Int hypre_SchwarzSetNonSymm_long_dbl ( void *data, HYPRE_Int value ); +HYPRE_Int hypre_SchwarzSetNumFunctions_flt ( void *data, HYPRE_Int num_functions ); +HYPRE_Int hypre_SchwarzSetNumFunctions_dbl ( void *data, HYPRE_Int num_functions ); +HYPRE_Int hypre_SchwarzSetNumFunctions_long_dbl ( void *data, HYPRE_Int num_functions ); +HYPRE_Int hypre_SchwarzSetOverlap_flt ( void *data, HYPRE_Int overlap ); +HYPRE_Int hypre_SchwarzSetOverlap_dbl ( void *data, HYPRE_Int overlap ); +HYPRE_Int hypre_SchwarzSetOverlap_long_dbl ( void *data, HYPRE_Int overlap ); +HYPRE_Int hypre_SchwarzSetRelaxWeight_flt ( void *data, hypre_float relax_weight ); +HYPRE_Int hypre_SchwarzSetRelaxWeight_dbl ( void *data, hypre_double relax_weight ); +HYPRE_Int hypre_SchwarzSetRelaxWeight_long_dbl ( void *data, hypre_long_double relax_weight ); +HYPRE_Int hypre_SchwarzSetScale_flt ( void *data, hypre_float *scale ); +HYPRE_Int hypre_SchwarzSetScale_dbl ( void *data, hypre_double *scale ); +HYPRE_Int hypre_SchwarzSetScale_long_dbl ( void *data, hypre_long_double *scale ); +HYPRE_Int hypre_SchwarzSetup_flt ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_SchwarzSetup_dbl ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_SchwarzSetup_long_dbl ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_SchwarzSetVariant_flt ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_SchwarzSetVariant_dbl ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_SchwarzSetVariant_long_dbl ( void *data, HYPRE_Int variant ); +HYPRE_Int hypre_SchwarzSolve_flt ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_SchwarzSolve_dbl ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_SchwarzSolve_long_dbl ( void *schwarz_vdata, hypre_ParCSRMatrix *A, hypre_ParVector *f, + hypre_ParVector *u ); +HYPRE_Int hypre_BoomerAMGSetupStats_flt ( void *amg_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_BoomerAMGSetupStats_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_BoomerAMGSetupStats_long_dbl ( void *amg_vdata, hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_BoomerAMGWriteSolverParams_flt ( void *data ); +HYPRE_Int hypre_BoomerAMGWriteSolverParams_dbl ( void *data ); +HYPRE_Int hypre_BoomerAMGWriteSolverParams_long_dbl ( void *data ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker_flt ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker_long_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker2_flt ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker2_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker2_long_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker2Host_flt ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker2Host_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarker2Host_long_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarkerHost_flt ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarkerHost_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCorrectCFMarkerHost_long_dbl ( hypre_IntArray *CF_marker, + hypre_IntArray *new_CF_marker ); +HYPRE_Int hypre_BoomerAMGCreate2ndS_flt ( hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, + HYPRE_Int num_paths, HYPRE_BigInt *coarse_row_starts, hypre_ParCSRMatrix **C_ptr ); +HYPRE_Int hypre_BoomerAMGCreate2ndS_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, + HYPRE_Int num_paths, HYPRE_BigInt *coarse_row_starts, hypre_ParCSRMatrix **C_ptr ); +HYPRE_Int hypre_BoomerAMGCreate2ndS_long_dbl ( hypre_ParCSRMatrix *S, HYPRE_Int *CF_marker, + HYPRE_Int num_paths, HYPRE_BigInt *coarse_row_starts, hypre_ParCSRMatrix **C_ptr ); +HYPRE_Int hypre_BoomerAMGCreateS_flt ( hypre_ParCSRMatrix *A, hypre_float strength_threshold, + hypre_float max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateS_dbl ( hypre_ParCSRMatrix *A, hypre_double strength_threshold, + hypre_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateS_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double strength_threshold, + hypre_long_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSabs_flt ( hypre_ParCSRMatrix *A, hypre_float strength_threshold, + hypre_float max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSabs_dbl ( hypre_ParCSRMatrix *A, hypre_double strength_threshold, + hypre_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSabs_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double strength_threshold, + hypre_long_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSabsHost_flt ( hypre_ParCSRMatrix *A, hypre_float strength_threshold, + hypre_float max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSabsHost_dbl ( hypre_ParCSRMatrix *A, hypre_double strength_threshold, + hypre_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSabsHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double strength_threshold, + hypre_long_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSCommPkg_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + HYPRE_Int **col_offd_S_to_A_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSCommPkg_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + HYPRE_Int **col_offd_S_to_A_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSCommPkg_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *S, + HYPRE_Int **col_offd_S_to_A_ptr ); +HYPRE_Int hypre_BoomerAMGCreateSFromCFMarker_flt (hypre_ParCSRMatrix *A, + hypre_float strength_threshold, hypre_float max_row_sum, HYPRE_Int *CF_marker, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int SMRK, hypre_ParCSRMatrix **S_ptr); +HYPRE_Int hypre_BoomerAMGCreateSFromCFMarker_dbl (hypre_ParCSRMatrix *A, + hypre_double strength_threshold, hypre_double max_row_sum, HYPRE_Int *CF_marker, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int SMRK, hypre_ParCSRMatrix **S_ptr); +HYPRE_Int hypre_BoomerAMGCreateSFromCFMarker_long_dbl (hypre_ParCSRMatrix *A, + hypre_long_double strength_threshold, hypre_long_double max_row_sum, HYPRE_Int *CF_marker, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int SMRK, hypre_ParCSRMatrix **S_ptr); +HYPRE_Int hypre_BoomerAMGCreateSHost_flt (hypre_ParCSRMatrix *A, hypre_float strength_threshold, + hypre_float max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr); +HYPRE_Int hypre_BoomerAMGCreateSHost_dbl (hypre_ParCSRMatrix *A, hypre_double strength_threshold, + hypre_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr); +HYPRE_Int hypre_BoomerAMGCreateSHost_long_dbl (hypre_ParCSRMatrix *A, hypre_long_double strength_threshold, + hypre_long_double max_row_sum, HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_ParCSRMatrix **S_ptr); +HYPRE_Int hypre_BoomerAMG_LNExpandInterp_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + HYPRE_BigInt *num_cpts_global, HYPRE_Int *nf, HYPRE_Int *dof_func, hypre_IntArray **coarse_dof_func, + HYPRE_Int *CF_marker, HYPRE_Int level, hypre_float *weights, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, hypre_float abs_trunc, HYPRE_Int q_max, + HYPRE_Int interp_vec_first_level ); +HYPRE_Int hypre_BoomerAMG_LNExpandInterp_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + HYPRE_BigInt *num_cpts_global, HYPRE_Int *nf, HYPRE_Int *dof_func, hypre_IntArray **coarse_dof_func, + HYPRE_Int *CF_marker, HYPRE_Int level, hypre_double *weights, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, hypre_double abs_trunc, HYPRE_Int q_max, + HYPRE_Int interp_vec_first_level ); +HYPRE_Int hypre_BoomerAMG_LNExpandInterp_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + HYPRE_BigInt *num_cpts_global, HYPRE_Int *nf, HYPRE_Int *dof_func, hypre_IntArray **coarse_dof_func, + HYPRE_Int *CF_marker, HYPRE_Int level, hypre_long_double *weights, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, hypre_long_double abs_trunc, HYPRE_Int q_max, + HYPRE_Int interp_vec_first_level ); +HYPRE_Int hypre_BoomerAMGCoarsenInterpVectors_flt ( hypre_ParCSRMatrix *P, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, HYPRE_Int *CF_marker, hypre_ParVector ***new_smooth_vecs, + HYPRE_Int expand_level, HYPRE_Int num_functions ); +HYPRE_Int hypre_BoomerAMGCoarsenInterpVectors_dbl ( hypre_ParCSRMatrix *P, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, HYPRE_Int *CF_marker, hypre_ParVector ***new_smooth_vecs, + HYPRE_Int expand_level, HYPRE_Int num_functions ); +HYPRE_Int hypre_BoomerAMGCoarsenInterpVectors_long_dbl ( hypre_ParCSRMatrix *P, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, HYPRE_Int *CF_marker, hypre_ParVector ***new_smooth_vecs, + HYPRE_Int expand_level, HYPRE_Int num_functions ); +HYPRE_Int hypre_BoomerAMG_GMExpandInterp_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + HYPRE_Int num_smooth_vecs, hypre_ParVector **smooth_vecs, HYPRE_Int *nf, HYPRE_Int *dof_func, + hypre_IntArray **coarse_dof_func, HYPRE_Int variant, HYPRE_Int level, hypre_float abs_trunc, + hypre_float *weights, HYPRE_Int q_max, HYPRE_Int *CF_marker, HYPRE_Int interp_vec_first_level ); +HYPRE_Int hypre_BoomerAMG_GMExpandInterp_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + HYPRE_Int num_smooth_vecs, hypre_ParVector **smooth_vecs, HYPRE_Int *nf, HYPRE_Int *dof_func, + hypre_IntArray **coarse_dof_func, HYPRE_Int variant, HYPRE_Int level, hypre_double abs_trunc, + hypre_double *weights, HYPRE_Int q_max, HYPRE_Int *CF_marker, HYPRE_Int interp_vec_first_level ); +HYPRE_Int hypre_BoomerAMG_GMExpandInterp_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **P, + HYPRE_Int num_smooth_vecs, hypre_ParVector **smooth_vecs, HYPRE_Int *nf, HYPRE_Int *dof_func, + hypre_IntArray **coarse_dof_func, HYPRE_Int variant, HYPRE_Int level, hypre_long_double abs_trunc, + hypre_long_double *weights, HYPRE_Int q_max, HYPRE_Int *CF_marker, HYPRE_Int interp_vec_first_level ); +HYPRE_Int hypre_BoomerAMGRefineInterp_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + HYPRE_BigInt *num_cpts_global, HYPRE_Int *nf, HYPRE_Int *dof_func, HYPRE_Int *CF_marker, + HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGRefineInterp_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + HYPRE_BigInt *num_cpts_global, HYPRE_Int *nf, HYPRE_Int *dof_func, HYPRE_Int *CF_marker, + HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGRefineInterp_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + HYPRE_BigInt *num_cpts_global, HYPRE_Int *nf, HYPRE_Int *dof_func, HYPRE_Int *CF_marker, + HYPRE_Int level ); +HYPRE_Int hypre_BoomerAMGSmoothInterpVectors_flt ( hypre_ParCSRMatrix *A, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, HYPRE_Int smooth_steps ); +HYPRE_Int hypre_BoomerAMGSmoothInterpVectors_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, HYPRE_Int smooth_steps ); +HYPRE_Int hypre_BoomerAMGSmoothInterpVectors_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int num_smooth_vecs, + hypre_ParVector **smooth_vecs, HYPRE_Int smooth_steps ); +HYPRE_Int hypre_BoomerAMGBuildPartialExtInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialExtInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialExtInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialExtPIInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialExtPIInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialExtPIInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialStdInterp_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_float trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int sep_weight, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialStdInterp_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_double trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int sep_weight, hypre_ParCSRMatrix **P_ptr ); +HYPRE_Int hypre_BoomerAMGBuildPartialStdInterp_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + hypre_ParCSRMatrix *S, HYPRE_BigInt *num_cpts_global, HYPRE_BigInt *num_old_cpts_global, + HYPRE_Int num_functions, HYPRE_Int *dof_func, HYPRE_Int debug_flag, hypre_long_double trunc_factor, + HYPRE_Int max_elmts, HYPRE_Int sep_weight, hypre_ParCSRMatrix **P_ptr ); +hypre_float afun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double afun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double afun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float bfun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double bfun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double bfun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float bndfun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double bndfun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double bndfun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float cfun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double cfun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double cfun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float dfun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double dfun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double dfun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float efun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double efun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double efun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float ffun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double ffun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double ffun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +HYPRE_ParCSRMatrix GenerateVarDifConv_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_float eps, HYPRE_ParVector *rhs_ptr ); +HYPRE_ParCSRMatrix GenerateVarDifConv_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_double eps, HYPRE_ParVector *rhs_ptr ); +HYPRE_ParCSRMatrix GenerateVarDifConv_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_long_double eps, HYPRE_ParVector *rhs_ptr ); +hypre_float gfun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double gfun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double gfun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float rfun_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double rfun_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double rfun_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float afun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double afun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double afun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float bfun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double bfun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double bfun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float bndfun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double bndfun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double bndfun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float cfun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double cfun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double cfun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float dfun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double dfun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double dfun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float efun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double efun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double efun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float ffun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double ffun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double ffun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +HYPRE_ParCSRMatrix GenerateRSVarDifConv_flt ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_float eps, HYPRE_ParVector *rhs_ptr, HYPRE_Int type ); +HYPRE_ParCSRMatrix GenerateRSVarDifConv_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_double eps, HYPRE_ParVector *rhs_ptr, HYPRE_Int type ); +HYPRE_ParCSRMatrix GenerateRSVarDifConv_long_dbl ( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, + HYPRE_BigInt nz, HYPRE_Int P, HYPRE_Int Q, HYPRE_Int R, HYPRE_Int p, HYPRE_Int q, HYPRE_Int r, + hypre_long_double eps, HYPRE_ParVector *rhs_ptr, HYPRE_Int type ); +hypre_float gfun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double gfun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double gfun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +hypre_float rfun_rs_flt ( hypre_float xx, hypre_float yy, hypre_float zz ); +hypre_double rfun_rs_dbl ( hypre_double xx, hypre_double yy, hypre_double zz ); +hypre_long_double rfun_rs_long_dbl ( hypre_long_double xx, hypre_long_double yy, hypre_long_double zz ); +HYPRE_Int hypre_AdSchwarzCFSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_rhs, + hypre_CSRMatrix *domain_structure, hypre_float *scale, hypre_ParVector *par_x, + hypre_ParVector *par_aux, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AdSchwarzCFSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_rhs, + hypre_CSRMatrix *domain_structure, hypre_double *scale, hypre_ParVector *par_x, + hypre_ParVector *par_aux, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AdSchwarzCFSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_rhs, + hypre_CSRMatrix *domain_structure, hypre_long_double *scale, hypre_ParVector *par_x, + hypre_ParVector *par_aux, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AdSchwarzSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_rhs, + hypre_CSRMatrix *domain_structure, hypre_float *scale, hypre_ParVector *par_x, + hypre_ParVector *par_aux, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AdSchwarzSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_rhs, + hypre_CSRMatrix *domain_structure, hypre_double *scale, hypre_ParVector *par_x, + hypre_ParVector *par_aux, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AdSchwarzSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_rhs, + hypre_CSRMatrix *domain_structure, hypre_long_double *scale, hypre_ParVector *par_x, + hypre_ParVector *par_aux, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AMGCreateDomainDof_flt ( hypre_CSRMatrix *A, HYPRE_Int domain_type, HYPRE_Int overlap, + HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_CSRMatrix **domain_structure_pointer, + HYPRE_Int **piv_pointer, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AMGCreateDomainDof_dbl ( hypre_CSRMatrix *A, HYPRE_Int domain_type, HYPRE_Int overlap, + HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_CSRMatrix **domain_structure_pointer, + HYPRE_Int **piv_pointer, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AMGCreateDomainDof_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int domain_type, HYPRE_Int overlap, + HYPRE_Int num_functions, HYPRE_Int *dof_func, hypre_CSRMatrix **domain_structure_pointer, + HYPRE_Int **piv_pointer, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_AMGeAgglomerate_flt ( HYPRE_Int *i_AE_element, HYPRE_Int *j_AE_element, + HYPRE_Int *i_face_face, HYPRE_Int *j_face_face, HYPRE_Int *w_face_face, HYPRE_Int *i_face_element, + HYPRE_Int *j_face_element, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int *i_face_to_prefer_weight, HYPRE_Int *i_face_weight, HYPRE_Int num_faces, + HYPRE_Int num_elements, HYPRE_Int *num_AEs_pointer ); +HYPRE_Int hypre_AMGeAgglomerate_dbl ( HYPRE_Int *i_AE_element, HYPRE_Int *j_AE_element, + HYPRE_Int *i_face_face, HYPRE_Int *j_face_face, HYPRE_Int *w_face_face, HYPRE_Int *i_face_element, + HYPRE_Int *j_face_element, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int *i_face_to_prefer_weight, HYPRE_Int *i_face_weight, HYPRE_Int num_faces, + HYPRE_Int num_elements, HYPRE_Int *num_AEs_pointer ); +HYPRE_Int hypre_AMGeAgglomerate_long_dbl ( HYPRE_Int *i_AE_element, HYPRE_Int *j_AE_element, + HYPRE_Int *i_face_face, HYPRE_Int *j_face_face, HYPRE_Int *w_face_face, HYPRE_Int *i_face_element, + HYPRE_Int *j_face_element, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int *i_face_to_prefer_weight, HYPRE_Int *i_face_weight, HYPRE_Int num_faces, + HYPRE_Int num_elements, HYPRE_Int *num_AEs_pointer ); +HYPRE_Int hypre_AMGNodalSchwarzSmoother_flt ( hypre_CSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int option, hypre_CSRMatrix **domain_structure_pointer ); +HYPRE_Int hypre_AMGNodalSchwarzSmoother_dbl ( hypre_CSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int option, hypre_CSRMatrix **domain_structure_pointer ); +HYPRE_Int hypre_AMGNodalSchwarzSmoother_long_dbl ( hypre_CSRMatrix *A, HYPRE_Int num_functions, + HYPRE_Int option, hypre_CSRMatrix **domain_structure_pointer ); +HYPRE_Int hypre_GenerateScale_flt ( hypre_CSRMatrix *domain_structure, HYPRE_Int num_variables, + hypre_float relaxation_weight, hypre_float **scale_pointer ); +HYPRE_Int hypre_GenerateScale_dbl ( hypre_CSRMatrix *domain_structure, HYPRE_Int num_variables, + hypre_double relaxation_weight, hypre_double **scale_pointer ); +HYPRE_Int hypre_GenerateScale_long_dbl ( hypre_CSRMatrix *domain_structure, HYPRE_Int num_variables, + hypre_long_double relaxation_weight, hypre_long_double **scale_pointer ); +HYPRE_Int hypre_matinv_flt ( hypre_float *x, hypre_float *a, HYPRE_Int k ); +HYPRE_Int hypre_matinv_dbl ( hypre_double *x, hypre_double *a, HYPRE_Int k ); +HYPRE_Int hypre_matinv_long_dbl ( hypre_long_double *x, hypre_long_double *a, HYPRE_Int k ); +HYPRE_Int hypre_move_entry_flt ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_move_entry_dbl ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_move_entry_long_dbl ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_MPSchwarzCFFWSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_float relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzCFFWSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzCFFWSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_long_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzCFSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_float relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzCFSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzCFSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_long_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *CF_marker, HYPRE_Int rlx_pt, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzFWSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_float relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzFWSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzFWSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_long_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_float relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_MPSchwarzSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_Vector *rhs_vector, + hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, hypre_long_double relax_wt, + hypre_Vector *aux_vector, HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParAdSchwarzSolve_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *F, + hypre_CSRMatrix *domain_structure, hypre_float *scale, hypre_ParVector *X, hypre_ParVector *Vtemp, + HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParAdSchwarzSolve_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *F, + hypre_CSRMatrix *domain_structure, hypre_double *scale, hypre_ParVector *X, hypre_ParVector *Vtemp, + HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParAdSchwarzSolve_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *F, + hypre_CSRMatrix *domain_structure, hypre_long_double *scale, hypre_ParVector *X, hypre_ParVector *Vtemp, + HYPRE_Int *pivots, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParAMGCreateDomainDof_flt ( hypre_ParCSRMatrix *A, HYPRE_Int domain_type, + HYPRE_Int overlap, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_CSRMatrix **domain_structure_pointer, HYPRE_Int **piv_pointer, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParAMGCreateDomainDof_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int domain_type, + HYPRE_Int overlap, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_CSRMatrix **domain_structure_pointer, HYPRE_Int **piv_pointer, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParAMGCreateDomainDof_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int domain_type, + HYPRE_Int overlap, HYPRE_Int num_functions, HYPRE_Int *dof_func, + hypre_CSRMatrix **domain_structure_pointer, HYPRE_Int **piv_pointer, HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_parCorrRes_flt ( hypre_ParCSRMatrix *A, hypre_ParVector *x, hypre_Vector *rhs, + hypre_Vector **tmp_ptr ); +HYPRE_Int hypre_parCorrRes_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *x, hypre_Vector *rhs, + hypre_Vector **tmp_ptr ); +HYPRE_Int hypre_parCorrRes_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParVector *x, hypre_Vector *rhs, + hypre_Vector **tmp_ptr ); +HYPRE_Int hypre_ParGenerateHybridScale_flt ( hypre_ParCSRMatrix *A, hypre_CSRMatrix *domain_structure, + hypre_CSRMatrix **A_boundary_pointer, hypre_float **scale_pointer ); +HYPRE_Int hypre_ParGenerateHybridScale_dbl ( hypre_ParCSRMatrix *A, hypre_CSRMatrix *domain_structure, + hypre_CSRMatrix **A_boundary_pointer, hypre_double **scale_pointer ); +HYPRE_Int hypre_ParGenerateHybridScale_long_dbl ( hypre_ParCSRMatrix *A, hypre_CSRMatrix *domain_structure, + hypre_CSRMatrix **A_boundary_pointer, hypre_long_double **scale_pointer ); +HYPRE_Int hypre_ParGenerateScale_flt ( hypre_ParCSRMatrix *A, hypre_CSRMatrix *domain_structure, + hypre_float relaxation_weight, hypre_float **scale_pointer ); +HYPRE_Int hypre_ParGenerateScale_dbl ( hypre_ParCSRMatrix *A, hypre_CSRMatrix *domain_structure, + hypre_double relaxation_weight, hypre_double **scale_pointer ); +HYPRE_Int hypre_ParGenerateScale_long_dbl ( hypre_ParCSRMatrix *A, hypre_CSRMatrix *domain_structure, + hypre_long_double relaxation_weight, hypre_long_double **scale_pointer ); +HYPRE_Int hypre_ParMPSchwarzSolve_flt ( hypre_ParCSRMatrix *par_A, hypre_CSRMatrix *A_boundary, + hypre_ParVector *rhs_vector, hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, + hypre_float relax_wt, hypre_float *scale, hypre_ParVector *Vtemp, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParMPSchwarzSolve_dbl ( hypre_ParCSRMatrix *par_A, hypre_CSRMatrix *A_boundary, + hypre_ParVector *rhs_vector, hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, + hypre_double relax_wt, hypre_double *scale, hypre_ParVector *Vtemp, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_ParMPSchwarzSolve_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_CSRMatrix *A_boundary, + hypre_ParVector *rhs_vector, hypre_CSRMatrix *domain_structure, hypre_ParVector *par_x, + hypre_long_double relax_wt, hypre_long_double *scale, hypre_ParVector *Vtemp, HYPRE_Int *pivots, + HYPRE_Int use_nonsymm ); +HYPRE_Int hypre_remove_entry_flt ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_remove_entry_dbl ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_remove_entry_long_dbl ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_update_entry_flt ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_update_entry_dbl ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int hypre_update_entry_long_dbl ( HYPRE_Int weight, HYPRE_Int *weight_max, HYPRE_Int *previous, + HYPRE_Int *next, HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int head, HYPRE_Int tail, HYPRE_Int i ); +HYPRE_Int matrix_matrix_product_flt ( HYPRE_Int **i_element_edge_pointer, + HYPRE_Int **j_element_edge_pointer, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int *i_face_edge, HYPRE_Int *j_face_edge, HYPRE_Int num_elements, HYPRE_Int num_faces, + HYPRE_Int num_edges ); +HYPRE_Int matrix_matrix_product_dbl ( HYPRE_Int **i_element_edge_pointer, + HYPRE_Int **j_element_edge_pointer, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int *i_face_edge, HYPRE_Int *j_face_edge, HYPRE_Int num_elements, HYPRE_Int num_faces, + HYPRE_Int num_edges ); +HYPRE_Int matrix_matrix_product_long_dbl ( HYPRE_Int **i_element_edge_pointer, + HYPRE_Int **j_element_edge_pointer, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int *i_face_edge, HYPRE_Int *j_face_edge, HYPRE_Int num_elements, HYPRE_Int num_faces, + HYPRE_Int num_edges ); +HYPRE_Int transpose_matrix_create_flt ( HYPRE_Int **i_face_element_pointer, + HYPRE_Int **j_face_element_pointer, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int num_elements, HYPRE_Int num_faces ); +HYPRE_Int transpose_matrix_create_dbl ( HYPRE_Int **i_face_element_pointer, + HYPRE_Int **j_face_element_pointer, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int num_elements, HYPRE_Int num_faces ); +HYPRE_Int transpose_matrix_create_long_dbl ( HYPRE_Int **i_face_element_pointer, + HYPRE_Int **j_face_element_pointer, HYPRE_Int *i_element_face, HYPRE_Int *j_element_face, + HYPRE_Int num_elements, HYPRE_Int num_faces ); + +#endif + +#endif diff --git a/src/parcsr_ls/par_lr_restr.c b/src/parcsr_ls/par_lr_restr.c index 1c7ce2a7c3..e7ec6a3739 100644 --- a/src/parcsr_ls/par_lr_restr.c +++ b/src/parcsr_ls/par_lr_restr.c @@ -16,9 +16,12 @@ // hypre_dense_topo_sort(HYPRE_Real *L, HYPRE_Int *ordering, HYPRE_Int n) // to get ordering for triangular solve. Can provide - +/* Global variable for error handling */ +/* guard definition of global variables to avoid linker errors for multiprecision build */ +#if defined DEFINE_GLOBAL_VARIABLE HYPRE_Int AIR_TOT_SOL_SIZE = 0; HYPRE_Int AIR_MAX_SOL_SIZE = 0; +#endif #define AIR_DEBUG 0 #define EPSILON 1e-18 diff --git a/src/parcsr_ls/parcsr_ls_func_header b/src/parcsr_ls/parcsr_ls_func_header new file mode 100755 index 0000000000..caccd5f91a --- /dev/null +++ b/src/parcsr_ls/parcsr_ls_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=parcsr_ls_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_ls_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARCSR_LS_MUP_FUNC_HEADER +#define PARCSR_LS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=parcsr_ls_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/parcsr_ls/parcsr_ls_functions.saved b/src/parcsr_ls/parcsr_ls_functions.saved new file mode 100644 index 0000000000..4a85d92886 --- /dev/null +++ b/src/parcsr_ls/parcsr_ls_functions.saved @@ -0,0 +1,2114 @@ +hypre_ADSComputePi +hypre_ADSComputePixyz +hypre_ADSCreate +hypre_ADSDestroy +hypre_ADSGetFinalRelativeResidualNorm +hypre_ADSGetNumIterations +hypre_ADSSetAMGOptions +hypre_ADSSetAMSOptions +hypre_ADSSetChebySmoothingOptions +hypre_ADSSetCoordinateVectors +hypre_ADSSetCycleType +hypre_ADSSetDiscreteCurl +hypre_ADSSetDiscreteGradient +hypre_ADSSetInterpolations +hypre_ADSSetMaxIter +hypre_ADSSetPrintLevel +hypre_ADSSetSmoothingOptions +hypre_ADSSetTol +hypre_ADSSetup +hypre_ADSSolve +hypre_AMECreate +hypre_AMEDestroy +hypre_AMEDiscrDivFreeComponent +hypre_AMEGetEigenvalues +hypre_AMEGetEigenvectors +hypre_AMEMultiOperatorA +hypre_AMEMultiOperatorB +hypre_AMEMultiOperatorM +hypre_AMEOperatorA +hypre_AMEOperatorB +hypre_AMEOperatorM +hypre_AMESetAMSSolver +hypre_AMESetBlockSize +hypre_AMESetMassMatrix +hypre_AMESetMaxIter +hypre_AMESetMaxPCGIter +hypre_AMESetPrintLevel +hypre_AMESetRTol +hypre_AMESetTol +hypre_AMESetup +hypre_AMESolve +hypre_AMGHybridCreate +hypre_AMGHybridDestroy +hypre_AMGHybridGetDSCGNumIterations +hypre_AMGHybridGetFinalRelativeResidualNorm +hypre_AMGHybridGetNumIterations +hypre_AMGHybridGetPCGNumIterations +hypre_AMGHybridGetRecomputeResidual +hypre_AMGHybridGetRecomputeResidualP +hypre_AMGHybridGetSetupSolveTime +hypre_AMGHybridSetAbsoluteTol +hypre_AMGHybridSetAggInterpType +hypre_AMGHybridSetAggNumLevels +hypre_AMGHybridSetCoarsenType +hypre_AMGHybridSetConvergenceTol +hypre_AMGHybridSetCycleNumSweeps +hypre_AMGHybridSetCycleRelaxType +hypre_AMGHybridSetCycleType +hypre_AMGHybridSetDofFunc +hypre_AMGHybridSetDSCGMaxIter +hypre_AMGHybridSetGridRelaxPoints +hypre_AMGHybridSetGridRelaxType +hypre_AMGHybridSetInterpType +hypre_AMGHybridSetKDim +hypre_AMGHybridSetKeepTranspose +hypre_AMGHybridSetLevelOuterWt +hypre_AMGHybridSetLevelRelaxWt +hypre_AMGHybridSetLogging +hypre_AMGHybridSetMaxCoarseSize +hypre_AMGHybridSetMaxLevels +hypre_AMGHybridSetMaxRowSum +hypre_AMGHybridSetMeasureType +hypre_AMGHybridSetMinCoarseSize +hypre_AMGHybridSetNodal +hypre_AMGHybridSetNonGalerkinTol +hypre_AMGHybridSetNumFunctions +hypre_AMGHybridSetNumGridSweeps +hypre_AMGHybridSetNumPaths +hypre_AMGHybridSetNumSweeps +hypre_AMGHybridSetOmega +hypre_AMGHybridSetOuterWt +hypre_AMGHybridSetPCGMaxIter +hypre_AMGHybridSetPMaxElmts +hypre_AMGHybridSetPrecond +hypre_AMGHybridSetPrintLevel +hypre_AMGHybridSetRecomputeResidual +hypre_AMGHybridSetRecomputeResidualP +hypre_AMGHybridSetRelaxOrder +hypre_AMGHybridSetRelaxType +hypre_AMGHybridSetRelaxWeight +hypre_AMGHybridSetRelaxWt +hypre_AMGHybridSetRelChange +hypre_AMGHybridSetSeqThreshold +hypre_AMGHybridSetSetupType +hypre_AMGHybridSetSolverType +hypre_AMGHybridSetStopCrit +hypre_AMGHybridSetStrongThreshold +hypre_AMGHybridSetTol +hypre_AMGHybridSetTruncFactor +hypre_AMGHybridSetTwoNorm +hypre_AMGHybridSetup +hypre_AMGHybridSolve +hypre_AMSComputeGPi +hypre_AMSComputePi +hypre_AMSComputePixyz +hypre_AMSConstructDiscreteGradient +hypre_AMSCreate +hypre_AMSDestroy +hypre_AMSFEIDestroy +hypre_AMSFEISetup +hypre_AMSGetFinalRelativeResidualNorm +hypre_AMSGetNumIterations +hypre_AMSProjectOutGradients +hypre_AMSSetAlphaAMGCoarseRelaxType +hypre_AMSSetAlphaAMGOptions +hypre_AMSSetAlphaPoissonMatrix +hypre_AMSSetBetaAMGCoarseRelaxType +hypre_AMSSetBetaAMGOptions +hypre_AMSSetBetaPoissonMatrix +hypre_AMSSetChebySmoothingOptions +hypre_AMSSetCoordinateVectors +hypre_AMSSetCycleType +hypre_AMSSetDimension +hypre_AMSSetDiscreteGradient +hypre_AMSSetEdgeConstantVectors +hypre_AMSSetInteriorNodes +hypre_AMSSetInterpolations +hypre_AMSSetMaxIter +hypre_AMSSetPrintLevel +hypre_AMSSetProjectionFrequency +hypre_AMSSetSmoothingOptions +hypre_AMSSetTol +hypre_AMSSetup +hypre_AMSSolve +hypre_BoomerAMGBlockSolve +hypre_ParCSRComputeL1Norms +hypre_ParCSRComputeL1NormsThreads +hypre_ParCSRMatrixFixZeroRows +hypre_ParCSRMatrixFixZeroRowsHost +hypre_ParCSRMatrixSetDiagRows +hypre_ParCSRRelax +hypre_ParCSRSubspacePrec +hypre_ParVectorBlockGather +hypre_ParVectorBlockSplit +hypre_ParVectorInDomainOf +hypre_ParVectorInRangeOf +hypre_alt_insert_new_nodes +hypre_big_insert_new_nodes +hypre_build_interp_colmap +hypre_exchange_interp_data +hypre_exchange_marker +hypre_index_of_minimum +hypre_initialize_vecs +hypre_ssort +hypre_swap_int +hypre_BlockTridiagCreate +hypre_BlockTridiagDestroy +hypre_BlockTridiagSetAMGNumSweeps +hypre_BlockTridiagSetAMGRelaxType +hypre_BlockTridiagSetAMGStrengthThreshold +hypre_BlockTridiagSetIndexSet +hypre_BlockTridiagSetPrintLevel +hypre_BlockTridiagSetup +hypre_BlockTridiagSolve +hypre_amsconstructdiscretegradient +hypre_amscreate +hypre_amsdestroy +hypre_amsgetfinalrelativeresidualnorm +hypre_amsgetnumiterations +hypre_amssetalphaamgoptions +hypre_amssetalphapoissonmatrix +hypre_amssetbetaamgoptions +hypre_amssetbetapoissonmatrix +hypre_amssetcoordinatevectors +hypre_amssetcycletype +hypre_amssetdimension +hypre_amssetdiscretegradient +hypre_amssetedgeconstantvectors +hypre_amssetmaxiter +hypre_amssetprintlevel +hypre_amssetsmoothingoptions +hypre_amssettol +hypre_amssetup +hypre_amssolve +hypre_generatelaplacian +hypre_boomeramgcreate +hypre_boomeramgdestroy +hypre_boomeramgfingridrelaxatn +hypre_boomeramggetadditive +hypre_boomeramggetcoarsentype +hypre_boomeramggetcumnumiterati +hypre_boomeramggetcyclenumsweeps +hypre_boomeramggetcyclerelaxtype +hypre_boomeramggetcycletype +hypre_boomeramggetdebugflag +hypre_boomeramggetdomaintype +hypre_boomeramggetfinalreltvres +hypre_boomeramggetjacobitrunc +hypre_boomeramggetlogging +hypre_boomeramggetmaxcoarsesize +hypre_boomeramggetmaxiter +hypre_boomeramggetmaxlevels +hypre_boomeramggetmaxrowsum +hypre_boomeramggetmeasuretype +hypre_boomeramggetmincoarsesize +hypre_boomeramggetmultadd +hypre_boomeramggetnumfunctions +hypre_boomeramggetnumiterations +hypre_boomeramggetoverlap +hypre_boomeramggetpmaxelmts +hypre_boomeramggetprintlevel +hypre_boomeramggetresidual +hypre_boomeramggetschwarzrlxwt +hypre_boomeramggetsimple +hypre_boomeramggetsmoothnumlvls +hypre_boomeramggetsmoothnumswps +hypre_boomeramggetsmoothtype +hypre_boomeramggetstrongthrshld +hypre_boomeramggettol +hypre_boomeramggettruncfactor +hypre_boomeramggetvariant +hypre_boomeramginitgridrelaxatn +hypre_boomeramgsetadditive +hypre_boomeramgsetaddlastlvl +hypre_boomeramgsetaddrlxtype +hypre_boomeramgsetaddrlxwt +hypre_boomeramgsetagginterptype +hypre_boomeramgsetaggnumlevels +hypre_boomeramgsetaggp12maxelmt +hypre_boomeramgsetaggp12trfac +hypre_boomeramgsetaggpmaxelmts +hypre_boomeramgsetaggtrfactor +hypre_boomeramgsetcgcits +hypre_boomeramgsetchebyeigest +hypre_boomeramgsetchebyfract +hypre_boomeramgsetchebyorder +hypre_boomeramgsetchebyscale +hypre_boomeramgsetchebyvariant +hypre_boomeramgsetcoarsentype +hypre_boomeramgsetcyclenumsweeps +hypre_boomeramgsetcyclerelaxtype +hypre_boomeramgsetcycletype +hypre_boomeramgsetdebugflag +hypre_boomeramgsetdoffunc +hypre_boomeramgsetdomaintype +hypre_boomeramgsetdroptol +hypre_boomeramgseteubj +hypre_boomeramgseteuclidfile +hypre_boomeramgseteulevel +hypre_boomeramgseteusparsea +hypre_boomeramgsetfilter +hypre_boomeramgsetgridrelaxpnts +hypre_boomeramgsetgridrelaxtype +hypre_boomeramgsetgsmg +hypre_boomeramgsetinterptype +hypre_boomeramgsetinterpvecqmx +hypre_boomeramgsetinterpvecqtr +hypre_boomeramgsetinterpvecs +hypre_boomeramgsetinterpvecvar +hypre_boomeramgsetjacobitrunc +hypre_boomeramgsetkeeptransp +hypre_boomeramgsetlevel +hypre_boomeramgsetlevelouterwt +hypre_boomeramgsetlevelrelaxwt +hypre_boomeramgsetlogging +hypre_boomeramgsetlvlnongaltol +hypre_boomeramgsetmaxcoarsesize +hypre_boomeramgsetmaxiter +hypre_boomeramgsetmaxlevels +hypre_boomeramgsetmaxnzperrow +hypre_boomeramgsetmaxrowsum +hypre_boomeramgsetmeasuretype +hypre_boomeramgsetmincoarsesize +hypre_boomeramgsetminiter +hypre_boomeramgsetmultadd +hypre_boomeramgsetmultaddpmx +hypre_boomeramgsetmultaddtrf +hypre_boomeramgsetnodal +hypre_boomeramgsetnodaldiag +hypre_boomeramgsetnongaltol +hypre_boomeramgsetnumfunctions +hypre_boomeramgsetnumgridsweeps +hypre_boomeramgsetnumpaths +hypre_boomeramgsetnumsamples +hypre_boomeramgsetnumsweeps +hypre_boomeramgsetolddefault +hypre_boomeramgsetouterwt +hypre_boomeramgsetoverlap +hypre_boomeramgsetpmaxelmts +hypre_boomeramgsetpostinterp +hypre_boomeramgsetprintfilename +hypre_boomeramgsetprintlevel +hypre_boomeramgsetrap2 +hypre_boomeramgsetredundant +hypre_boomeramgsetrelaxorder +hypre_boomeramgsetrelaxtype +hypre_boomeramgsetrelaxweight +hypre_boomeramgsetrelaxwt +hypre_boomeramgsetrestriction +hypre_boomeramgsetschwarznonsym +hypre_boomeramgsetschwarzrlxwt +hypre_boomeramgsetsepweight +hypre_boomeramgsetseqthrshold +hypre_boomeramgsetsetuptype +hypre_boomeramgsetsimple +hypre_boomeramgsetsmoothnumlvls +hypre_boomeramgsetsmoothnumswps +hypre_boomeramgsetsmoothtype +hypre_boomeramgsetstrongthrshld +hypre_boomeramgsetsym +hypre_boomeramgsetthreshold +hypre_boomeramgsettol +hypre_boomeramgsettruncfactor +hypre_boomeramgsetup +hypre_boomeramgsetvariant +hypre_boomeramgsolve +hypre_boomeramgsolvet +hypre_parcsrbicgstabcreate +hypre_parcsrbicgstabdestroy +hypre_parcsrbicgstabgetfinalrel +hypre_parcsrbicgstabgetnumiter +hypre_parcsrbicgstabgetprecond +hypre_parcsrbicgstabsetatol +hypre_parcsrbicgstabsetlogging +hypre_parcsrbicgstabsetmaxiter +hypre_parcsrbicgstabsetminiter +hypre_parcsrbicgstabsetprecond +hypre_parcsrbicgstabsetprintlev +hypre_parcsrbicgstabsetstopcrit +hypre_parcsrbicgstabsettol +hypre_parcsrbicgstabsetup +hypre_parcsrbicgstabsolve +hypre_blocktridiagcreate +hypre_blocktridiagdestroy +hypre_blocktridiagsetamgnumswee +hypre_blocktridiagsetamgrelaxty +hypre_blocktridiagsetamgstrengt +hypre_blocktridiagsetindexset +hypre_blocktridiagsetprintlevel +hypre_blocktridiagsetup +hypre_blocktridiagsolve +hypre_parcsrcgnrcreate +hypre_parcsrcgnrdestroy +hypre_parcsrcgnrgetfinalrelativ +hypre_parcsrcgnrgetnumiteration +hypre_parcsrcgnrgetprecond +hypre_parcsrcgnrsetlogging +hypre_parcsrcgnrsetmaxiter +hypre_parcsrcgnrsetminiter +hypre_parcsrcgnrsetprecond +hypre_parcsrcgnrsetstopcrit +hypre_parcsrcgnrsettol +hypre_parcsrcgnrsetup +hypre_parcsrcgnrsolve +hypre_parcsrcogmrescreate +hypre_parcsrcogmresdestroy +hypre_parcsrcogmresgetfinalrela +hypre_parcsrcogmresgetnumiterat +hypre_parcsrcogmresgetprecond +hypre_parcsrcogmressetabsolutet +hypre_parcsrcogmressetcgs +hypre_parcsrcogmressetkdim +hypre_parcsrcogmressetlogging +hypre_parcsrcogmressetmaxiter +hypre_parcsrcogmressetminiter +hypre_parcsrcogmressetprecond +hypre_parcsrcogmressetprintleve +hypre_parcsrcogmressettol +hypre_parcsrcogmressetunroll +hypre_parcsrcogmressetup +hypre_parcsrcogmressolve +hypre_euclidcreate +hypre_eucliddestroy +hypre_euclidsetbj +hypre_euclidsetilut +hypre_euclidsetlevel +hypre_euclidsetmem +hypre_euclidsetparams +hypre_euclidsetparamsfromfile +hypre_euclidsetrowscale +hypre_euclidsetsparsea +hypre_euclidsetstats +hypre_euclidsetup +hypre_euclidsolve +hypre_parcsrflexgmrescreate +hypre_parcsrflexgmresdestroy +hypre_parcsrflexgmresgetfinalrelati +hypre_parcsrflexgmresgetnumiteratio +hypre_parcsrflexgmresgetprecond +hypre_parcsrflexgmressetabsolutetol +hypre_parcsrflexgmressetkdim +hypre_parcsrflexgmressetlogging +hypre_parcsrflexgmressetmaxiter +hypre_parcsrflexgmressetminiter +hypre_parcsrflexgmressetprecond +hypre_parcsrflexgmressetprintlevel +hypre_parcsrflexgmressettol +hypre_parcsrflexgmressetup +hypre_parcsrflexgmressolve +hypre_parcsrgmrescreate +hypre_parcsrgmresdestroy +hypre_parcsrgmresgetfinalrelati +hypre_parcsrgmresgetnumiteratio +hypre_parcsrgmresgetprecond +hypre_parcsrgmressetabsolutetol +hypre_parcsrgmressetkdim +hypre_parcsrgmressetlogging +hypre_parcsrgmressetmaxiter +hypre_parcsrgmressetminiter +hypre_parcsrgmressetprecond +hypre_parcsrgmressetprintlevel +hypre_parcsrgmressetstopcrit +hypre_parcsrgmressettol +hypre_parcsrgmressetup +hypre_parcsrgmressolve +hypre_parcsrhybridcreate +hypre_parcsrhybriddestroy +hypre_parcsrhybridgetdscgnumite +hypre_parcsrhybridgetfinalrelat +hypre_parcsrhybridgetnumiterati +hypre_parcsrhybridgetpcgnumiter +hypre_parcsrhybridsetaggnumlev +hypre_parcsrhybridsetcoarsentyp +hypre_parcsrhybridsetconvergenc +hypre_parcsrhybridsetcyclenumsw +hypre_parcsrhybridsetcyclerelax +hypre_parcsrhybridsetcycletype +hypre_parcsrhybridsetdoffunc +hypre_parcsrhybridsetdscgmaxite +hypre_parcsrhybridsetgridrelaxp +hypre_parcsrhybridsetgridrelaxt +hypre_parcsrhybridsetinterptyp +hypre_parcsrhybridsetkdim +hypre_parcsrhybridsetkeeptrans +hypre_parcsrhybridsetlevelouter +hypre_parcsrhybridsetlevelrelax +hypre_parcsrhybridsetlogging +hypre_parcsrhybridsetmaxlevels +hypre_parcsrhybridsetmaxrowsum +hypre_parcsrhybridsetmeasuretyp +hypre_parcsrhybridsetnodal +hypre_parcsrhybridsetnongaltol +hypre_parcsrhybridsetnumfunc +hypre_parcsrhybridsetnumgridswe +hypre_parcsrhybridsetnumpaths +hypre_parcsrhybridsetnumsweeps +hypre_parcsrhybridsetomega +hypre_parcsrhybridsetouterwt +hypre_parcsrhybridsetpcgmaxiter +hypre_parcsrhybridsetpmaxelmts +hypre_parcsrhybridsetprecond +hypre_parcsrhybridsetprintlevel +hypre_parcsrhybridsetrelaxorder +hypre_parcsrhybridsetrelaxtype +hypre_parcsrhybridsetrelaxweigh +hypre_parcsrhybridsetrelaxwt +hypre_parcsrhybridsetrelchange +hypre_parcsrhybridsetsolvertype +hypre_parcsrhybridsetstopcrit +hypre_parcsrhybridsetstrongthre +hypre_parcsrhybridsettol +hypre_parcsrhybridsettruncfacto +hypre_parcsrhybridsettwonorm +hypre_parcsrhybridsetup +hypre_parcsrhybridsolve +hypre_ilucreate +hypre_iludestroy +hypre_ilugetfinalrelresnorm +hypre_ilugetnumiterations +hypre_ilusetdropthreshold +hypre_ilusetdropthresholdarray +hypre_ilusetleveloffill +hypre_ilusetlocalreordering +hypre_ilusetlogging +hypre_ilusetmaxiter +hypre_ilusetmaxnnzperrow +hypre_ilusetnshdropthreshold +hypre_ilusetprintlevel +hypre_ilusetschurmaxiter +hypre_ilusettol +hypre_ilusettype +hypre_ilusetup +hypre_ilusolve +hypre_parcsrmultivectorprint +hypre_parcsrmultivectorread +hypre_parcsrsetupinterpreter +hypre_parcsrsetupmatvec +hypre_parprintvector +hypre_parreadvector +hypre_parsetrandomvalues +hypre_parvectorsize +hypre_tempparcsrsetupinterprete +hypre_parcsrlgmrescreate +hypre_parcsrlgmresdestroy +hypre_parcsrlgmresgetfinalrelati +hypre_parcsrlgmresgetnumiteratio +hypre_parcsrlgmresgetprecond +hypre_parcsrlgmressetabsolutetol +hypre_parcsrlgmressetkdim +hypre_parcsrlgmressetlogging +hypre_parcsrlgmressetmaxiter +hypre_parcsrlgmressetminiter +hypre_parcsrlgmressetprecond +hypre_parcsrlgmressetprintlevel +hypre_parcsrlgmressettol +hypre_parcsrlgmressetup +hypre_parcsrlgmressolve +hypre_mgrbuildaff +hypre_mgrcreate +hypre_mgrdestroy +hypre_mgrgetcoarsegridconvfac +hypre_mgrgetfinalrelresnorm +hypre_mgrgetnumiterations +hypre_mgrsetblocksize +hypre_mgrsetcgridprintlevel +hypre_mgrsetcgridthreshold +hypre_mgrsetcoarsegridmethod +hypre_mgrsetcoarsesolver +hypre_mgrsetcpointsbyblock +hypre_mgrsetcptsbyctgblock +hypre_mgrsetcptsbymarkerarray +hypre_mgrsetfrelaxmethod +hypre_mgrsetfrelaxprintlevel +hypre_mgrsetfsolver +hypre_mgrsetglobalsmoothtype +hypre_mgrsetinterptype +hypre_mgrsetlevelfrelaxmethod +hypre_mgrsetlevelfrelaxnumfunc +hypre_mgrsetlevelinterptype +hypre_mgrsetlevelrestricttype +hypre_mgrsetlogging +hypre_mgrsetmaxcoarselevels +hypre_mgrsetmaxglobalsmoothit +hypre_mgrsetmaxiter +hypre_mgrsetnoncptstofpts +hypre_mgrsetnuminterpsweeps +hypre_mgrsetnumrelaxsweeps +hypre_mgrsetnumrestrictsweeps +hypre_mgrsetpmaxelmts +hypre_mgrsetprintlevel +hypre_mgrsetrelaxtype +hypre_mgrsetreservedcoarsenodes +hypre_mgrsetreservedcptslevel +hypre_mgrsetrestricttype +hypre_mgrsettol +hypre_mgrsetup +hypre_mgrsolve +hypre_parasailscreate +hypre_parasailsdestroy +hypre_parasailsgetfilter +hypre_parasailsgetloadbal +hypre_parasailsgetlogging +hypre_parasailsgetnlevels +hypre_parasailsgetreuse +hypre_parasailsgetsym +hypre_parasailsgetthresh +hypre_parasailssetfilter +hypre_parasailssetloadbal +hypre_parasailssetlogging +hypre_parasailssetnlevels +hypre_parasailssetparams +hypre_parasailssetreuse +hypre_parasailssetsym +hypre_parasailssetthresh +hypre_parasailssetup +hypre_parasailssolve +hypre_parcsrdiagscale +hypre_parcsrdiagscalesetup +hypre_parcsrpcgcreate +hypre_parcsrpcgdestroy +hypre_parcsrpcggetfinalrelative +hypre_parcsrpcggetnumiterations +hypre_parcsrpcggetprecond +hypre_parcsrpcgsetatol +hypre_parcsrpcgsetlogging +hypre_parcsrpcgsetmaxiter +hypre_parcsrpcgsetprecond +hypre_parcsrpcgsetprintlevel +hypre_parcsrpcgsetrelchange +hypre_parcsrpcgsetstopcrit +hypre_parcsrpcgsettol +hypre_parcsrpcgsettwonorm +hypre_parcsrpcgsetup +hypre_parcsrpcgsolve +hypre_parcsrpilutcreate +hypre_parcsrpilutdestroy +hypre_parcsrpilutsetdroptoleran +hypre_parcsrpilutsetfacrowsize +hypre_parcsrpilutsetmaxiter +hypre_parcsrpilutsetup +hypre_parcsrpilutsolve +hypre_schwarzcreate +hypre_schwarzdestroy +hypre_schwarzsetdoffunc +hypre_schwarzsetdomainstructure +hypre_schwarzsetdomaintype +hypre_schwarzsetnumfunctions +hypre_schwarzsetoverlap +hypre_schwarzsetrelaxweight +hypre_schwarzsetup +hypre_schwarzsetvariant +hypre_schwarzsolve +hypre_GenerateSubComm +hypre_merge_lists +hypre_seqAMGCycle +hypre_seqAMGSetup +HYPRE_ADSCreate +HYPRE_ADSDestroy +HYPRE_ADSGetFinalRelativeResidualNorm +HYPRE_ADSGetNumIterations +HYPRE_ADSSetAMGOptions +HYPRE_ADSSetAMSOptions +HYPRE_ADSSetChebySmoothingOptions +HYPRE_ADSSetCoordinateVectors +HYPRE_ADSSetCycleType +HYPRE_ADSSetDiscreteCurl +HYPRE_ADSSetDiscreteGradient +HYPRE_ADSSetInterpolations +HYPRE_ADSSetMaxIter +HYPRE_ADSSetPrintLevel +HYPRE_ADSSetSmoothingOptions +HYPRE_ADSSetTol +HYPRE_ADSSetup +HYPRE_ADSSolve +HYPRE_AMECreate +HYPRE_AMEDestroy +HYPRE_AMEGetEigenvalues +HYPRE_AMEGetEigenvectors +HYPRE_AMESetAMSSolver +HYPRE_AMESetBlockSize +HYPRE_AMESetMassMatrix +HYPRE_AMESetMaxIter +HYPRE_AMESetMaxPCGIter +HYPRE_AMESetPrintLevel +HYPRE_AMESetRTol +HYPRE_AMESetTol +HYPRE_AMESetup +HYPRE_AMESolve +HYPRE_AMSConstructDiscreteGradient +HYPRE_AMSCreate +HYPRE_AMSDestroy +HYPRE_AMSFEIDestroy +HYPRE_AMSFEISetup +HYPRE_AMSGetFinalRelativeResidualNorm +HYPRE_AMSGetNumIterations +HYPRE_AMSProjectOutGradients +HYPRE_AMSSetAlphaAMGCoarseRelaxType +HYPRE_AMSSetAlphaAMGOptions +HYPRE_AMSSetAlphaPoissonMatrix +HYPRE_AMSSetBetaAMGCoarseRelaxType +HYPRE_AMSSetBetaAMGOptions +HYPRE_AMSSetBetaPoissonMatrix +HYPRE_AMSSetChebySmoothingOptions +HYPRE_AMSSetCoordinateVectors +HYPRE_AMSSetCycleType +HYPRE_AMSSetDimension +HYPRE_AMSSetDiscreteGradient +HYPRE_AMSSetEdgeConstantVectors +HYPRE_AMSSetInteriorNodes +HYPRE_AMSSetInterpolations +HYPRE_AMSSetMaxIter +HYPRE_AMSSetPrintLevel +HYPRE_AMSSetProjectionFrequency +HYPRE_AMSSetSmoothingOptions +HYPRE_AMSSetTol +HYPRE_AMSSetup +HYPRE_AMSSolve +HYPRE_BoomerAMGDDCreate +HYPRE_BoomerAMGDDDestroy +HYPRE_BoomerAMGDDGetAMG +HYPRE_BoomerAMGDDGetFACCycleType +HYPRE_BoomerAMGDDGetFACNumCycles +HYPRE_BoomerAMGDDGetFACNumRelax +HYPRE_BoomerAMGDDGetFACRelaxType +HYPRE_BoomerAMGDDGetFACRelaxWeight +HYPRE_BoomerAMGDDGetFinalRelativeResidualNorm +HYPRE_BoomerAMGDDGetNumGhostLayers +HYPRE_BoomerAMGDDGetNumIterations +HYPRE_BoomerAMGDDGetPadding +HYPRE_BoomerAMGDDGetStartLevel +HYPRE_BoomerAMGDDSetFACCycleType +HYPRE_BoomerAMGDDSetFACNumCycles +HYPRE_BoomerAMGDDSetFACNumRelax +HYPRE_BoomerAMGDDSetFACRelaxType +HYPRE_BoomerAMGDDSetFACRelaxWeight +HYPRE_BoomerAMGDDSetNumGhostLayers +HYPRE_BoomerAMGDDSetPadding +HYPRE_BoomerAMGDDSetStartLevel +HYPRE_BoomerAMGDDSetup +HYPRE_BoomerAMGDDSetUserFACRelaxation +HYPRE_BoomerAMGDDSolve +HYPRE_BoomerAMGCreate +HYPRE_BoomerAMGDestroy +HYPRE_BoomerAMGGetAdditive +HYPRE_BoomerAMGGetCoarsenCutFactor +HYPRE_BoomerAMGGetCoarsenType +HYPRE_BoomerAMGGetConvergeType +HYPRE_BoomerAMGGetCumNnzAP +HYPRE_BoomerAMGGetCumNumIterations +HYPRE_BoomerAMGGetCycleNumSweeps +HYPRE_BoomerAMGGetCycleRelaxType +HYPRE_BoomerAMGGetCycleType +HYPRE_BoomerAMGGetDebugFlag +HYPRE_BoomerAMGGetDomainType +HYPRE_BoomerAMGGetFCycle +HYPRE_BoomerAMGGetFilterFunctions +HYPRE_BoomerAMGGetFilterThresholdR +HYPRE_BoomerAMGGetFinalRelativeResidualNorm +HYPRE_BoomerAMGGetGridHierarchy +HYPRE_BoomerAMGGetJacobiTruncThreshold +HYPRE_BoomerAMGGetLogging +HYPRE_BoomerAMGGetMaxCoarseSize +HYPRE_BoomerAMGGetMaxIter +HYPRE_BoomerAMGGetMaxLevels +HYPRE_BoomerAMGGetMaxRowSum +HYPRE_BoomerAMGGetMeasureType +HYPRE_BoomerAMGGetMinCoarseSize +HYPRE_BoomerAMGGetMultAdditive +HYPRE_BoomerAMGGetNumFunctions +HYPRE_BoomerAMGGetNumIterations +HYPRE_BoomerAMGGetOverlap +HYPRE_BoomerAMGGetPMaxElmts +HYPRE_BoomerAMGGetPostInterpType +HYPRE_BoomerAMGGetPrintLevel +HYPRE_BoomerAMGGetRedundant +HYPRE_BoomerAMGGetResidual +HYPRE_BoomerAMGGetSchwarzRlxWeight +HYPRE_BoomerAMGGetSeqThreshold +HYPRE_BoomerAMGGetSimple +HYPRE_BoomerAMGGetSmoothNumLevels +HYPRE_BoomerAMGGetSmoothNumSweeps +HYPRE_BoomerAMGGetSmoothType +HYPRE_BoomerAMGGetStrongThreshold +HYPRE_BoomerAMGGetStrongThresholdR +HYPRE_BoomerAMGGetTol +HYPRE_BoomerAMGGetTruncFactor +HYPRE_BoomerAMGGetVariant +HYPRE_BoomerAMGInitGridRelaxation +HYPRE_BoomerAMGSetAdditive +HYPRE_BoomerAMGSetAddLastLvl +HYPRE_BoomerAMGSetAddPMaxElmts +HYPRE_BoomerAMGSetAddRelaxType +HYPRE_BoomerAMGSetAddRelaxWt +HYPRE_BoomerAMGSetAddTruncFactor +HYPRE_BoomerAMGSetADropTol +HYPRE_BoomerAMGSetADropType +HYPRE_BoomerAMGSetAggInterpType +HYPRE_BoomerAMGSetAggNumLevels +HYPRE_BoomerAMGSetAggP12MaxElmts +HYPRE_BoomerAMGSetAggP12TruncFactor +HYPRE_BoomerAMGSetAggPMaxElmts +HYPRE_BoomerAMGSetAggTruncFactor +HYPRE_BoomerAMGSetCGCIts +HYPRE_BoomerAMGSetChebyEigEst +HYPRE_BoomerAMGSetChebyFraction +HYPRE_BoomerAMGSetChebyOrder +HYPRE_BoomerAMGSetChebyScale +HYPRE_BoomerAMGSetChebyVariant +HYPRE_BoomerAMGSetCoarsenCutFactor +HYPRE_BoomerAMGSetCoarsenType +HYPRE_BoomerAMGSetConvergeType +HYPRE_BoomerAMGSetCoordDim +HYPRE_BoomerAMGSetCoordinates +HYPRE_BoomerAMGSetCPoints +HYPRE_BoomerAMGSetCpointsToKeep +HYPRE_BoomerAMGSetCRRate +HYPRE_BoomerAMGSetCRStrongTh +HYPRE_BoomerAMGSetCRUseCG +HYPRE_BoomerAMGSetCumNnzAP +HYPRE_BoomerAMGSetCycleNumSweeps +HYPRE_BoomerAMGSetCycleRelaxType +HYPRE_BoomerAMGSetCycleType +HYPRE_BoomerAMGSetDebugFlag +HYPRE_BoomerAMGSetDofFunc +HYPRE_BoomerAMGSetDomainType +HYPRE_BoomerAMGSetDropTol +HYPRE_BoomerAMGSetEuBJ +HYPRE_BoomerAMGSetEuclidFile +HYPRE_BoomerAMGSetEuLevel +HYPRE_BoomerAMGSetEuSparseA +HYPRE_BoomerAMGSetFCycle +HYPRE_BoomerAMGSetFilter +HYPRE_BoomerAMGSetFilterFunctions +HYPRE_BoomerAMGSetFilterThresholdR +HYPRE_BoomerAMGSetFPoints +HYPRE_BoomerAMGSetFSAIAlgoType +HYPRE_BoomerAMGSetFSAIEigMaxIters +HYPRE_BoomerAMGSetFSAIKapTolerance +HYPRE_BoomerAMGSetFSAILocalSolveType +HYPRE_BoomerAMGSetFSAIMaxNnzRow +HYPRE_BoomerAMGSetFSAIMaxSteps +HYPRE_BoomerAMGSetFSAIMaxStepSize +HYPRE_BoomerAMGSetFSAINumLevels +HYPRE_BoomerAMGSetFSAIThreshold +HYPRE_BoomerAMGSetGMRESSwitchR +HYPRE_BoomerAMGSetGridRelaxPoints +HYPRE_BoomerAMGSetGridRelaxType +HYPRE_BoomerAMGSetGSMG +HYPRE_BoomerAMGSetILUDroptol +HYPRE_BoomerAMGSetILUIterSetupMaxIter +HYPRE_BoomerAMGSetILUIterSetupOption +HYPRE_BoomerAMGSetILUIterSetupTolerance +HYPRE_BoomerAMGSetILUIterSetupType +HYPRE_BoomerAMGSetILULevel +HYPRE_BoomerAMGSetILULocalReordering +HYPRE_BoomerAMGSetILULowerJacobiIters +HYPRE_BoomerAMGSetILUMaxIter +HYPRE_BoomerAMGSetILUMaxRowNnz +HYPRE_BoomerAMGSetILUTriSolve +HYPRE_BoomerAMGSetILUType +HYPRE_BoomerAMGSetILUUpperJacobiIters +HYPRE_BoomerAMGSetInterpRefine +HYPRE_BoomerAMGSetInterpType +HYPRE_BoomerAMGSetInterpVecAbsQTrunc +HYPRE_BoomerAMGSetInterpVecFirstLevel +HYPRE_BoomerAMGSetInterpVecQMax +HYPRE_BoomerAMGSetInterpVectors +HYPRE_BoomerAMGSetInterpVecVariant +HYPRE_BoomerAMGSetIsolatedFPoints +HYPRE_BoomerAMGSetIsTriangular +HYPRE_BoomerAMGSetISType +HYPRE_BoomerAMGSetJacobiTruncThreshold +HYPRE_BoomerAMGSetKeepSameSign +HYPRE_BoomerAMGSetKeepTranspose +HYPRE_BoomerAMGSetLevel +HYPRE_BoomerAMGSetLevelNonGalerkinTol +HYPRE_BoomerAMGSetLevelOuterWt +HYPRE_BoomerAMGSetLevelRelaxWt +HYPRE_BoomerAMGSetLogging +HYPRE_BoomerAMGSetMaxCoarseSize +HYPRE_BoomerAMGSetMaxIter +HYPRE_BoomerAMGSetMaxLevels +HYPRE_BoomerAMGSetMaxNzPerRow +HYPRE_BoomerAMGSetMaxRowSum +HYPRE_BoomerAMGSetMeasureType +HYPRE_BoomerAMGSetMinCoarseSize +HYPRE_BoomerAMGSetMinIter +HYPRE_BoomerAMGSetModuleRAP2 +HYPRE_BoomerAMGSetMultAdditive +HYPRE_BoomerAMGSetMultAddPMaxElmts +HYPRE_BoomerAMGSetMultAddTruncFactor +HYPRE_BoomerAMGSetNodal +HYPRE_BoomerAMGSetNodalDiag +HYPRE_BoomerAMGSetNodalLevels +HYPRE_BoomerAMGSetNonGalerkinTol +HYPRE_BoomerAMGSetNonGalerkTol +HYPRE_BoomerAMGSetNumCRRelaxSteps +HYPRE_BoomerAMGSetNumFunctions +HYPRE_BoomerAMGSetNumGridSweeps +HYPRE_BoomerAMGSetNumPaths +HYPRE_BoomerAMGSetNumSamples +HYPRE_BoomerAMGSetNumSweeps +HYPRE_BoomerAMGSetOldDefault +HYPRE_BoomerAMGSetOmega +HYPRE_BoomerAMGSetOuterWt +HYPRE_BoomerAMGSetOverlap +HYPRE_BoomerAMGSetPlotFileName +HYPRE_BoomerAMGSetPlotGrids +HYPRE_BoomerAMGSetPMaxElmts +HYPRE_BoomerAMGSetPostInterpType +HYPRE_BoomerAMGSetPrintFileName +HYPRE_BoomerAMGSetPrintLevel +HYPRE_BoomerAMGSetRAP2 +HYPRE_BoomerAMGSetRedundant +HYPRE_BoomerAMGSetRelaxOrder +HYPRE_BoomerAMGSetRelaxType +HYPRE_BoomerAMGSetRelaxWeight +HYPRE_BoomerAMGSetRelaxWt +HYPRE_BoomerAMGSetRestriction +HYPRE_BoomerAMGSetSabs +HYPRE_BoomerAMGSetSchwarzRlxWeight +HYPRE_BoomerAMGSetSchwarzUseNonSymm +HYPRE_BoomerAMGSetSCommPkgSwitch +HYPRE_BoomerAMGSetSepWeight +HYPRE_BoomerAMGSetSeqThreshold +HYPRE_BoomerAMGSetSetupType +HYPRE_BoomerAMGSetSimple +HYPRE_BoomerAMGSetSmoothInterpVectors +HYPRE_BoomerAMGSetSmoothNumLevels +HYPRE_BoomerAMGSetSmoothNumSweeps +HYPRE_BoomerAMGSetSmoothType +HYPRE_BoomerAMGSetStrongThreshold +HYPRE_BoomerAMGSetStrongThresholdR +HYPRE_BoomerAMGSetSym +HYPRE_BoomerAMGSetThreshold +HYPRE_BoomerAMGSetTol +HYPRE_BoomerAMGSetTruncFactor +HYPRE_BoomerAMGSetup +HYPRE_BoomerAMGSetVariant +HYPRE_BoomerAMGSolve +HYPRE_BoomerAMGSolveT +HYPRE_ParCSRBiCGSTABCreate +HYPRE_ParCSRBiCGSTABDestroy +HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm +HYPRE_ParCSRBiCGSTABGetNumIterations +HYPRE_ParCSRBiCGSTABGetPrecond +HYPRE_ParCSRBiCGSTABGetResidual +HYPRE_ParCSRBiCGSTABSetAbsoluteTol +HYPRE_ParCSRBiCGSTABSetLogging +HYPRE_ParCSRBiCGSTABSetMaxIter +HYPRE_ParCSRBiCGSTABSetMinIter +HYPRE_ParCSRBiCGSTABSetPrecond +HYPRE_ParCSRBiCGSTABSetPrintLevel +HYPRE_ParCSRBiCGSTABSetStopCrit +HYPRE_ParCSRBiCGSTABSetTol +HYPRE_ParCSRBiCGSTABSetup +HYPRE_ParCSRBiCGSTABSolve +HYPRE_BlockTridiagCreate +HYPRE_BlockTridiagDestroy +HYPRE_BlockTridiagSetAMGNumSweeps +HYPRE_BlockTridiagSetAMGRelaxType +HYPRE_BlockTridiagSetAMGStrengthThreshold +HYPRE_BlockTridiagSetIndexSet +HYPRE_BlockTridiagSetPrintLevel +HYPRE_BlockTridiagSetup +HYPRE_BlockTridiagSolve +HYPRE_ParCSRCGNRCreate +HYPRE_ParCSRCGNRDestroy +HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm +HYPRE_ParCSRCGNRGetNumIterations +HYPRE_ParCSRCGNRGetPrecond +HYPRE_ParCSRCGNRSetLogging +HYPRE_ParCSRCGNRSetMaxIter +HYPRE_ParCSRCGNRSetMinIter +HYPRE_ParCSRCGNRSetPrecond +HYPRE_ParCSRCGNRSetStopCrit +HYPRE_ParCSRCGNRSetTol +HYPRE_ParCSRCGNRSetup +HYPRE_ParCSRCGNRSolve +HYPRE_ParCSRCOGMRESCreate +HYPRE_ParCSRCOGMRESDestroy +HYPRE_ParCSRCOGMRESGetFinalRelativeResidualNorm +HYPRE_ParCSRCOGMRESGetNumIterations +HYPRE_ParCSRCOGMRESGetPrecond +HYPRE_ParCSRCOGMRESGetResidual +HYPRE_ParCSRCOGMRESSetAbsoluteTol +HYPRE_ParCSRCOGMRESSetCGS +HYPRE_ParCSRCOGMRESSetKDim +HYPRE_ParCSRCOGMRESSetLogging +HYPRE_ParCSRCOGMRESSetMaxIter +HYPRE_ParCSRCOGMRESSetMinIter +HYPRE_ParCSRCOGMRESSetPrecond +HYPRE_ParCSRCOGMRESSetPrintLevel +HYPRE_ParCSRCOGMRESSetTol +HYPRE_ParCSRCOGMRESSetUnroll +HYPRE_ParCSRCOGMRESSetup +HYPRE_ParCSRCOGMRESSolve +HYPRE_EuclidCreate +HYPRE_EuclidDestroy +HYPRE_EuclidSetBJ +HYPRE_EuclidSetILUT +HYPRE_EuclidSetLevel +HYPRE_EuclidSetMem +HYPRE_EuclidSetParams +HYPRE_EuclidSetParamsFromFile +HYPRE_EuclidSetRowScale +HYPRE_EuclidSetSparseA +HYPRE_EuclidSetStats +HYPRE_EuclidSetup +HYPRE_EuclidSolve +HYPRE_ParCSRFlexGMRESCreate +HYPRE_ParCSRFlexGMRESDestroy +HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm +HYPRE_ParCSRFlexGMRESGetNumIterations +HYPRE_ParCSRFlexGMRESGetPrecond +HYPRE_ParCSRFlexGMRESGetResidual +HYPRE_ParCSRFlexGMRESSetAbsoluteTol +HYPRE_ParCSRFlexGMRESSetKDim +HYPRE_ParCSRFlexGMRESSetLogging +HYPRE_ParCSRFlexGMRESSetMaxIter +HYPRE_ParCSRFlexGMRESSetMinIter +HYPRE_ParCSRFlexGMRESSetModifyPC +HYPRE_ParCSRFlexGMRESSetPrecond +HYPRE_ParCSRFlexGMRESSetPrintLevel +HYPRE_ParCSRFlexGMRESSetTol +HYPRE_ParCSRFlexGMRESSetup +HYPRE_ParCSRFlexGMRESSolve +HYPRE_FSAICreate +HYPRE_FSAIDestroy +HYPRE_FSAIGetAlgoType +HYPRE_FSAIGetEigMaxIters +HYPRE_FSAIGetKapTolerance +HYPRE_FSAIGetLocalSolveType +HYPRE_FSAIGetMaxIterations +HYPRE_FSAIGetMaxNnzRow +HYPRE_FSAIGetMaxSteps +HYPRE_FSAIGetMaxStepSize +HYPRE_FSAIGetNumLevels +HYPRE_FSAIGetOmega +HYPRE_FSAIGetPrintLevel +HYPRE_FSAIGetThreshold +HYPRE_FSAIGetTolerance +HYPRE_FSAIGetZeroGuess +HYPRE_FSAISetAlgoType +HYPRE_FSAISetEigMaxIters +HYPRE_FSAISetKapTolerance +HYPRE_FSAISetLocalSolveType +HYPRE_FSAISetMaxIterations +HYPRE_FSAISetMaxNnzRow +HYPRE_FSAISetMaxSteps +HYPRE_FSAISetMaxStepSize +HYPRE_FSAISetNumLevels +HYPRE_FSAISetOmega +HYPRE_FSAISetPrintLevel +HYPRE_FSAISetThreshold +HYPRE_FSAISetTolerance +HYPRE_FSAISetup +HYPRE_FSAISetZeroGuess +HYPRE_FSAISolve +HYPRE_ParCSRGMRESCreate +HYPRE_ParCSRGMRESDestroy +HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm +HYPRE_ParCSRGMRESGetNumIterations +HYPRE_ParCSRGMRESGetPrecond +HYPRE_ParCSRGMRESGetResidual +HYPRE_ParCSRGMRESSetAbsoluteTol +HYPRE_ParCSRGMRESSetKDim +HYPRE_ParCSRGMRESSetLogging +HYPRE_ParCSRGMRESSetMaxIter +HYPRE_ParCSRGMRESSetMinIter +HYPRE_ParCSRGMRESSetPrecond +HYPRE_ParCSRGMRESSetPrintLevel +HYPRE_ParCSRGMRESSetStopCrit +HYPRE_ParCSRGMRESSetTol +HYPRE_ParCSRGMRESSetup +HYPRE_ParCSRGMRESSolve +HYPRE_ParCSROnProcTriSetup +HYPRE_ParCSROnProcTriSolve +HYPRE_ParCSRHybridCreate +HYPRE_ParCSRHybridDestroy +HYPRE_ParCSRHybridGetDSCGNumIterations +HYPRE_ParCSRHybridGetFinalRelativeResidualNorm +HYPRE_ParCSRHybridGetNumIterations +HYPRE_ParCSRHybridGetPCGNumIterations +HYPRE_ParCSRHybridGetRecomputeResidual +HYPRE_ParCSRHybridGetRecomputeResidualP +HYPRE_ParCSRHybridGetSetupSolveTime +HYPRE_ParCSRHybridSetAbsoluteTol +HYPRE_ParCSRHybridSetAggInterpType +HYPRE_ParCSRHybridSetAggNumLevels +HYPRE_ParCSRHybridSetCoarsenType +HYPRE_ParCSRHybridSetConvergenceTol +HYPRE_ParCSRHybridSetCycleNumSweeps +HYPRE_ParCSRHybridSetCycleRelaxType +HYPRE_ParCSRHybridSetCycleType +HYPRE_ParCSRHybridSetDofFunc +HYPRE_ParCSRHybridSetDSCGMaxIter +HYPRE_ParCSRHybridSetGridRelaxPoints +HYPRE_ParCSRHybridSetGridRelaxType +HYPRE_ParCSRHybridSetInterpType +HYPRE_ParCSRHybridSetKDim +HYPRE_ParCSRHybridSetKeepTranspose +HYPRE_ParCSRHybridSetLevelOuterWt +HYPRE_ParCSRHybridSetLevelRelaxWt +HYPRE_ParCSRHybridSetLogging +HYPRE_ParCSRHybridSetMaxCoarseSize +HYPRE_ParCSRHybridSetMaxLevels +HYPRE_ParCSRHybridSetMaxRowSum +HYPRE_ParCSRHybridSetMeasureType +HYPRE_ParCSRHybridSetMinCoarseSize +HYPRE_ParCSRHybridSetNodal +HYPRE_ParCSRHybridSetNonGalerkinTol +HYPRE_ParCSRHybridSetNumFunctions +HYPRE_ParCSRHybridSetNumGridSweeps +HYPRE_ParCSRHybridSetNumPaths +HYPRE_ParCSRHybridSetNumSweeps +HYPRE_ParCSRHybridSetOmega +HYPRE_ParCSRHybridSetOuterWt +HYPRE_ParCSRHybridSetPCGMaxIter +HYPRE_ParCSRHybridSetPMaxElmts +HYPRE_ParCSRHybridSetPrecond +HYPRE_ParCSRHybridSetPrintLevel +HYPRE_ParCSRHybridSetRecomputeResidual +HYPRE_ParCSRHybridSetRecomputeResidualP +HYPRE_ParCSRHybridSetRelaxOrder +HYPRE_ParCSRHybridSetRelaxType +HYPRE_ParCSRHybridSetRelaxWeight +HYPRE_ParCSRHybridSetRelaxWt +HYPRE_ParCSRHybridSetRelChange +HYPRE_ParCSRHybridSetSeqThreshold +HYPRE_ParCSRHybridSetSetupType +HYPRE_ParCSRHybridSetSolverType +HYPRE_ParCSRHybridSetStopCrit +HYPRE_ParCSRHybridSetStrongThreshold +HYPRE_ParCSRHybridSetTol +HYPRE_ParCSRHybridSetTruncFactor +HYPRE_ParCSRHybridSetTwoNorm +HYPRE_ParCSRHybridSetup +HYPRE_ParCSRHybridSolve +HYPRE_ILUCreate +HYPRE_ILUDestroy +HYPRE_ILUGetFinalRelativeResidualNorm +HYPRE_ILUGetNumIterations +HYPRE_ILUSetDropThreshold +HYPRE_ILUSetDropThresholdArray +HYPRE_ILUSetIterativeSetupMaxIter +HYPRE_ILUSetIterativeSetupOption +HYPRE_ILUSetIterativeSetupTolerance +HYPRE_ILUSetIterativeSetupType +HYPRE_ILUSetLevelOfFill +HYPRE_ILUSetLocalReordering +HYPRE_ILUSetLogging +HYPRE_ILUSetLowerJacobiIters +HYPRE_ILUSetMaxIter +HYPRE_ILUSetMaxNnzPerRow +HYPRE_ILUSetNSHDropThreshold +HYPRE_ILUSetNSHDropThresholdArray +HYPRE_ILUSetPrintLevel +HYPRE_ILUSetSchurMaxIter +HYPRE_ILUSetTol +HYPRE_ILUSetTriSolve +HYPRE_ILUSetType +HYPRE_ILUSetup +HYPRE_ILUSetUpperJacobiIters +HYPRE_ILUSolve +aux_indexFromMask +aux_maskCount +HYPRE_ParCSRMultiVectorPrint +HYPRE_ParCSRMultiVectorRead +HYPRE_ParCSRSetupInterpreter +HYPRE_ParCSRSetupMatvec +hypre_ParPrintVector +hypre_ParReadVector +hypre_ParSetRandomValues +hypre_ParVectorSize +HYPRE_TempParCSRSetupInterpreter +HYPRE_ParCSRLGMRESCreate +HYPRE_ParCSRLGMRESDestroy +HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm +HYPRE_ParCSRLGMRESGetNumIterations +HYPRE_ParCSRLGMRESGetPrecond +HYPRE_ParCSRLGMRESGetResidual +HYPRE_ParCSRLGMRESSetAbsoluteTol +HYPRE_ParCSRLGMRESSetAugDim +HYPRE_ParCSRLGMRESSetKDim +HYPRE_ParCSRLGMRESSetLogging +HYPRE_ParCSRLGMRESSetMaxIter +HYPRE_ParCSRLGMRESSetMinIter +HYPRE_ParCSRLGMRESSetPrecond +HYPRE_ParCSRLGMRESSetPrintLevel +HYPRE_ParCSRLGMRESSetTol +HYPRE_ParCSRLGMRESSetup +HYPRE_ParCSRLGMRESSolve +HYPRE_MGRBuildAff +HYPRE_MGRCreate +HYPRE_MGRDestroy +HYPRE_MGRGetCoarseGridConvergenceFactor +HYPRE_MGRGetFinalRelativeResidualNorm +HYPRE_MGRGetNumIterations +HYPRE_MGRSetBlockJacobiBlockSize +HYPRE_MGRSetBlockSize +HYPRE_MGRSetCoarseGridMethod +HYPRE_MGRSetCoarseGridPrintLevel +HYPRE_MGRSetCoarseSolver +HYPRE_MGRSetCpointsByBlock +HYPRE_MGRSetCpointsByContiguousBlock +HYPRE_MGRSetCpointsByPointMarkerArray +HYPRE_MGRSetFRelaxMethod +HYPRE_MGRSetFrelaxPrintLevel +HYPRE_MGRSetFSolver +HYPRE_MGRSetFSolverAtLevel +HYPRE_MGRSetGlobalSmoothCycle +HYPRE_MGRSetGlobalSmootherAtLevel +HYPRE_MGRSetGlobalSmoothType +HYPRE_MGRSetInterpType +HYPRE_MGRSetLevelFRelaxMethod +HYPRE_MGRSetLevelFRelaxNumFunctions +HYPRE_MGRSetLevelFRelaxType +HYPRE_MGRSetLevelInterpType +HYPRE_MGRSetLevelNonGalerkinMaxElmts +HYPRE_MGRSetLevelNumRelaxSweeps +HYPRE_MGRSetLevelPMaxElmts +HYPRE_MGRSetLevelRestrictType +HYPRE_MGRSetLevelSmoothIters +HYPRE_MGRSetLevelSmoothType +HYPRE_MGRSetLogging +HYPRE_MGRSetMaxCoarseLevels +HYPRE_MGRSetMaxGlobalSmoothIters +HYPRE_MGRSetMaxIter +HYPRE_MGRSetNonCpointsToFpoints +HYPRE_MGRSetNonGalerkinMaxElmts +HYPRE_MGRSetNumInterpSweeps +HYPRE_MGRSetNumRelaxSweeps +HYPRE_MGRSetNumRestrictSweeps +HYPRE_MGRSetPMaxElmts +HYPRE_MGRSetPrintLevel +HYPRE_MGRSetRelaxType +HYPRE_MGRSetReservedCoarseNodes +HYPRE_MGRSetReservedCpointsLevelToKeep +HYPRE_MGRSetRestrictType +HYPRE_MGRSetTol +HYPRE_MGRSetTruncateCoarseGridThreshold +HYPRE_MGRSetup +HYPRE_MGRSolve +HYPRE_ParaSailsBuildIJMatrix +HYPRE_ParaSailsCreate +HYPRE_ParaSailsDestroy +HYPRE_ParaSailsGetFilter +HYPRE_ParaSailsGetLoadbal +HYPRE_ParaSailsGetLogging +HYPRE_ParaSailsGetNlevels +HYPRE_ParaSailsGetReuse +HYPRE_ParaSailsGetSym +HYPRE_ParaSailsGetThresh +HYPRE_ParaSailsSetFilter +HYPRE_ParaSailsSetLoadbal +HYPRE_ParaSailsSetLogging +HYPRE_ParaSailsSetNlevels +HYPRE_ParaSailsSetParams +HYPRE_ParaSailsSetReuse +HYPRE_ParaSailsSetSym +HYPRE_ParaSailsSetThresh +HYPRE_ParaSailsSetup +HYPRE_ParaSailsSolve +HYPRE_ParCSRParaSailsCreate +HYPRE_ParCSRParaSailsDestroy +HYPRE_ParCSRParaSailsGetFilter +HYPRE_ParCSRParaSailsGetLoadbal +HYPRE_ParCSRParaSailsSetFilter +HYPRE_ParCSRParaSailsSetLoadbal +HYPRE_ParCSRParaSailsSetLogging +HYPRE_ParCSRParaSailsSetParams +HYPRE_ParCSRParaSailsSetReuse +HYPRE_ParCSRParaSailsSetSym +HYPRE_ParCSRParaSailsSetup +HYPRE_ParCSRParaSailsSolve +HYPRE_ParCSRDiagScale +HYPRE_ParCSRDiagScaleSetup +HYPRE_ParCSRPCGCreate +HYPRE_ParCSRPCGDestroy +HYPRE_ParCSRPCGGetFinalRelativeResidualNorm +HYPRE_ParCSRPCGGetNumIterations +HYPRE_ParCSRPCGGetPrecond +HYPRE_ParCSRPCGGetResidual +HYPRE_ParCSRPCGSetAbsoluteTol +HYPRE_ParCSRPCGSetLogging +HYPRE_ParCSRPCGSetMaxIter +HYPRE_ParCSRPCGSetPrecond +HYPRE_ParCSRPCGSetPreconditioner +HYPRE_ParCSRPCGSetPrintLevel +HYPRE_ParCSRPCGSetRelChange +HYPRE_ParCSRPCGSetStopCrit +HYPRE_ParCSRPCGSetTol +HYPRE_ParCSRPCGSetTwoNorm +HYPRE_ParCSRPCGSetup +HYPRE_ParCSRPCGSolve +HYPRE_ParCSRPilutCreate +HYPRE_ParCSRPilutDestroy +HYPRE_ParCSRPilutSetDropTolerance +HYPRE_ParCSRPilutSetFactorRowSize +HYPRE_ParCSRPilutSetLogging +HYPRE_ParCSRPilutSetMaxIter +HYPRE_ParCSRPilutSetup +HYPRE_ParCSRPilutSolve +HYPRE_SchwarzCreate +HYPRE_SchwarzDestroy +HYPRE_SchwarzSetDofFunc +HYPRE_SchwarzSetDomainStructure +HYPRE_SchwarzSetDomainType +HYPRE_SchwarzSetNonSymm +HYPRE_SchwarzSetNumFunctions +HYPRE_SchwarzSetOverlap +HYPRE_SchwarzSetRelaxWeight +HYPRE_SchwarzSetup +HYPRE_SchwarzSetVariant +HYPRE_SchwarzSolve +hypre_BoomerAMGBuildModPartialExtInterp +hypre_BoomerAMGBuildModPartialExtInterpHost +hypre_BoomerAMGBuildModPartialExtPEInterp +hypre_BoomerAMGBuildModPartialExtPEInterpHost +hypre_BoomerAMGAdditiveCycle +hypre_CreateDinv +hypre_CreateLambda +hypre_AMGDDCommPkgCreate +hypre_AMGDDCommPkgDestroy +hypre_AMGDDCommPkgRecvLevelDestroy +hypre_AMGDDCommPkgSendLevelDestroy +hypre_AMGDDCompGridCreate +hypre_AMGDDCompGridDestroy +hypre_AMGDDCompGridFinalize +hypre_AMGDDCompGridInitialize +hypre_AMGDDCompGridLocalIndexBinarySearch +hypre_AMGDDCompGridMatrixCreate +hypre_AMGDDCompGridMatrixDestroy +hypre_AMGDDCompGridMatrixSetupRealMatvec +hypre_AMGDDCompGridMatvec +hypre_AMGDDCompGridRealMatvec +hypre_AMGDDCompGridResize +hypre_AMGDDCompGridSetupLocalIndices +hypre_AMGDDCompGridSetupLocalIndicesP +hypre_AMGDDCompGridSetupRelax +hypre_AMGDDCompGridVectorAxpy +hypre_AMGDDCompGridVectorCopy +hypre_AMGDDCompGridVectorCreate +hypre_AMGDDCompGridVectorDestroy +hypre_AMGDDCompGridVectorInitialize +hypre_AMGDDCompGridVectorInnerProd +hypre_AMGDDCompGridVectorRealAxpy +hypre_AMGDDCompGridVectorRealCopy +hypre_AMGDDCompGridVectorRealInnerProd +hypre_AMGDDCompGridVectorRealScale +hypre_AMGDDCompGridVectorRealSetConstantValues +hypre_AMGDDCompGridVectorScale +hypre_AMGDDCompGridVectorSetConstantValues +hypre_BoomerAMGDD_FAC +hypre_BoomerAMGDD_FAC_CFL1Jacobi +hypre_BoomerAMGDD_FAC_CFL1JacobiHost +hypre_BoomerAMGDD_FAC_Cycle +hypre_BoomerAMGDD_FAC_FCycle +hypre_BoomerAMGDD_FAC_GaussSeidel +hypre_BoomerAMGDD_FAC_Interpolate +hypre_BoomerAMGDD_FAC_Jacobi +hypre_BoomerAMGDD_FAC_JacobiHost +hypre_BoomerAMGDD_FAC_OrderedGaussSeidel +hypre_BoomerAMGDD_FAC_Relax +hypre_BoomerAMGDD_FAC_Restrict +hypre_BoomerAMGDD_AddFlagToSendFlag +hypre_BoomerAMGDD_AddToSendAndRequestDofs +hypre_BoomerAMGDD_CommunicateRemainingMatrixInfo +hypre_BoomerAMGDD_FindNeighborProcessors +hypre_BoomerAMGDD_FixUpRecvMaps +hypre_BoomerAMGDD_GetDofRecvProc +hypre_BoomerAMGDD_LocalToGlobalIndex +hypre_BoomerAMGDD_MarkCoarse +hypre_BoomerAMGDD_PackColInd +hypre_BoomerAMGDD_PackRecvMapSendBuffer +hypre_BoomerAMGDD_PackSendBuffer +hypre_BoomerAMGDD_RecursivelyBuildPsiComposite +hypre_BoomerAMGDD_RecursivelyFindNeighborNodes +hypre_BoomerAMGDD_RemoveRedundancy +hypre_BoomerAMGDD_SetupNearestProcessorNeighbors +hypre_BoomerAMGDD_SubtractLists +hypre_BoomerAMGDD_UnpackRecvBuffer +hypre_BoomerAMGDD_UnpackSendFlagBuffer +hypre_BoomerAMGDDCreate +hypre_BoomerAMGDDDestroy +hypre_BoomerAMGDDGetAMG +hypre_BoomerAMGDDGetFACCycleType +hypre_BoomerAMGDDGetFACNumCycles +hypre_BoomerAMGDDGetFACNumRelax +hypre_BoomerAMGDDGetFACRelaxType +hypre_BoomerAMGDDGetFACRelaxWeight +hypre_BoomerAMGDDGetNumGhostLayers +hypre_BoomerAMGDDGetPadding +hypre_BoomerAMGDDGetStartLevel +hypre_BoomerAMGDDSetFACCycleType +hypre_BoomerAMGDDSetFACNumCycles +hypre_BoomerAMGDDSetFACNumRelax +hypre_BoomerAMGDDSetFACRelaxType +hypre_BoomerAMGDDSetFACRelaxWeight +hypre_BoomerAMGDDSetNumGhostLayers +hypre_BoomerAMGDDSetPadding +hypre_BoomerAMGDDSetStartLevel +hypre_BoomerAMGDDSetUserFACRelaxation +hypre_BoomerAMGDDSetup +hypre_BoomerAMGDD_PackResidualBuffer +hypre_BoomerAMGDD_ResidualCommunication +hypre_BoomerAMGDDSolve +hypre_BoomerAMGDD_UnpackResidualBuffer +hypre_BoomerAMGCreate +hypre_BoomerAMGDestroy +hypre_BoomerAMGGetAdditive +hypre_BoomerAMGGetCoarsenCutFactor +hypre_BoomerAMGGetCoarsenType +hypre_BoomerAMGGetConvergeType +hypre_BoomerAMGGetCumNnzAP +hypre_BoomerAMGGetCumNumIterations +hypre_BoomerAMGGetCycleNumSweeps +hypre_BoomerAMGGetCycleRelaxType +hypre_BoomerAMGGetCycleType +hypre_BoomerAMGGetDebugFlag +hypre_BoomerAMGGetDomainType +hypre_BoomerAMGGetFCycle +hypre_BoomerAMGGetFilterFunctions +hypre_BoomerAMGGetFilterThresholdR +hypre_BoomerAMGGetGridHierarchy +hypre_BoomerAMGGetGridRelaxPoints +hypre_BoomerAMGGetGridRelaxType +hypre_BoomerAMGGetInterpType +hypre_BoomerAMGGetJacobiTruncThreshold +hypre_BoomerAMGGetLevelOuterWt +hypre_BoomerAMGGetLevelRelaxWt +hypre_BoomerAMGGetLogging +hypre_BoomerAMGGetMaxCoarseSize +hypre_BoomerAMGGetMaxIter +hypre_BoomerAMGGetMaxLevels +hypre_BoomerAMGGetMaxRowSum +hypre_BoomerAMGGetMeasureType +hypre_BoomerAMGGetMinCoarseSize +hypre_BoomerAMGGetMinIter +hypre_BoomerAMGGetMultAdditive +hypre_BoomerAMGGetNumFunctions +hypre_BoomerAMGGetNumGridSweeps +hypre_BoomerAMGGetNumIterations +hypre_BoomerAMGGetOmega +hypre_BoomerAMGGetOverlap +hypre_BoomerAMGGetPMaxElmts +hypre_BoomerAMGGetPostInterpType +hypre_BoomerAMGGetPrintFileName +hypre_BoomerAMGGetPrintLevel +hypre_BoomerAMGGetRedundant +hypre_BoomerAMGGetRelaxOrder +hypre_BoomerAMGGetRelaxWeight +hypre_BoomerAMGGetRelResidualNorm +hypre_BoomerAMGGetResidual +hypre_BoomerAMGGetSchwarzRlxWeight +hypre_BoomerAMGGetSeqThreshold +hypre_BoomerAMGGetSetupType +hypre_BoomerAMGGetSimple +hypre_BoomerAMGGetSmoothNumLevels +hypre_BoomerAMGGetSmoothNumSweeps +hypre_BoomerAMGGetSmoothType +hypre_BoomerAMGGetStrongThreshold +hypre_BoomerAMGGetStrongThresholdR +hypre_BoomerAMGGetTol +hypre_BoomerAMGGetTruncFactor +hypre_BoomerAMGGetVariant +hypre_BoomerAMGSetAdditive +hypre_BoomerAMGSetAddLastLvl +hypre_BoomerAMGSetAddRelaxType +hypre_BoomerAMGSetAddRelaxWt +hypre_BoomerAMGSetADropTol +hypre_BoomerAMGSetADropType +hypre_BoomerAMGSetAggInterpType +hypre_BoomerAMGSetAggNumLevels +hypre_BoomerAMGSetAggP12MaxElmts +hypre_BoomerAMGSetAggP12TruncFactor +hypre_BoomerAMGSetAggPMaxElmts +hypre_BoomerAMGSetAggTruncFactor +hypre_BoomerAMGSetCGCIts +hypre_BoomerAMGSetChebyEigEst +hypre_BoomerAMGSetChebyFraction +hypre_BoomerAMGSetChebyOrder +hypre_BoomerAMGSetChebyScale +hypre_BoomerAMGSetChebyVariant +hypre_BoomerAMGSetCoarsenCutFactor +hypre_BoomerAMGSetCoarsenType +hypre_BoomerAMGSetConvergeType +hypre_BoomerAMGSetCoordDim +hypre_BoomerAMGSetCoordinates +hypre_BoomerAMGSetCPoints +hypre_BoomerAMGSetCRRate +hypre_BoomerAMGSetCRStrongTh +hypre_BoomerAMGSetCRUseCG +hypre_BoomerAMGSetCumNnzAP +hypre_BoomerAMGSetCycleNumSweeps +hypre_BoomerAMGSetCycleRelaxType +hypre_BoomerAMGSetCycleType +hypre_BoomerAMGSetDebugFlag +hypre_BoomerAMGSetDofFunc +hypre_BoomerAMGSetDofPoint +hypre_BoomerAMGSetDomainType +hypre_BoomerAMGSetDropTol +hypre_BoomerAMGSetEuBJ +hypre_BoomerAMGSetEuclidFile +hypre_BoomerAMGSetEuLevel +hypre_BoomerAMGSetEuSparseA +hypre_BoomerAMGSetFCycle +hypre_BoomerAMGSetFilter +hypre_BoomerAMGSetFilterFunctions +hypre_BoomerAMGSetFilterThresholdR +hypre_BoomerAMGSetFPoints +hypre_BoomerAMGSetFSAIAlgoType +hypre_BoomerAMGSetFSAIEigMaxIters +hypre_BoomerAMGSetFSAIKapTolerance +hypre_BoomerAMGSetFSAILocalSolveType +hypre_BoomerAMGSetFSAIMaxNnzRow +hypre_BoomerAMGSetFSAIMaxSteps +hypre_BoomerAMGSetFSAIMaxStepSize +hypre_BoomerAMGSetFSAINumLevels +hypre_BoomerAMGSetFSAIThreshold +hypre_BoomerAMGSetGMRESSwitchR +hypre_BoomerAMGSetGridRelaxPoints +hypre_BoomerAMGSetGridRelaxType +hypre_BoomerAMGSetGSMG +hypre_BoomerAMGSetILUDroptol +hypre_BoomerAMGSetILUIterSetupMaxIter +hypre_BoomerAMGSetILUIterSetupOption +hypre_BoomerAMGSetILUIterSetupTolerance +hypre_BoomerAMGSetILUIterSetupType +hypre_BoomerAMGSetILULevel +hypre_BoomerAMGSetILULocalReordering +hypre_BoomerAMGSetILULowerJacobiIters +hypre_BoomerAMGSetILUMaxIter +hypre_BoomerAMGSetILUMaxRowNnz +hypre_BoomerAMGSetILUTriSolve +hypre_BoomerAMGSetILUType +hypre_BoomerAMGSetILUUpperJacobiIters +hypre_BoomerAMGSetInterpRefine +hypre_BoomerAMGSetInterpType +hypre_BoomerAMGSetInterpVecAbsQTrunc +hypre_BoomerAMGSetInterpVecFirstLevel +hypre_BoomerAMGSetInterpVecQMax +hypre_BoomerAMGSetInterpVectors +hypre_BoomerAMGSetInterpVecVariant +hypre_BoomerAMGSetIsTriangular +hypre_BoomerAMGSetISType +hypre_BoomerAMGSetJacobiTruncThreshold +hypre_BoomerAMGSetKeepSameSign +hypre_BoomerAMGSetKeepTranspose +hypre_BoomerAMGSetLevel +hypre_BoomerAMGSetLevelNonGalerkinTol +hypre_BoomerAMGSetLevelOuterWt +hypre_BoomerAMGSetLevelRelaxWt +hypre_BoomerAMGSetLogging +hypre_BoomerAMGSetMaxCoarseSize +hypre_BoomerAMGSetMaxIter +hypre_BoomerAMGSetMaxLevels +hypre_BoomerAMGSetMaxNzPerRow +hypre_BoomerAMGSetMaxRowSum +hypre_BoomerAMGSetMeasureType +hypre_BoomerAMGSetMinCoarseSize +hypre_BoomerAMGSetMinIter +hypre_BoomerAMGSetModuleRAP2 +hypre_BoomerAMGSetMultAdditive +hypre_BoomerAMGSetMultAddPMaxElmts +hypre_BoomerAMGSetMultAddTruncFactor +hypre_BoomerAMGSetNodal +hypre_BoomerAMGSetNodalDiag +hypre_BoomerAMGSetNodalLevels +hypre_BoomerAMGSetNonGalerkinTol +hypre_BoomerAMGSetNonGalerkTol +hypre_BoomerAMGSetNumCRRelaxSteps +hypre_BoomerAMGSetNumFunctions +hypre_BoomerAMGSetNumGridSweeps +hypre_BoomerAMGSetNumIterations +hypre_BoomerAMGSetNumPaths +hypre_BoomerAMGSetNumPoints +hypre_BoomerAMGSetNumSamples +hypre_BoomerAMGSetNumSweeps +hypre_BoomerAMGSetOmega +hypre_BoomerAMGSetOuterWt +hypre_BoomerAMGSetOverlap +hypre_BoomerAMGSetPlotFileName +hypre_BoomerAMGSetPlotGrids +hypre_BoomerAMGSetPMaxElmts +hypre_BoomerAMGSetPointDofMap +hypre_BoomerAMGSetPostInterpType +hypre_BoomerAMGSetPrintFileName +hypre_BoomerAMGSetPrintLevel +hypre_BoomerAMGSetRAP2 +hypre_BoomerAMGSetRedundant +hypre_BoomerAMGSetRelaxOrder +hypre_BoomerAMGSetRelaxType +hypre_BoomerAMGSetRelaxWeight +hypre_BoomerAMGSetRelaxWt +hypre_BoomerAMGSetRestriction +hypre_BoomerAMGSetSabs +hypre_BoomerAMGSetSchwarzRlxWeight +hypre_BoomerAMGSetSchwarzUseNonSymm +hypre_BoomerAMGSetSepWeight +hypre_BoomerAMGSetSeqThreshold +hypre_BoomerAMGSetSetupType +hypre_BoomerAMGSetSimple +hypre_BoomerAMGSetSmoothInterpVectors +hypre_BoomerAMGSetSmoothNumLevels +hypre_BoomerAMGSetSmoothNumSweeps +hypre_BoomerAMGSetSmoothType +hypre_BoomerAMGSetStrongThreshold +hypre_BoomerAMGSetStrongThresholdR +hypre_BoomerAMGSetSym +hypre_BoomerAMGSetThreshold +hypre_BoomerAMGSetTol +hypre_BoomerAMGSetTruncFactor +hypre_BoomerAMGSetVariant +hypre_BoomerAMGSetup +hypre_BoomerAMGSolve +hypre_BoomerAMGCycleT +hypre_BoomerAMGRelaxT +hypre_BoomerAMGSolveT +hypre_AmgCGCBoundaryFix +hypre_AmgCGCChoose +hypre_AmgCGCGraphAssemble +hypre_AmgCGCPrepare +hypre_BoomerAMGCoarsenCGC +hypre_BoomerAMGCoarsenCGCb +hypre_Bisection +hypre_BoomerAMGCGRelaxWt +hypre_ParCSRRelax_Cheby_Setup +hypre_ParCSRRelax_Cheby_Solve +hypre_ParCSRRelax_Cheby_SolveHost +hypre_BoomerAMGCoarsen +hypre_BoomerAMGCoarsenFalgout +hypre_BoomerAMGCoarsenHMIS +hypre_BoomerAMGCoarsenPMIS +hypre_BoomerAMGCoarsenPMISHost +hypre_BoomerAMGCoarsenRuge +hypre_BoomerAMGCoarseParms +hypre_BoomerAMGCoarseParmsHost +hypre_GenerateCoordinates +hypre_BoomerAMGCoarsenCR +hypre_BoomerAMGCoarsenCR1 +hypre_BoomerAMGIndepHMIS +hypre_BoomerAMGIndepHMISa +hypre_BoomerAMGIndepPMIS +hypre_BoomerAMGIndepPMISa +hypre_BoomerAMGIndepRS +hypre_BoomerAMGIndepRSa +hypre_cr +hypre_formu +hypre_fptgscr +hypre_fptjaccr +hypre_GraphAdd +hypre_GraphRemove +hypre_IndepSetGreedy +hypre_IndepSetGreedyS +hypre_BoomerAMGCycle +GenerateDifConv +hypre_FSAICreate +hypre_FSAIDestroy +hypre_FSAIGetAlgoType +hypre_FSAIGetEigMaxIters +hypre_FSAIGetKapTolerance +hypre_FSAIGetLocalSolveType +hypre_FSAIGetLogging +hypre_FSAIGetMaxIterations +hypre_FSAIGetMaxNnzRow +hypre_FSAIGetMaxSteps +hypre_FSAIGetMaxStepSize +hypre_FSAIGetNumIterations +hypre_FSAIGetNumLevels +hypre_FSAIGetOmega +hypre_FSAIGetPrintLevel +hypre_FSAIGetThreshold +hypre_FSAIGetTolerance +hypre_FSAIGetZeroGuess +hypre_FSAISetAlgoType +hypre_FSAISetEigMaxIters +hypre_FSAISetKapTolerance +hypre_FSAISetLocalSolveType +hypre_FSAISetLogging +hypre_FSAISetMaxIterations +hypre_FSAISetMaxNnzRow +hypre_FSAISetMaxSteps +hypre_FSAISetMaxStepSize +hypre_FSAISetNumIterations +hypre_FSAISetNumLevels +hypre_FSAISetOmega +hypre_FSAISetPrintLevel +hypre_FSAISetThreshold +hypre_FSAISetTolerance +hypre_FSAISetZeroGuess +hypre_AddToPattern +hypre_CSRMatrixExtractDenseMat +hypre_CSRMatrixExtractDenseRow +hypre_DenseSPDSystemSolve +hypre_FindKapGrad +hypre_FSAIComputeOmega +hypre_FSAIDumpLocalLSDense +hypre_FSAIPrintStats +hypre_FSAISetup +hypre_FSAISetupNative +hypre_FSAISetupOMPDyn +hypre_PartialSelectSortCI +hypre_qsort2_ci +hypre_swap2_ci +hypre_FSAIApply +hypre_FSAISolve +hypre_GaussElimSetup +hypre_GaussElimSolve +hypre_BoomerAMGBuildInterpGSMG +hypre_BoomerAMGBuildInterpLS +hypre_BoomerAMGCreateSmoothDirs +hypre_BoomerAMGCreateSmoothVecs +hypre_BoomerAMGFitVectors +hypre_BoomerAMGNormalizeVecs +hypre_ParCSRMatrixChooseThresh +hypre_ParCSRMatrixFillSmooth +hypre_ParCSRMatrixThreshold +hypre_CSRMatrixDropInplace +hypre_CSRMatrixNormFro +hypre_CSRMatrixResNormFro +hypre_CSRMatrixTrace +hypre_ILUBuildRASExternalMatrix +hypre_ILUCreate +hypre_ILUCSRMatrixInverseSelfPrecondMRGlobal +hypre_ILUDestroy +hypre_ILUGetFinalRelativeResidualNorm +hypre_ILUGetInteriorExteriorPerm +hypre_ILUGetIterativeSetupHistory +hypre_ILUGetLocalPerm +hypre_ILUGetNumIterations +hypre_ILUGetPermddPQ +hypre_ILUGetPermddPQPre +hypre_ILULocalRCM +hypre_ILULocalRCMBuildFinalPerm +hypre_ILULocalRCMBuildLevel +hypre_ILULocalRCMFindPPNode +hypre_ILULocalRCMMindegree +hypre_ILULocalRCMNumbering +hypre_ILULocalRCMOrder +hypre_ILULocalRCMQsort +hypre_ILULocalRCMReverse +hypre_ILUMaxQSplitRabsI +hypre_ILUMaxRabs +hypre_ILUMaxrHeapAddRabsI +hypre_ILUMaxrHeapRemoveRabsI +hypre_ILUMinHeapAddI +hypre_ILUMinHeapAddIIIi +hypre_ILUMinHeapAddIRIi +hypre_ILUMinHeapRemoveI +hypre_ILUMinHeapRemoveIIIi +hypre_ILUMinHeapRemoveIRIi +hypre_ILUParCSRInverseNSH +hypre_ILUSetDropThreshold +hypre_ILUSetDropThresholdArray +hypre_ILUSetIterativeSetupMaxIter +hypre_ILUSetIterativeSetupOption +hypre_ILUSetIterativeSetupTolerance +hypre_ILUSetIterativeSetupType +hypre_ILUSetLevelOfFill +hypre_ILUSetLocalReordering +hypre_ILUSetLogging +hypre_ILUSetLowerJacobiIters +hypre_ILUSetMaxIter +hypre_ILUSetMaxNnzPerRow +hypre_ILUSetPrintLevel +hypre_ILUSetSchurNSHDropThreshold +hypre_ILUSetSchurNSHDropThresholdArray +hypre_ILUSetSchurPrecondILUDropThreshold +hypre_ILUSetSchurPrecondILUDropThresholdArray +hypre_ILUSetSchurPrecondILULevelOfFill +hypre_ILUSetSchurPrecondILUMaxNnzPerRow +hypre_ILUSetSchurPrecondILUType +hypre_ILUSetSchurPrecondLowerJacobiIters +hypre_ILUSetSchurPrecondMaxIter +hypre_ILUSetSchurPrecondPrintLevel +hypre_ILUSetSchurPrecondTol +hypre_ILUSetSchurPrecondTriSolve +hypre_ILUSetSchurPrecondUpperJacobiIters +hypre_ILUSetSchurSolverAbsoluteTol +hypre_ILUSetSchurSolverKDIM +hypre_ILUSetSchurSolverLogging +hypre_ILUSetSchurSolverMaxIter +hypre_ILUSetSchurSolverPrintLevel +hypre_ILUSetSchurSolverRelChange +hypre_ILUSetSchurSolverTol +hypre_ILUSetTol +hypre_ILUSetTriSolve +hypre_ILUSetType +hypre_ILUSetUpperJacobiIters +hypre_ILUSortOffdColmap +hypre_ILUWriteSolverParams +hypre_NSHCreate +hypre_NSHDestroy +hypre_NSHSetColVersion +hypre_NSHSetDropThreshold +hypre_NSHSetDropThresholdArray +hypre_NSHSetGlobalSolver +hypre_NSHSetLogging +hypre_NSHSetMaxIter +hypre_NSHSetMRMaxIter +hypre_NSHSetMRMaxRowNnz +hypre_NSHSetMRTol +hypre_NSHSetNSHMaxIter +hypre_NSHSetNSHMaxRowNnz +hypre_NSHSetNSHTol +hypre_NSHSetPrintLevel +hypre_NSHSetTol +hypre_NSHWriteSolverParams +hypre_ParCSRMatrixNormFro +hypre_ParCSRMatrixResNormFro +hypre_ParILURAPSchurGMRESCommInfoHost +hypre_ParILURAPSchurGMRESMatvecHost +hypre_ParILURAPSchurGMRESSolveHost +hypre_ILUSetup +hypre_ILUSetupILU0 +hypre_ILUSetupILU0RAS +hypre_ILUSetupILUK +hypre_ILUSetupILUKRAS +hypre_ILUSetupILUKRASSymbolic +hypre_ILUSetupILUKSymbolic +hypre_ILUSetupILUT +hypre_ILUSetupILUTRAS +hypre_ILUSetupLDUtoCusparse +hypre_ILUSetupMILU0 +hypre_ILUSetupRAPILU0 +hypre_ILUSetupRAPILU0Device +hypre_ILUSetupRAPMILU0 +hypre_NSHSetup +hypre_ParILUExtractEBFC +hypre_ParILURAPReorder +hypre_ILUSolve +hypre_ILUSolveLU +hypre_ILUSolveLUIter +hypre_ILUSolveLURAS +hypre_ILUSolveRAPGMRESHost +hypre_ILUSolveSchurGMRES +hypre_ILUSolveSchurNSH +hypre_NSHSolve +hypre_NSHSolveInverse +hypre_BoomerAMGIndepSet +hypre_BoomerAMGIndepSetInit +hypre_BoomerAMGBuildDirInterp +hypre_BoomerAMGBuildDirInterpHost +hypre_BoomerAMGBuildInterp +hypre_BoomerAMGBuildInterpHE +hypre_BoomerAMGBuildInterpModUnk +hypre_BoomerAMGBuildInterpOnePnt +hypre_BoomerAMGBuildInterpOnePntHost +hypre_BoomerAMGInterpTruncation +hypre_BoomerAMGTruncandBuild +hypre_CreateC +hypre_BoomerAMGJacobiInterp +hypre_BoomerAMGJacobiInterp_1 +hypre_BoomerAMGTruncateInterp +hypre_ParCSRMatrix_dof_func_offd +hypre_ParKrylovAxpy +hypre_ParKrylovCAlloc +hypre_ParKrylovClearVector +hypre_ParKrylovCommInfo +hypre_ParKrylovCopyVector +hypre_ParKrylovCreateVector +hypre_ParKrylovCreateVectorArray +hypre_ParKrylovDestroyVector +hypre_ParKrylovFree +hypre_ParKrylovIdentity +hypre_ParKrylovIdentitySetup +hypre_ParKrylovInnerProd +hypre_ParKrylovMassAxpy +hypre_ParKrylovMassDotpTwo +hypre_ParKrylovMassInnerProd +hypre_ParKrylovMatvec +hypre_ParKrylovMatvecCreate +hypre_ParKrylovMatvecDestroy +hypre_ParKrylovMatvecT +hypre_ParKrylovScaleVector +GenerateLaplacian27pt +GenerateLaplacian9pt +hypre_map2 +GenerateLaplacian +GenerateSysLaplacian +GenerateSysLaplacianVCoef +hypre_map +hypre_BoomerAMGBuildExtInterp +hypre_BoomerAMGBuildExtInterpHost +hypre_BoomerAMGBuildExtPICCInterp +hypre_BoomerAMGBuildExtPIInterp +hypre_BoomerAMGBuildExtPIInterpHost +hypre_BoomerAMGBuildFF1Interp +hypre_BoomerAMGBuildFFInterp +hypre_BoomerAMGBuildStdInterp +hypre_BoomerAMGBuildRestrDist2AIR +hypre_BoomerAMGBuildRestrNeumannAIR +hypre_BoomerAMGBuildRestrNeumannAIRHost +hypre_MGRCoarseParms +hypre_ExtendWtoPHost +hypre_MGRBlockColLumpedRestrict +hypre_MGRBuildBlockJacobiP +hypre_MGRBuildBlockJacobiWp +hypre_MGRBuildInterp +hypre_MGRBuildInterpApproximateInverse +hypre_MGRBuildP +hypre_MGRBuildPDRS +hypre_MGRBuildPFromWp +hypre_MGRBuildPFromWpHost +hypre_MGRBuildPHost +hypre_MGRBuildRestrict +hypre_MGRBuildRFromW +hypre_MGRBuildRFromWHost +hypre_MGRColLumpedRestrict +hypre_MGRTruncateAcfCPR +hypre_MGRTruncateAcfCPRDevice +hypre_blas_mat_inv +hypre_blas_smat_inv_n2 +hypre_blas_smat_inv_n3 +hypre_blas_smat_inv_n4 +hypre_BlockDiagInvLapack +hypre_block_jacobi_solve +hypre_MGRAddVectorP +hypre_MGRAddVectorR +hypre_MGRApproximateInverse +hypre_MGRBlockRelaxSetup +hypre_MGRBlockRelaxSolve +hypre_MGRBlockRelaxSolveDevice +hypre_MGRBuildAff +hypre_MGRCoarsen +hypre_MGRComputeAlgebraicFixedStress +hypre_MGRCreate +hypre_MGRCreateFrelaxVcycleData +hypre_MGRCreateGSElimData +hypre_MGRDataPrint +hypre_MGRDestroy +hypre_MGRDestroyFrelaxVcycleData +hypre_MGRDestroyGSElimData +hypre_MGRGetCoarseGridConvergenceFactor +hypre_MGRGetCoarseGridMatrix +hypre_MGRGetCoarseGridRHS +hypre_MGRGetCoarseGridSolution +hypre_MGRGetFinalRelativeResidualNorm +hypre_MGRGetNumIterations +hypre_MGRGetSubBlock +hypre_MGRPrintCoarseSystem +hypre_MGRSetBlockJacobiBlockSize +hypre_MGRSetBlockSize +hypre_MGRSetCoarseGridMethod +hypre_MGRSetCoarseGridPrintLevel +hypre_MGRSetCoarseSolver +hypre_MGRSetCpointsByBlock +hypre_MGRSetCpointsByContiguousBlock +hypre_MGRSetCpointsByPointMarkerArray +hypre_MGRSetFRelaxMethod +hypre_MGRSetFrelaxPrintLevel +hypre_MGRSetFSolver +hypre_MGRSetFSolverAtLevel +hypre_MGRSetGlobalSmoothCycle +hypre_MGRSetGlobalSmootherAtLevel +hypre_MGRSetGlobalSmoothType +hypre_MGRSetInterpType +hypre_MGRSetLevelFRelaxMethod +hypre_MGRSetLevelFRelaxNumFunctions +hypre_MGRSetLevelFRelaxType +hypre_MGRSetLevelInterpType +hypre_MGRSetLevelNonGalerkinMaxElmts +hypre_MGRSetLevelNumRelaxSweeps +hypre_MGRSetLevelPMaxElmts +hypre_MGRSetLevelRestrictType +hypre_MGRSetLevelSmoothIters +hypre_MGRSetLevelSmoothType +hypre_MGRSetLogging +hypre_MGRSetMaxCoarseLevels +hypre_MGRSetMaxGlobalSmoothIters +hypre_MGRSetMaxIter +hypre_MGRSetNonCpointsToFpoints +hypre_MGRSetNonGalerkinMaxElmts +hypre_MGRSetNumInterpSweeps +hypre_MGRSetNumRelaxSweeps +hypre_MGRSetNumRestrictSweeps +hypre_MGRSetPMaxElmts +hypre_MGRSetPrintLevel +hypre_MGRSetReductionLevelCpoints +hypre_MGRSetRelaxType +hypre_MGRSetReservedCoarseNodes +hypre_MGRSetReservedCpointsLevelToKeep +hypre_MGRSetRestrictType +hypre_MGRSetTol +hypre_MGRSetTruncateCoarseGridThreshold +hypre_MGRSmallBlkInverse +hypre_ParCSRMatrixBlockDiagMatrix +hypre_ParCSRMatrixBlockDiagMatrixHost +hypre_ParCSRMatrixExtractBlockDiagHost +hypre_ParCSRMatrixLeftScale +hypre_MGRBuildCoarseOperator +hypre_MGRBuildNonGalerkinCoarseOperator +hypre_MGRBuildNonGalerkinCoarseOperatorDevice +hypre_MGRBuildNonGalerkinCoarseOperatorHost +hypre_MGRNonGalerkinTruncate +hypre_MGRSetup +hypre_MGRSetupFrelaxVcycleData +hypre_MGRCycle +hypre_MGRFrelaxVcycle +hypre_MGRSolve +hypre_MGRGetCoarseGridName +hypre_MGRGetFRelaxName +hypre_MGRGetGlobalRelaxName +hypre_MGRGetProlongationName +hypre_MGRGetRestrictionName +hypre_MGRSetupStats +hypre_BoomerAMGBuildModExtInterp +hypre_BoomerAMGBuildModExtInterpHost +hypre_BoomerAMGBuildModExtPEInterp +hypre_BoomerAMGBuildModExtPEInterpHost +hypre_BoomerAMGBuildModExtPIInterp +hypre_BoomerAMGBuildModExtPIInterpHost +hypre_BoomerAMGBuildModMultipass +hypre_BoomerAMGBuildModMultipassHost +hypre_GenerateMultipassPi +hypre_GenerateMultiPi +hypre_BoomerAMGBuildMultipass +hypre_BoomerAMGBuildMultipassHost +hypre_BoomerAMGCreateNodalA +hypre_BoomerAMGCreateScalarCF +hypre_BoomerAMGCreateScalarCFS +hypre_BoomerAMGBuildNonGalerkinCoarseOperator +hypre_BoomerAMG_MyCreateS +hypre_GrabSubArray +hypre_IntersectTwoArrays +hypre_IntersectTwoBigArrays +hypre_NonGalerkinIJBigBufferInit +hypre_NonGalerkinIJBufferCompress +hypre_NonGalerkinIJBufferCompressRow +hypre_NonGalerkinIJBufferEmpty +hypre_NonGalerkinIJBufferInit +hypre_NonGalerkinIJBufferNewRow +hypre_NonGalerkinIJBufferWrite +hypre_NonGalerkinSparsityPattern +hypre_SortedCopyParCSRData +hypre_GenerateSendMapAndCommPkg +hypre_GetCommPkgRTFromCommPkgA +hypre_BoomerAMGBuildCoarseOperator +hypre_BoomerAMGBuildCoarseOperatorKT +hypre_BoomerAMGRelax_FCFJacobi +hypre_BoomerAMGRelaxIF +hypre_ParCSRRelax_L1_Jacobi +hypre_LINPACKcgpthy +hypre_LINPACKcgtql1 +hypre_ParCSRMaxEigEstimate +hypre_ParCSRMaxEigEstimateCG +hypre_ParCSRMaxEigEstimateCGHost +hypre_ParCSRMaxEigEstimateHost +hypre_ParCSRRelax_CG +hypre_ParCSRRelax_Cheby +hypre_BoomerAMGRelax +hypre_BoomerAMGRelax0WeightedJacobi +hypre_BoomerAMGRelax10TopoOrderedGaussSeidel +hypre_BoomerAMGRelax11TwoStageGaussSeidel +hypre_BoomerAMGRelax12TwoStageGaussSeidel +hypre_BoomerAMGRelax13HybridL1GaussSeidel +hypre_BoomerAMGRelax14HybridL1GaussSeidel +hypre_BoomerAMGRelax18WeightedL1Jacobi +hypre_BoomerAMGRelax1GaussSeidel +hypre_BoomerAMGRelax2GaussSeidel +hypre_BoomerAMGRelax3HybridGaussSeidel +hypre_BoomerAMGRelax4HybridGaussSeidel +hypre_BoomerAMGRelax5ChaoticHybridGaussSeidel +hypre_BoomerAMGRelax6HybridSSOR +hypre_BoomerAMGRelax7Jacobi +hypre_BoomerAMGRelax89HybridL1SSOR +hypre_BoomerAMGRelax8HybridL1SSOR +hypre_BoomerAMGRelaxComputeL1Norms +hypre_BoomerAMGRelaxHybridGaussSeidel_core +hypre_BoomerAMGRelaxHybridSOR +hypre_BoomerAMGRelaxKaczmarz +hypre_BoomerAMGRelaxTwoStageGaussSeidelHost +hypre_BoomerAMGRelaxWeightedJacobi_core +hypre_BoomerAMGBuildRestrAIR +hypre_fgmresT +hypre_ordered_GS +GenerateRotate7pt +hypre_ParCSRMatrixScaledNorm +hypre_SchwarzCFSolve +hypre_SchwarzCreate +hypre_SchwarzDestroy +hypre_SchwarzReScale +hypre_SchwarzSetDofFunc +hypre_SchwarzSetDomainStructure +hypre_SchwarzSetDomainType +hypre_SchwarzSetNonSymm +hypre_SchwarzSetNumFunctions +hypre_SchwarzSetOverlap +hypre_SchwarzSetRelaxWeight +hypre_SchwarzSetScale +hypre_SchwarzSetup +hypre_SchwarzSetVariant +hypre_SchwarzSolve +hypre_BoomerAMGGetAggProlongationName +hypre_BoomerAMGGetCoarseningName +hypre_BoomerAMGGetCycleName +hypre_BoomerAMGGetProlongationName +hypre_BoomerAMGPrintGeneralInfo +hypre_BoomerAMGSetupStats +hypre_BoomerAMGWriteSolverParams +hypre_BoomerAMGCorrectCFMarker +hypre_BoomerAMGCorrectCFMarker2 +hypre_BoomerAMGCorrectCFMarker2Host +hypre_BoomerAMGCorrectCFMarkerHost +hypre_BoomerAMGCreate2ndS +hypre_BoomerAMGCreate2ndSHost +hypre_BoomerAMGCreateS +hypre_BoomerAMGCreateSabs +hypre_BoomerAMGCreateSabsHost +hypre_BoomerAMGCreateSCommPkg +hypre_BoomerAMGCreateSFromCFMarker +hypre_BoomerAMGCreateSHost +hypre_BoomerAMG_LNExpandInterp +hypre_BoomerAMGCoarsenInterpVectors +hypre_BoomerAMG_GMExpandInterp +hypre_BoomerAMGRefineInterp +hypre_BoomerAMGSmoothInterpVectors +hypre_BoomerAMGBuildPartialExtInterp +hypre_BoomerAMGBuildPartialExtPIInterp +hypre_BoomerAMGBuildPartialStdInterp +afun +bfun +bndfun +cfun +dfun +efun +ffun +GenerateVarDifConv +gfun +rfun +afun_rs +bfun_rs +bndfun_rs +cfun_rs +dfun_rs +efun_rs +ffun_rs +GenerateRSVarDifConv +gfun_rs +rfun_rs +hypre_AdSchwarzCFSolve +hypre_AdSchwarzSolve +hypre_AMGCreateDomainDof +hypre_AMGeAgglomerate +hypre_AMGNodalSchwarzSmoother +hypre_GenerateScale +hypre_matinv +hypre_move_entry +hypre_MPSchwarzCFFWSolve +hypre_MPSchwarzCFSolve +hypre_MPSchwarzFWSolve +hypre_MPSchwarzSolve +hypre_ParAdSchwarzSolve +hypre_ParAMGCreateDomainDof +hypre_parCorrRes +hypre_ParGenerateHybridScale +hypre_ParGenerateScale +hypre_ParMPSchwarzSolve +hypre_remove_entry +hypre_update_entry +matrix_matrix_product +transpose_matrix_create diff --git a/src/parcsr_ls/parcsr_ls_mup_func.h b/src/parcsr_ls/parcsr_ls_mup_func.h new file mode 100644 index 0000000000..066ec706d2 --- /dev/null +++ b/src/parcsr_ls/parcsr_ls_mup_func.h @@ -0,0 +1,2134 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_ls_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARCSR_LS_MUP_FUNC_HEADER +#define PARCSR_LS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_ADSComputePi HYPRE_MULTIPRECISION_FUNC ( hypre_ADSComputePi ) +#define hypre_ADSComputePixyz HYPRE_MULTIPRECISION_FUNC ( hypre_ADSComputePixyz ) +#define hypre_ADSCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ADSCreate ) +#define hypre_ADSDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ADSDestroy ) +#define hypre_ADSGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_ADSGetFinalRelativeResidualNorm ) +#define hypre_ADSGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_ADSGetNumIterations ) +#define hypre_ADSSetAMGOptions HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetAMGOptions ) +#define hypre_ADSSetAMSOptions HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetAMSOptions ) +#define hypre_ADSSetChebySmoothingOptions HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetChebySmoothingOptions ) +#define hypre_ADSSetCoordinateVectors HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetCoordinateVectors ) +#define hypre_ADSSetCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetCycleType ) +#define hypre_ADSSetDiscreteCurl HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetDiscreteCurl ) +#define hypre_ADSSetDiscreteGradient HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetDiscreteGradient ) +#define hypre_ADSSetInterpolations HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetInterpolations ) +#define hypre_ADSSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetMaxIter ) +#define hypre_ADSSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetPrintLevel ) +#define hypre_ADSSetSmoothingOptions HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetSmoothingOptions ) +#define hypre_ADSSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetTol ) +#define hypre_ADSSetup HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSetup ) +#define hypre_ADSSolve HYPRE_MULTIPRECISION_FUNC ( hypre_ADSSolve ) +#define hypre_AMECreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMECreate ) +#define hypre_AMEDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMEDestroy ) +#define hypre_AMEDiscrDivFreeComponent HYPRE_MULTIPRECISION_FUNC ( hypre_AMEDiscrDivFreeComponent ) +#define hypre_AMEGetEigenvalues HYPRE_MULTIPRECISION_FUNC ( hypre_AMEGetEigenvalues ) +#define hypre_AMEGetEigenvectors HYPRE_MULTIPRECISION_FUNC ( hypre_AMEGetEigenvectors ) +#define hypre_AMEMultiOperatorA HYPRE_MULTIPRECISION_FUNC ( hypre_AMEMultiOperatorA ) +#define hypre_AMEMultiOperatorB HYPRE_MULTIPRECISION_FUNC ( hypre_AMEMultiOperatorB ) +#define hypre_AMEMultiOperatorM HYPRE_MULTIPRECISION_FUNC ( hypre_AMEMultiOperatorM ) +#define hypre_AMEOperatorA HYPRE_MULTIPRECISION_FUNC ( hypre_AMEOperatorA ) +#define hypre_AMEOperatorB HYPRE_MULTIPRECISION_FUNC ( hypre_AMEOperatorB ) +#define hypre_AMEOperatorM HYPRE_MULTIPRECISION_FUNC ( hypre_AMEOperatorM ) +#define hypre_AMESetAMSSolver HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetAMSSolver ) +#define hypre_AMESetBlockSize HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetBlockSize ) +#define hypre_AMESetMassMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetMassMatrix ) +#define hypre_AMESetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetMaxIter ) +#define hypre_AMESetMaxPCGIter HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetMaxPCGIter ) +#define hypre_AMESetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetPrintLevel ) +#define hypre_AMESetRTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetRTol ) +#define hypre_AMESetTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetTol ) +#define hypre_AMESetup HYPRE_MULTIPRECISION_FUNC ( hypre_AMESetup ) +#define hypre_AMESolve HYPRE_MULTIPRECISION_FUNC ( hypre_AMESolve ) +#define hypre_AMGHybridCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridCreate ) +#define hypre_AMGHybridDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridDestroy ) +#define hypre_AMGHybridGetDSCGNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetDSCGNumIterations ) +#define hypre_AMGHybridGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetFinalRelativeResidualNorm ) +#define hypre_AMGHybridGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetNumIterations ) +#define hypre_AMGHybridGetPCGNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetPCGNumIterations ) +#define hypre_AMGHybridGetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetRecomputeResidual ) +#define hypre_AMGHybridGetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetRecomputeResidualP ) +#define hypre_AMGHybridGetSetupSolveTime HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridGetSetupSolveTime ) +#define hypre_AMGHybridSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetAbsoluteTol ) +#define hypre_AMGHybridSetAggInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetAggInterpType ) +#define hypre_AMGHybridSetAggNumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetAggNumLevels ) +#define hypre_AMGHybridSetCoarsenType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetCoarsenType ) +#define hypre_AMGHybridSetConvergenceTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetConvergenceTol ) +#define hypre_AMGHybridSetCycleNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetCycleNumSweeps ) +#define hypre_AMGHybridSetCycleRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetCycleRelaxType ) +#define hypre_AMGHybridSetCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetCycleType ) +#define hypre_AMGHybridSetDofFunc HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetDofFunc ) +#define hypre_AMGHybridSetDSCGMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetDSCGMaxIter ) +#define hypre_AMGHybridSetGridRelaxPoints HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetGridRelaxPoints ) +#define hypre_AMGHybridSetGridRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetGridRelaxType ) +#define hypre_AMGHybridSetInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetInterpType ) +#define hypre_AMGHybridSetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetKDim ) +#define hypre_AMGHybridSetKeepTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetKeepTranspose ) +#define hypre_AMGHybridSetLevelOuterWt HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetLevelOuterWt ) +#define hypre_AMGHybridSetLevelRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetLevelRelaxWt ) +#define hypre_AMGHybridSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetLogging ) +#define hypre_AMGHybridSetMaxCoarseSize HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetMaxCoarseSize ) +#define hypre_AMGHybridSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetMaxLevels ) +#define hypre_AMGHybridSetMaxRowSum HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetMaxRowSum ) +#define hypre_AMGHybridSetMeasureType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetMeasureType ) +#define hypre_AMGHybridSetMinCoarseSize HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetMinCoarseSize ) +#define hypre_AMGHybridSetNodal HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetNodal ) +#define hypre_AMGHybridSetNonGalerkinTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetNonGalerkinTol ) +#define hypre_AMGHybridSetNumFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetNumFunctions ) +#define hypre_AMGHybridSetNumGridSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetNumGridSweeps ) +#define hypre_AMGHybridSetNumPaths HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetNumPaths ) +#define hypre_AMGHybridSetNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetNumSweeps ) +#define hypre_AMGHybridSetOmega HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetOmega ) +#define hypre_AMGHybridSetOuterWt HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetOuterWt ) +#define hypre_AMGHybridSetPCGMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetPCGMaxIter ) +#define hypre_AMGHybridSetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetPMaxElmts ) +#define hypre_AMGHybridSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetPrecond ) +#define hypre_AMGHybridSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetPrintLevel ) +#define hypre_AMGHybridSetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRecomputeResidual ) +#define hypre_AMGHybridSetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRecomputeResidualP ) +#define hypre_AMGHybridSetRelaxOrder HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRelaxOrder ) +#define hypre_AMGHybridSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRelaxType ) +#define hypre_AMGHybridSetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRelaxWeight ) +#define hypre_AMGHybridSetRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRelaxWt ) +#define hypre_AMGHybridSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetRelChange ) +#define hypre_AMGHybridSetSeqThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetSeqThreshold ) +#define hypre_AMGHybridSetSetupType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetSetupType ) +#define hypre_AMGHybridSetSolverType HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetSolverType ) +#define hypre_AMGHybridSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetStopCrit ) +#define hypre_AMGHybridSetStrongThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetStrongThreshold ) +#define hypre_AMGHybridSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetTol ) +#define hypre_AMGHybridSetTruncFactor HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetTruncFactor ) +#define hypre_AMGHybridSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetTwoNorm ) +#define hypre_AMGHybridSetup HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSetup ) +#define hypre_AMGHybridSolve HYPRE_MULTIPRECISION_FUNC ( hypre_AMGHybridSolve ) +#define hypre_AMSComputeGPi HYPRE_MULTIPRECISION_FUNC ( hypre_AMSComputeGPi ) +#define hypre_AMSComputePi HYPRE_MULTIPRECISION_FUNC ( hypre_AMSComputePi ) +#define hypre_AMSComputePixyz HYPRE_MULTIPRECISION_FUNC ( hypre_AMSComputePixyz ) +#define hypre_AMSConstructDiscreteGradient HYPRE_MULTIPRECISION_FUNC ( hypre_AMSConstructDiscreteGradient ) +#define hypre_AMSCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMSCreate ) +#define hypre_AMSDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMSDestroy ) +#define hypre_AMSFEIDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMSFEIDestroy ) +#define hypre_AMSFEISetup HYPRE_MULTIPRECISION_FUNC ( hypre_AMSFEISetup ) +#define hypre_AMSGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_AMSGetFinalRelativeResidualNorm ) +#define hypre_AMSGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_AMSGetNumIterations ) +#define hypre_AMSProjectOutGradients HYPRE_MULTIPRECISION_FUNC ( hypre_AMSProjectOutGradients ) +#define hypre_AMSSetAlphaAMGCoarseRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetAlphaAMGCoarseRelaxType ) +#define hypre_AMSSetAlphaAMGOptions HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetAlphaAMGOptions ) +#define hypre_AMSSetAlphaPoissonMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetAlphaPoissonMatrix ) +#define hypre_AMSSetBetaAMGCoarseRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetBetaAMGCoarseRelaxType ) +#define hypre_AMSSetBetaAMGOptions HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetBetaAMGOptions ) +#define hypre_AMSSetBetaPoissonMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetBetaPoissonMatrix ) +#define hypre_AMSSetChebySmoothingOptions HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetChebySmoothingOptions ) +#define hypre_AMSSetCoordinateVectors HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetCoordinateVectors ) +#define hypre_AMSSetCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetCycleType ) +#define hypre_AMSSetDimension HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetDimension ) +#define hypre_AMSSetDiscreteGradient HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetDiscreteGradient ) +#define hypre_AMSSetEdgeConstantVectors HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetEdgeConstantVectors ) +#define hypre_AMSSetInteriorNodes HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetInteriorNodes ) +#define hypre_AMSSetInterpolations HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetInterpolations ) +#define hypre_AMSSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetMaxIter ) +#define hypre_AMSSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetPrintLevel ) +#define hypre_AMSSetProjectionFrequency HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetProjectionFrequency ) +#define hypre_AMSSetSmoothingOptions HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetSmoothingOptions ) +#define hypre_AMSSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetTol ) +#define hypre_AMSSetup HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSetup ) +#define hypre_AMSSolve HYPRE_MULTIPRECISION_FUNC ( hypre_AMSSolve ) +#define hypre_BoomerAMGBlockSolve HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBlockSolve ) +#define hypre_ParCSRComputeL1Norms HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRComputeL1Norms ) +#define hypre_ParCSRComputeL1NormsThreads HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRComputeL1NormsThreads ) +#define hypre_ParCSRMatrixFixZeroRows HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixFixZeroRows ) +#define hypre_ParCSRMatrixFixZeroRowsHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixFixZeroRowsHost ) +#define hypre_ParCSRMatrixSetDiagRows HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetDiagRows ) +#define hypre_ParCSRRelax HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax ) +#define hypre_ParCSRSubspacePrec HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRSubspacePrec ) +#define hypre_ParVectorBlockGather HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorBlockGather ) +#define hypre_ParVectorBlockSplit HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorBlockSplit ) +#define hypre_ParVectorInDomainOf HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorInDomainOf ) +#define hypre_ParVectorInRangeOf HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorInRangeOf ) +#define hypre_alt_insert_new_nodes HYPRE_MULTIPRECISION_FUNC ( hypre_alt_insert_new_nodes ) +#define hypre_big_insert_new_nodes HYPRE_MULTIPRECISION_FUNC ( hypre_big_insert_new_nodes ) +#define hypre_build_interp_colmap HYPRE_MULTIPRECISION_FUNC ( hypre_build_interp_colmap ) +#define hypre_exchange_interp_data HYPRE_MULTIPRECISION_FUNC ( hypre_exchange_interp_data ) +#define hypre_exchange_marker HYPRE_MULTIPRECISION_FUNC ( hypre_exchange_marker ) +#define hypre_index_of_minimum HYPRE_MULTIPRECISION_FUNC ( hypre_index_of_minimum ) +#define hypre_initialize_vecs HYPRE_MULTIPRECISION_FUNC ( hypre_initialize_vecs ) +#define hypre_ssort HYPRE_MULTIPRECISION_FUNC ( hypre_ssort ) +#define hypre_swap_int HYPRE_MULTIPRECISION_FUNC ( hypre_swap_int ) +#define hypre_BlockTridiagCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagCreate ) +#define hypre_BlockTridiagDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagDestroy ) +#define hypre_BlockTridiagSetAMGNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSetAMGNumSweeps ) +#define hypre_BlockTridiagSetAMGRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSetAMGRelaxType ) +#define hypre_BlockTridiagSetAMGStrengthThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSetAMGStrengthThreshold ) +#define hypre_BlockTridiagSetIndexSet HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSetIndexSet ) +#define hypre_BlockTridiagSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSetPrintLevel ) +#define hypre_BlockTridiagSetup HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSetup ) +#define hypre_BlockTridiagSolve HYPRE_MULTIPRECISION_FUNC ( hypre_BlockTridiagSolve ) +#define hypre_amsconstructdiscretegradient HYPRE_MULTIPRECISION_FUNC ( hypre_amsconstructdiscretegradient ) +#define hypre_amscreate HYPRE_MULTIPRECISION_FUNC ( hypre_amscreate ) +#define hypre_amsdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_amsdestroy ) +#define hypre_amsgetfinalrelativeresidualnorm HYPRE_MULTIPRECISION_FUNC ( hypre_amsgetfinalrelativeresidualnorm ) +#define hypre_amsgetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_amsgetnumiterations ) +#define hypre_amssetalphaamgoptions HYPRE_MULTIPRECISION_FUNC ( hypre_amssetalphaamgoptions ) +#define hypre_amssetalphapoissonmatrix HYPRE_MULTIPRECISION_FUNC ( hypre_amssetalphapoissonmatrix ) +#define hypre_amssetbetaamgoptions HYPRE_MULTIPRECISION_FUNC ( hypre_amssetbetaamgoptions ) +#define hypre_amssetbetapoissonmatrix HYPRE_MULTIPRECISION_FUNC ( hypre_amssetbetapoissonmatrix ) +#define hypre_amssetcoordinatevectors HYPRE_MULTIPRECISION_FUNC ( hypre_amssetcoordinatevectors ) +#define hypre_amssetcycletype HYPRE_MULTIPRECISION_FUNC ( hypre_amssetcycletype ) +#define hypre_amssetdimension HYPRE_MULTIPRECISION_FUNC ( hypre_amssetdimension ) +#define hypre_amssetdiscretegradient HYPRE_MULTIPRECISION_FUNC ( hypre_amssetdiscretegradient ) +#define hypre_amssetedgeconstantvectors HYPRE_MULTIPRECISION_FUNC ( hypre_amssetedgeconstantvectors ) +#define hypre_amssetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_amssetmaxiter ) +#define hypre_amssetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_amssetprintlevel ) +#define hypre_amssetsmoothingoptions HYPRE_MULTIPRECISION_FUNC ( hypre_amssetsmoothingoptions ) +#define hypre_amssettol HYPRE_MULTIPRECISION_FUNC ( hypre_amssettol ) +#define hypre_amssetup HYPRE_MULTIPRECISION_FUNC ( hypre_amssetup ) +#define hypre_amssolve HYPRE_MULTIPRECISION_FUNC ( hypre_amssolve ) +#define hypre_generatelaplacian HYPRE_MULTIPRECISION_FUNC ( hypre_generatelaplacian ) +#define hypre_boomeramgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgcreate ) +#define hypre_boomeramgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgdestroy ) +#define hypre_boomeramgfingridrelaxatn HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgfingridrelaxatn ) +#define hypre_boomeramggetadditive HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetadditive ) +#define hypre_boomeramggetcoarsentype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetcoarsentype ) +#define hypre_boomeramggetcumnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetcumnumiterati ) +#define hypre_boomeramggetcyclenumsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetcyclenumsweeps ) +#define hypre_boomeramggetcyclerelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetcyclerelaxtype ) +#define hypre_boomeramggetcycletype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetcycletype ) +#define hypre_boomeramggetdebugflag HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetdebugflag ) +#define hypre_boomeramggetdomaintype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetdomaintype ) +#define hypre_boomeramggetfinalreltvres HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetfinalreltvres ) +#define hypre_boomeramggetjacobitrunc HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetjacobitrunc ) +#define hypre_boomeramggetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetlogging ) +#define hypre_boomeramggetmaxcoarsesize HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmaxcoarsesize ) +#define hypre_boomeramggetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmaxiter ) +#define hypre_boomeramggetmaxlevels HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmaxlevels ) +#define hypre_boomeramggetmaxrowsum HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmaxrowsum ) +#define hypre_boomeramggetmeasuretype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmeasuretype ) +#define hypre_boomeramggetmincoarsesize HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmincoarsesize ) +#define hypre_boomeramggetmultadd HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetmultadd ) +#define hypre_boomeramggetnumfunctions HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetnumfunctions ) +#define hypre_boomeramggetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetnumiterations ) +#define hypre_boomeramggetoverlap HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetoverlap ) +#define hypre_boomeramggetpmaxelmts HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetpmaxelmts ) +#define hypre_boomeramggetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetprintlevel ) +#define hypre_boomeramggetresidual HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetresidual ) +#define hypre_boomeramggetschwarzrlxwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetschwarzrlxwt ) +#define hypre_boomeramggetsimple HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetsimple ) +#define hypre_boomeramggetsmoothnumlvls HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetsmoothnumlvls ) +#define hypre_boomeramggetsmoothnumswps HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetsmoothnumswps ) +#define hypre_boomeramggetsmoothtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetsmoothtype ) +#define hypre_boomeramggetstrongthrshld HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetstrongthrshld ) +#define hypre_boomeramggettol HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggettol ) +#define hypre_boomeramggettruncfactor HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggettruncfactor ) +#define hypre_boomeramggetvariant HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramggetvariant ) +#define hypre_boomeramginitgridrelaxatn HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramginitgridrelaxatn ) +#define hypre_boomeramgsetadditive HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetadditive ) +#define hypre_boomeramgsetaddlastlvl HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaddlastlvl ) +#define hypre_boomeramgsetaddrlxtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaddrlxtype ) +#define hypre_boomeramgsetaddrlxwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaddrlxwt ) +#define hypre_boomeramgsetagginterptype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetagginterptype ) +#define hypre_boomeramgsetaggnumlevels HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaggnumlevels ) +#define hypre_boomeramgsetaggp12maxelmt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaggp12maxelmt ) +#define hypre_boomeramgsetaggp12trfac HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaggp12trfac ) +#define hypre_boomeramgsetaggpmaxelmts HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaggpmaxelmts ) +#define hypre_boomeramgsetaggtrfactor HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetaggtrfactor ) +#define hypre_boomeramgsetcgcits HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetcgcits ) +#define hypre_boomeramgsetchebyeigest HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetchebyeigest ) +#define hypre_boomeramgsetchebyfract HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetchebyfract ) +#define hypre_boomeramgsetchebyorder HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetchebyorder ) +#define hypre_boomeramgsetchebyscale HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetchebyscale ) +#define hypre_boomeramgsetchebyvariant HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetchebyvariant ) +#define hypre_boomeramgsetcoarsentype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetcoarsentype ) +#define hypre_boomeramgsetcyclenumsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetcyclenumsweeps ) +#define hypre_boomeramgsetcyclerelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetcyclerelaxtype ) +#define hypre_boomeramgsetcycletype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetcycletype ) +#define hypre_boomeramgsetdebugflag HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetdebugflag ) +#define hypre_boomeramgsetdoffunc HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetdoffunc ) +#define hypre_boomeramgsetdomaintype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetdomaintype ) +#define hypre_boomeramgsetdroptol HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetdroptol ) +#define hypre_boomeramgseteubj HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgseteubj ) +#define hypre_boomeramgseteuclidfile HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgseteuclidfile ) +#define hypre_boomeramgseteulevel HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgseteulevel ) +#define hypre_boomeramgseteusparsea HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgseteusparsea ) +#define hypre_boomeramgsetfilter HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetfilter ) +#define hypre_boomeramgsetgridrelaxpnts HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetgridrelaxpnts ) +#define hypre_boomeramgsetgridrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetgridrelaxtype ) +#define hypre_boomeramgsetgsmg HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetgsmg ) +#define hypre_boomeramgsetinterptype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetinterptype ) +#define hypre_boomeramgsetinterpvecqmx HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetinterpvecqmx ) +#define hypre_boomeramgsetinterpvecqtr HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetinterpvecqtr ) +#define hypre_boomeramgsetinterpvecs HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetinterpvecs ) +#define hypre_boomeramgsetinterpvecvar HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetinterpvecvar ) +#define hypre_boomeramgsetjacobitrunc HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetjacobitrunc ) +#define hypre_boomeramgsetkeeptransp HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetkeeptransp ) +#define hypre_boomeramgsetlevel HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetlevel ) +#define hypre_boomeramgsetlevelouterwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetlevelouterwt ) +#define hypre_boomeramgsetlevelrelaxwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetlevelrelaxwt ) +#define hypre_boomeramgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetlogging ) +#define hypre_boomeramgsetlvlnongaltol HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetlvlnongaltol ) +#define hypre_boomeramgsetmaxcoarsesize HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmaxcoarsesize ) +#define hypre_boomeramgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmaxiter ) +#define hypre_boomeramgsetmaxlevels HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmaxlevels ) +#define hypre_boomeramgsetmaxnzperrow HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmaxnzperrow ) +#define hypre_boomeramgsetmaxrowsum HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmaxrowsum ) +#define hypre_boomeramgsetmeasuretype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmeasuretype ) +#define hypre_boomeramgsetmincoarsesize HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmincoarsesize ) +#define hypre_boomeramgsetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetminiter ) +#define hypre_boomeramgsetmultadd HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmultadd ) +#define hypre_boomeramgsetmultaddpmx HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmultaddpmx ) +#define hypre_boomeramgsetmultaddtrf HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetmultaddtrf ) +#define hypre_boomeramgsetnodal HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnodal ) +#define hypre_boomeramgsetnodaldiag HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnodaldiag ) +#define hypre_boomeramgsetnongaltol HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnongaltol ) +#define hypre_boomeramgsetnumfunctions HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnumfunctions ) +#define hypre_boomeramgsetnumgridsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnumgridsweeps ) +#define hypre_boomeramgsetnumpaths HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnumpaths ) +#define hypre_boomeramgsetnumsamples HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnumsamples ) +#define hypre_boomeramgsetnumsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetnumsweeps ) +#define hypre_boomeramgsetolddefault HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetolddefault ) +#define hypre_boomeramgsetouterwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetouterwt ) +#define hypre_boomeramgsetoverlap HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetoverlap ) +#define hypre_boomeramgsetpmaxelmts HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetpmaxelmts ) +#define hypre_boomeramgsetpostinterp HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetpostinterp ) +#define hypre_boomeramgsetprintfilename HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetprintfilename ) +#define hypre_boomeramgsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetprintlevel ) +#define hypre_boomeramgsetrap2 HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetrap2 ) +#define hypre_boomeramgsetredundant HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetredundant ) +#define hypre_boomeramgsetrelaxorder HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetrelaxorder ) +#define hypre_boomeramgsetrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetrelaxtype ) +#define hypre_boomeramgsetrelaxweight HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetrelaxweight ) +#define hypre_boomeramgsetrelaxwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetrelaxwt ) +#define hypre_boomeramgsetrestriction HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetrestriction ) +#define hypre_boomeramgsetschwarznonsym HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetschwarznonsym ) +#define hypre_boomeramgsetschwarzrlxwt HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetschwarzrlxwt ) +#define hypre_boomeramgsetsepweight HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsepweight ) +#define hypre_boomeramgsetseqthrshold HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetseqthrshold ) +#define hypre_boomeramgsetsetuptype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsetuptype ) +#define hypre_boomeramgsetsimple HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsimple ) +#define hypre_boomeramgsetsmoothnumlvls HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsmoothnumlvls ) +#define hypre_boomeramgsetsmoothnumswps HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsmoothnumswps ) +#define hypre_boomeramgsetsmoothtype HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsmoothtype ) +#define hypre_boomeramgsetstrongthrshld HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetstrongthrshld ) +#define hypre_boomeramgsetsym HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetsym ) +#define hypre_boomeramgsetthreshold HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetthreshold ) +#define hypre_boomeramgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsettol ) +#define hypre_boomeramgsettruncfactor HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsettruncfactor ) +#define hypre_boomeramgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetup ) +#define hypre_boomeramgsetvariant HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsetvariant ) +#define hypre_boomeramgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsolve ) +#define hypre_boomeramgsolvet HYPRE_MULTIPRECISION_FUNC ( hypre_boomeramgsolvet ) +#define hypre_parcsrbicgstabcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabcreate ) +#define hypre_parcsrbicgstabdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabdestroy ) +#define hypre_parcsrbicgstabgetfinalrel HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabgetfinalrel ) +#define hypre_parcsrbicgstabgetnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabgetnumiter ) +#define hypre_parcsrbicgstabgetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabgetprecond ) +#define hypre_parcsrbicgstabsetatol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetatol ) +#define hypre_parcsrbicgstabsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetlogging ) +#define hypre_parcsrbicgstabsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetmaxiter ) +#define hypre_parcsrbicgstabsetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetminiter ) +#define hypre_parcsrbicgstabsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetprecond ) +#define hypre_parcsrbicgstabsetprintlev HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetprintlev ) +#define hypre_parcsrbicgstabsetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetstopcrit ) +#define hypre_parcsrbicgstabsettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsettol ) +#define hypre_parcsrbicgstabsetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsetup ) +#define hypre_parcsrbicgstabsolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrbicgstabsolve ) +#define hypre_blocktridiagcreate HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagcreate ) +#define hypre_blocktridiagdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagdestroy ) +#define hypre_blocktridiagsetamgnumswee HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsetamgnumswee ) +#define hypre_blocktridiagsetamgrelaxty HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsetamgrelaxty ) +#define hypre_blocktridiagsetamgstrengt HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsetamgstrengt ) +#define hypre_blocktridiagsetindexset HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsetindexset ) +#define hypre_blocktridiagsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsetprintlevel ) +#define hypre_blocktridiagsetup HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsetup ) +#define hypre_blocktridiagsolve HYPRE_MULTIPRECISION_FUNC ( hypre_blocktridiagsolve ) +#define hypre_parcsrcgnrcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrcreate ) +#define hypre_parcsrcgnrdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrdestroy ) +#define hypre_parcsrcgnrgetfinalrelativ HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrgetfinalrelativ ) +#define hypre_parcsrcgnrgetnumiteration HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrgetnumiteration ) +#define hypre_parcsrcgnrgetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrgetprecond ) +#define hypre_parcsrcgnrsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsetlogging ) +#define hypre_parcsrcgnrsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsetmaxiter ) +#define hypre_parcsrcgnrsetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsetminiter ) +#define hypre_parcsrcgnrsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsetprecond ) +#define hypre_parcsrcgnrsetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsetstopcrit ) +#define hypre_parcsrcgnrsettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsettol ) +#define hypre_parcsrcgnrsetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsetup ) +#define hypre_parcsrcgnrsolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcgnrsolve ) +#define hypre_parcsrcogmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmrescreate ) +#define hypre_parcsrcogmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmresdestroy ) +#define hypre_parcsrcogmresgetfinalrela HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmresgetfinalrela ) +#define hypre_parcsrcogmresgetnumiterat HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmresgetnumiterat ) +#define hypre_parcsrcogmresgetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmresgetprecond ) +#define hypre_parcsrcogmressetabsolutet HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetabsolutet ) +#define hypre_parcsrcogmressetcgs HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetcgs ) +#define hypre_parcsrcogmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetkdim ) +#define hypre_parcsrcogmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetlogging ) +#define hypre_parcsrcogmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetmaxiter ) +#define hypre_parcsrcogmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetminiter ) +#define hypre_parcsrcogmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetprecond ) +#define hypre_parcsrcogmressetprintleve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetprintleve ) +#define hypre_parcsrcogmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressettol ) +#define hypre_parcsrcogmressetunroll HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetunroll ) +#define hypre_parcsrcogmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressetup ) +#define hypre_parcsrcogmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrcogmressolve ) +#define hypre_euclidcreate HYPRE_MULTIPRECISION_FUNC ( hypre_euclidcreate ) +#define hypre_eucliddestroy HYPRE_MULTIPRECISION_FUNC ( hypre_eucliddestroy ) +#define hypre_euclidsetbj HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetbj ) +#define hypre_euclidsetilut HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetilut ) +#define hypre_euclidsetlevel HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetlevel ) +#define hypre_euclidsetmem HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetmem ) +#define hypre_euclidsetparams HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetparams ) +#define hypre_euclidsetparamsfromfile HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetparamsfromfile ) +#define hypre_euclidsetrowscale HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetrowscale ) +#define hypre_euclidsetsparsea HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetsparsea ) +#define hypre_euclidsetstats HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetstats ) +#define hypre_euclidsetup HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsetup ) +#define hypre_euclidsolve HYPRE_MULTIPRECISION_FUNC ( hypre_euclidsolve ) +#define hypre_parcsrflexgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmrescreate ) +#define hypre_parcsrflexgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmresdestroy ) +#define hypre_parcsrflexgmresgetfinalrelati HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmresgetfinalrelati ) +#define hypre_parcsrflexgmresgetnumiteratio HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmresgetnumiteratio ) +#define hypre_parcsrflexgmresgetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmresgetprecond ) +#define hypre_parcsrflexgmressetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetabsolutetol ) +#define hypre_parcsrflexgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetkdim ) +#define hypre_parcsrflexgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetlogging ) +#define hypre_parcsrflexgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetmaxiter ) +#define hypre_parcsrflexgmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetminiter ) +#define hypre_parcsrflexgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetprecond ) +#define hypre_parcsrflexgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetprintlevel ) +#define hypre_parcsrflexgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressettol ) +#define hypre_parcsrflexgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressetup ) +#define hypre_parcsrflexgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrflexgmressolve ) +#define hypre_parcsrgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmrescreate ) +#define hypre_parcsrgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmresdestroy ) +#define hypre_parcsrgmresgetfinalrelati HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmresgetfinalrelati ) +#define hypre_parcsrgmresgetnumiteratio HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmresgetnumiteratio ) +#define hypre_parcsrgmresgetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmresgetprecond ) +#define hypre_parcsrgmressetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetabsolutetol ) +#define hypre_parcsrgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetkdim ) +#define hypre_parcsrgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetlogging ) +#define hypre_parcsrgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetmaxiter ) +#define hypre_parcsrgmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetminiter ) +#define hypre_parcsrgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetprecond ) +#define hypre_parcsrgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetprintlevel ) +#define hypre_parcsrgmressetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetstopcrit ) +#define hypre_parcsrgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressettol ) +#define hypre_parcsrgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressetup ) +#define hypre_parcsrgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrgmressolve ) +#define hypre_parcsrhybridcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridcreate ) +#define hypre_parcsrhybriddestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybriddestroy ) +#define hypre_parcsrhybridgetdscgnumite HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridgetdscgnumite ) +#define hypre_parcsrhybridgetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridgetfinalrelat ) +#define hypre_parcsrhybridgetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridgetnumiterati ) +#define hypre_parcsrhybridgetpcgnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridgetpcgnumiter ) +#define hypre_parcsrhybridsetaggnumlev HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetaggnumlev ) +#define hypre_parcsrhybridsetcoarsentyp HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetcoarsentyp ) +#define hypre_parcsrhybridsetconvergenc HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetconvergenc ) +#define hypre_parcsrhybridsetcyclenumsw HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetcyclenumsw ) +#define hypre_parcsrhybridsetcyclerelax HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetcyclerelax ) +#define hypre_parcsrhybridsetcycletype HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetcycletype ) +#define hypre_parcsrhybridsetdoffunc HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetdoffunc ) +#define hypre_parcsrhybridsetdscgmaxite HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetdscgmaxite ) +#define hypre_parcsrhybridsetgridrelaxp HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetgridrelaxp ) +#define hypre_parcsrhybridsetgridrelaxt HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetgridrelaxt ) +#define hypre_parcsrhybridsetinterptyp HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetinterptyp ) +#define hypre_parcsrhybridsetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetkdim ) +#define hypre_parcsrhybridsetkeeptrans HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetkeeptrans ) +#define hypre_parcsrhybridsetlevelouter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetlevelouter ) +#define hypre_parcsrhybridsetlevelrelax HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetlevelrelax ) +#define hypre_parcsrhybridsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetlogging ) +#define hypre_parcsrhybridsetmaxlevels HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetmaxlevels ) +#define hypre_parcsrhybridsetmaxrowsum HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetmaxrowsum ) +#define hypre_parcsrhybridsetmeasuretyp HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetmeasuretyp ) +#define hypre_parcsrhybridsetnodal HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetnodal ) +#define hypre_parcsrhybridsetnongaltol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetnongaltol ) +#define hypre_parcsrhybridsetnumfunc HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetnumfunc ) +#define hypre_parcsrhybridsetnumgridswe HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetnumgridswe ) +#define hypre_parcsrhybridsetnumpaths HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetnumpaths ) +#define hypre_parcsrhybridsetnumsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetnumsweeps ) +#define hypre_parcsrhybridsetomega HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetomega ) +#define hypre_parcsrhybridsetouterwt HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetouterwt ) +#define hypre_parcsrhybridsetpcgmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetpcgmaxiter ) +#define hypre_parcsrhybridsetpmaxelmts HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetpmaxelmts ) +#define hypre_parcsrhybridsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetprecond ) +#define hypre_parcsrhybridsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetprintlevel ) +#define hypre_parcsrhybridsetrelaxorder HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetrelaxorder ) +#define hypre_parcsrhybridsetrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetrelaxtype ) +#define hypre_parcsrhybridsetrelaxweigh HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetrelaxweigh ) +#define hypre_parcsrhybridsetrelaxwt HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetrelaxwt ) +#define hypre_parcsrhybridsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetrelchange ) +#define hypre_parcsrhybridsetsolvertype HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetsolvertype ) +#define hypre_parcsrhybridsetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetstopcrit ) +#define hypre_parcsrhybridsetstrongthre HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetstrongthre ) +#define hypre_parcsrhybridsettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsettol ) +#define hypre_parcsrhybridsettruncfacto HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsettruncfacto ) +#define hypre_parcsrhybridsettwonorm HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsettwonorm ) +#define hypre_parcsrhybridsetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsetup ) +#define hypre_parcsrhybridsolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrhybridsolve ) +#define hypre_ilucreate HYPRE_MULTIPRECISION_FUNC ( hypre_ilucreate ) +#define hypre_iludestroy HYPRE_MULTIPRECISION_FUNC ( hypre_iludestroy ) +#define hypre_ilugetfinalrelresnorm HYPRE_MULTIPRECISION_FUNC ( hypre_ilugetfinalrelresnorm ) +#define hypre_ilugetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_ilugetnumiterations ) +#define hypre_ilusetdropthreshold HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetdropthreshold ) +#define hypre_ilusetdropthresholdarray HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetdropthresholdarray ) +#define hypre_ilusetleveloffill HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetleveloffill ) +#define hypre_ilusetlocalreordering HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetlocalreordering ) +#define hypre_ilusetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetlogging ) +#define hypre_ilusetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetmaxiter ) +#define hypre_ilusetmaxnnzperrow HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetmaxnnzperrow ) +#define hypre_ilusetnshdropthreshold HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetnshdropthreshold ) +#define hypre_ilusetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetprintlevel ) +#define hypre_ilusetschurmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetschurmaxiter ) +#define hypre_ilusettol HYPRE_MULTIPRECISION_FUNC ( hypre_ilusettol ) +#define hypre_ilusettype HYPRE_MULTIPRECISION_FUNC ( hypre_ilusettype ) +#define hypre_ilusetup HYPRE_MULTIPRECISION_FUNC ( hypre_ilusetup ) +#define hypre_ilusolve HYPRE_MULTIPRECISION_FUNC ( hypre_ilusolve ) +#define hypre_parcsrmultivectorprint HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmultivectorprint ) +#define hypre_parcsrmultivectorread HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmultivectorread ) +#define hypre_parcsrsetupinterpreter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrsetupinterpreter ) +#define hypre_parcsrsetupmatvec HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrsetupmatvec ) +#define hypre_parprintvector HYPRE_MULTIPRECISION_FUNC ( hypre_parprintvector ) +#define hypre_parreadvector HYPRE_MULTIPRECISION_FUNC ( hypre_parreadvector ) +#define hypre_parsetrandomvalues HYPRE_MULTIPRECISION_FUNC ( hypre_parsetrandomvalues ) +#define hypre_parvectorsize HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorsize ) +#define hypre_tempparcsrsetupinterprete HYPRE_MULTIPRECISION_FUNC ( hypre_tempparcsrsetupinterprete ) +#define hypre_parcsrlgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmrescreate ) +#define hypre_parcsrlgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmresdestroy ) +#define hypre_parcsrlgmresgetfinalrelati HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmresgetfinalrelati ) +#define hypre_parcsrlgmresgetnumiteratio HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmresgetnumiteratio ) +#define hypre_parcsrlgmresgetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmresgetprecond ) +#define hypre_parcsrlgmressetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetabsolutetol ) +#define hypre_parcsrlgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetkdim ) +#define hypre_parcsrlgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetlogging ) +#define hypre_parcsrlgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetmaxiter ) +#define hypre_parcsrlgmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetminiter ) +#define hypre_parcsrlgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetprecond ) +#define hypre_parcsrlgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetprintlevel ) +#define hypre_parcsrlgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressettol ) +#define hypre_parcsrlgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressetup ) +#define hypre_parcsrlgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrlgmressolve ) +#define hypre_mgrbuildaff HYPRE_MULTIPRECISION_FUNC ( hypre_mgrbuildaff ) +#define hypre_mgrcreate HYPRE_MULTIPRECISION_FUNC ( hypre_mgrcreate ) +#define hypre_mgrdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_mgrdestroy ) +#define hypre_mgrgetcoarsegridconvfac HYPRE_MULTIPRECISION_FUNC ( hypre_mgrgetcoarsegridconvfac ) +#define hypre_mgrgetfinalrelresnorm HYPRE_MULTIPRECISION_FUNC ( hypre_mgrgetfinalrelresnorm ) +#define hypre_mgrgetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_mgrgetnumiterations ) +#define hypre_mgrsetblocksize HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetblocksize ) +#define hypre_mgrsetcgridprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcgridprintlevel ) +#define hypre_mgrsetcgridthreshold HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcgridthreshold ) +#define hypre_mgrsetcoarsegridmethod HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcoarsegridmethod ) +#define hypre_mgrsetcoarsesolver HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcoarsesolver ) +#define hypre_mgrsetcpointsbyblock HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcpointsbyblock ) +#define hypre_mgrsetcptsbyctgblock HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcptsbyctgblock ) +#define hypre_mgrsetcptsbymarkerarray HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetcptsbymarkerarray ) +#define hypre_mgrsetfrelaxmethod HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetfrelaxmethod ) +#define hypre_mgrsetfrelaxprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetfrelaxprintlevel ) +#define hypre_mgrsetfsolver HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetfsolver ) +#define hypre_mgrsetglobalsmoothtype HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetglobalsmoothtype ) +#define hypre_mgrsetinterptype HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetinterptype ) +#define hypre_mgrsetlevelfrelaxmethod HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetlevelfrelaxmethod ) +#define hypre_mgrsetlevelfrelaxnumfunc HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetlevelfrelaxnumfunc ) +#define hypre_mgrsetlevelinterptype HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetlevelinterptype ) +#define hypre_mgrsetlevelrestricttype HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetlevelrestricttype ) +#define hypre_mgrsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetlogging ) +#define hypre_mgrsetmaxcoarselevels HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetmaxcoarselevels ) +#define hypre_mgrsetmaxglobalsmoothit HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetmaxglobalsmoothit ) +#define hypre_mgrsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetmaxiter ) +#define hypre_mgrsetnoncptstofpts HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetnoncptstofpts ) +#define hypre_mgrsetnuminterpsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetnuminterpsweeps ) +#define hypre_mgrsetnumrelaxsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetnumrelaxsweeps ) +#define hypre_mgrsetnumrestrictsweeps HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetnumrestrictsweeps ) +#define hypre_mgrsetpmaxelmts HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetpmaxelmts ) +#define hypre_mgrsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetprintlevel ) +#define hypre_mgrsetrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetrelaxtype ) +#define hypre_mgrsetreservedcoarsenodes HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetreservedcoarsenodes ) +#define hypre_mgrsetreservedcptslevel HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetreservedcptslevel ) +#define hypre_mgrsetrestricttype HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetrestricttype ) +#define hypre_mgrsettol HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsettol ) +#define hypre_mgrsetup HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsetup ) +#define hypre_mgrsolve HYPRE_MULTIPRECISION_FUNC ( hypre_mgrsolve ) +#define hypre_parasailscreate HYPRE_MULTIPRECISION_FUNC ( hypre_parasailscreate ) +#define hypre_parasailsdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsdestroy ) +#define hypre_parasailsgetfilter HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetfilter ) +#define hypre_parasailsgetloadbal HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetloadbal ) +#define hypre_parasailsgetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetlogging ) +#define hypre_parasailsgetnlevels HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetnlevels ) +#define hypre_parasailsgetreuse HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetreuse ) +#define hypre_parasailsgetsym HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetsym ) +#define hypre_parasailsgetthresh HYPRE_MULTIPRECISION_FUNC ( hypre_parasailsgetthresh ) +#define hypre_parasailssetfilter HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetfilter ) +#define hypre_parasailssetloadbal HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetloadbal ) +#define hypre_parasailssetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetlogging ) +#define hypre_parasailssetnlevels HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetnlevels ) +#define hypre_parasailssetparams HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetparams ) +#define hypre_parasailssetreuse HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetreuse ) +#define hypre_parasailssetsym HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetsym ) +#define hypre_parasailssetthresh HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetthresh ) +#define hypre_parasailssetup HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssetup ) +#define hypre_parasailssolve HYPRE_MULTIPRECISION_FUNC ( hypre_parasailssolve ) +#define hypre_parcsrdiagscale HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrdiagscale ) +#define hypre_parcsrdiagscalesetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrdiagscalesetup ) +#define hypre_parcsrpcgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgcreate ) +#define hypre_parcsrpcgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgdestroy ) +#define hypre_parcsrpcggetfinalrelative HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcggetfinalrelative ) +#define hypre_parcsrpcggetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcggetnumiterations ) +#define hypre_parcsrpcggetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcggetprecond ) +#define hypre_parcsrpcgsetatol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetatol ) +#define hypre_parcsrpcgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetlogging ) +#define hypre_parcsrpcgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetmaxiter ) +#define hypre_parcsrpcgsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetprecond ) +#define hypre_parcsrpcgsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetprintlevel ) +#define hypre_parcsrpcgsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetrelchange ) +#define hypre_parcsrpcgsetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetstopcrit ) +#define hypre_parcsrpcgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsettol ) +#define hypre_parcsrpcgsettwonorm HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsettwonorm ) +#define hypre_parcsrpcgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsetup ) +#define hypre_parcsrpcgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpcgsolve ) +#define hypre_parcsrpilutcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutcreate ) +#define hypre_parcsrpilutdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutdestroy ) +#define hypre_parcsrpilutsetdroptoleran HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutsetdroptoleran ) +#define hypre_parcsrpilutsetfacrowsize HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutsetfacrowsize ) +#define hypre_parcsrpilutsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutsetmaxiter ) +#define hypre_parcsrpilutsetup HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutsetup ) +#define hypre_parcsrpilutsolve HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrpilutsolve ) +#define hypre_schwarzcreate HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzcreate ) +#define hypre_schwarzdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzdestroy ) +#define hypre_schwarzsetdoffunc HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetdoffunc ) +#define hypre_schwarzsetdomainstructure HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetdomainstructure ) +#define hypre_schwarzsetdomaintype HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetdomaintype ) +#define hypre_schwarzsetnumfunctions HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetnumfunctions ) +#define hypre_schwarzsetoverlap HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetoverlap ) +#define hypre_schwarzsetrelaxweight HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetrelaxweight ) +#define hypre_schwarzsetup HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetup ) +#define hypre_schwarzsetvariant HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsetvariant ) +#define hypre_schwarzsolve HYPRE_MULTIPRECISION_FUNC ( hypre_schwarzsolve ) +#define hypre_GenerateSubComm HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateSubComm ) +#define hypre_merge_lists HYPRE_MULTIPRECISION_FUNC ( hypre_merge_lists ) +#define hypre_seqAMGCycle HYPRE_MULTIPRECISION_FUNC ( hypre_seqAMGCycle ) +#define hypre_seqAMGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_seqAMGSetup ) +#define HYPRE_ADSCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSCreate ) +#define HYPRE_ADSDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSDestroy ) +#define HYPRE_ADSGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSGetFinalRelativeResidualNorm ) +#define HYPRE_ADSGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSGetNumIterations ) +#define HYPRE_ADSSetAMGOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetAMGOptions ) +#define HYPRE_ADSSetAMSOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetAMSOptions ) +#define HYPRE_ADSSetChebySmoothingOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetChebySmoothingOptions ) +#define HYPRE_ADSSetCoordinateVectors HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetCoordinateVectors ) +#define HYPRE_ADSSetCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetCycleType ) +#define HYPRE_ADSSetDiscreteCurl HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetDiscreteCurl ) +#define HYPRE_ADSSetDiscreteGradient HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetDiscreteGradient ) +#define HYPRE_ADSSetInterpolations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetInterpolations ) +#define HYPRE_ADSSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetMaxIter ) +#define HYPRE_ADSSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetPrintLevel ) +#define HYPRE_ADSSetSmoothingOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetSmoothingOptions ) +#define HYPRE_ADSSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetTol ) +#define HYPRE_ADSSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSetup ) +#define HYPRE_ADSSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ADSSolve ) +#define HYPRE_AMECreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMECreate ) +#define HYPRE_AMEDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMEDestroy ) +#define HYPRE_AMEGetEigenvalues HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMEGetEigenvalues ) +#define HYPRE_AMEGetEigenvectors HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMEGetEigenvectors ) +#define HYPRE_AMESetAMSSolver HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetAMSSolver ) +#define HYPRE_AMESetBlockSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetBlockSize ) +#define HYPRE_AMESetMassMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetMassMatrix ) +#define HYPRE_AMESetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetMaxIter ) +#define HYPRE_AMESetMaxPCGIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetMaxPCGIter ) +#define HYPRE_AMESetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetPrintLevel ) +#define HYPRE_AMESetRTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetRTol ) +#define HYPRE_AMESetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetTol ) +#define HYPRE_AMESetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESetup ) +#define HYPRE_AMESolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMESolve ) +#define HYPRE_AMSConstructDiscreteGradient HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSConstructDiscreteGradient ) +#define HYPRE_AMSCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSCreate ) +#define HYPRE_AMSDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSDestroy ) +#define HYPRE_AMSFEIDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSFEIDestroy ) +#define HYPRE_AMSFEISetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSFEISetup ) +#define HYPRE_AMSGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSGetFinalRelativeResidualNorm ) +#define HYPRE_AMSGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSGetNumIterations ) +#define HYPRE_AMSProjectOutGradients HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSProjectOutGradients ) +#define HYPRE_AMSSetAlphaAMGCoarseRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetAlphaAMGCoarseRelaxType ) +#define HYPRE_AMSSetAlphaAMGOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetAlphaAMGOptions ) +#define HYPRE_AMSSetAlphaPoissonMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetAlphaPoissonMatrix ) +#define HYPRE_AMSSetBetaAMGCoarseRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetBetaAMGCoarseRelaxType ) +#define HYPRE_AMSSetBetaAMGOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetBetaAMGOptions ) +#define HYPRE_AMSSetBetaPoissonMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetBetaPoissonMatrix ) +#define HYPRE_AMSSetChebySmoothingOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetChebySmoothingOptions ) +#define HYPRE_AMSSetCoordinateVectors HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetCoordinateVectors ) +#define HYPRE_AMSSetCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetCycleType ) +#define HYPRE_AMSSetDimension HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetDimension ) +#define HYPRE_AMSSetDiscreteGradient HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetDiscreteGradient ) +#define HYPRE_AMSSetEdgeConstantVectors HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetEdgeConstantVectors ) +#define HYPRE_AMSSetInteriorNodes HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetInteriorNodes ) +#define HYPRE_AMSSetInterpolations HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetInterpolations ) +#define HYPRE_AMSSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetMaxIter ) +#define HYPRE_AMSSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetPrintLevel ) +#define HYPRE_AMSSetProjectionFrequency HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetProjectionFrequency ) +#define HYPRE_AMSSetSmoothingOptions HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetSmoothingOptions ) +#define HYPRE_AMSSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetTol ) +#define HYPRE_AMSSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSetup ) +#define HYPRE_AMSSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_AMSSolve ) +#define HYPRE_BoomerAMGDDCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDCreate ) +#define HYPRE_BoomerAMGDDDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDDestroy ) +#define HYPRE_BoomerAMGDDGetAMG HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetAMG ) +#define HYPRE_BoomerAMGDDGetFACCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetFACCycleType ) +#define HYPRE_BoomerAMGDDGetFACNumCycles HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetFACNumCycles ) +#define HYPRE_BoomerAMGDDGetFACNumRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetFACNumRelax ) +#define HYPRE_BoomerAMGDDGetFACRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetFACRelaxType ) +#define HYPRE_BoomerAMGDDGetFACRelaxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetFACRelaxWeight ) +#define HYPRE_BoomerAMGDDGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetFinalRelativeResidualNorm ) +#define HYPRE_BoomerAMGDDGetNumGhostLayers HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetNumGhostLayers ) +#define HYPRE_BoomerAMGDDGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetNumIterations ) +#define HYPRE_BoomerAMGDDGetPadding HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetPadding ) +#define HYPRE_BoomerAMGDDGetStartLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDGetStartLevel ) +#define HYPRE_BoomerAMGDDSetFACCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetFACCycleType ) +#define HYPRE_BoomerAMGDDSetFACNumCycles HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetFACNumCycles ) +#define HYPRE_BoomerAMGDDSetFACNumRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetFACNumRelax ) +#define HYPRE_BoomerAMGDDSetFACRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetFACRelaxType ) +#define HYPRE_BoomerAMGDDSetFACRelaxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetFACRelaxWeight ) +#define HYPRE_BoomerAMGDDSetNumGhostLayers HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetNumGhostLayers ) +#define HYPRE_BoomerAMGDDSetPadding HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetPadding ) +#define HYPRE_BoomerAMGDDSetStartLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetStartLevel ) +#define HYPRE_BoomerAMGDDSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetup ) +#define HYPRE_BoomerAMGDDSetUserFACRelaxation HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSetUserFACRelaxation ) +#define HYPRE_BoomerAMGDDSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDDSolve ) +#define HYPRE_BoomerAMGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGCreate ) +#define HYPRE_BoomerAMGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGDestroy ) +#define HYPRE_BoomerAMGGetAdditive HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetAdditive ) +#define HYPRE_BoomerAMGGetCoarsenCutFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCoarsenCutFactor ) +#define HYPRE_BoomerAMGGetCoarsenType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCoarsenType ) +#define HYPRE_BoomerAMGGetConvergeType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetConvergeType ) +#define HYPRE_BoomerAMGGetCumNnzAP HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCumNnzAP ) +#define HYPRE_BoomerAMGGetCumNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCumNumIterations ) +#define HYPRE_BoomerAMGGetCycleNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCycleNumSweeps ) +#define HYPRE_BoomerAMGGetCycleRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCycleRelaxType ) +#define HYPRE_BoomerAMGGetCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetCycleType ) +#define HYPRE_BoomerAMGGetDebugFlag HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetDebugFlag ) +#define HYPRE_BoomerAMGGetDomainType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetDomainType ) +#define HYPRE_BoomerAMGGetFCycle HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetFCycle ) +#define HYPRE_BoomerAMGGetFilterFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetFilterFunctions ) +#define HYPRE_BoomerAMGGetFilterThresholdR HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetFilterThresholdR ) +#define HYPRE_BoomerAMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetFinalRelativeResidualNorm ) +#define HYPRE_BoomerAMGGetGridHierarchy HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetGridHierarchy ) +#define HYPRE_BoomerAMGGetJacobiTruncThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetJacobiTruncThreshold ) +#define HYPRE_BoomerAMGGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetLogging ) +#define HYPRE_BoomerAMGGetMaxCoarseSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMaxCoarseSize ) +#define HYPRE_BoomerAMGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMaxIter ) +#define HYPRE_BoomerAMGGetMaxLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMaxLevels ) +#define HYPRE_BoomerAMGGetMaxRowSum HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMaxRowSum ) +#define HYPRE_BoomerAMGGetMeasureType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMeasureType ) +#define HYPRE_BoomerAMGGetMinCoarseSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMinCoarseSize ) +#define HYPRE_BoomerAMGGetMultAdditive HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetMultAdditive ) +#define HYPRE_BoomerAMGGetNumFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetNumFunctions ) +#define HYPRE_BoomerAMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetNumIterations ) +#define HYPRE_BoomerAMGGetOverlap HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetOverlap ) +#define HYPRE_BoomerAMGGetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetPMaxElmts ) +#define HYPRE_BoomerAMGGetPostInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetPostInterpType ) +#define HYPRE_BoomerAMGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetPrintLevel ) +#define HYPRE_BoomerAMGGetRedundant HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetRedundant ) +#define HYPRE_BoomerAMGGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetResidual ) +#define HYPRE_BoomerAMGGetSchwarzRlxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetSchwarzRlxWeight ) +#define HYPRE_BoomerAMGGetSeqThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetSeqThreshold ) +#define HYPRE_BoomerAMGGetSimple HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetSimple ) +#define HYPRE_BoomerAMGGetSmoothNumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetSmoothNumLevels ) +#define HYPRE_BoomerAMGGetSmoothNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetSmoothNumSweeps ) +#define HYPRE_BoomerAMGGetSmoothType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetSmoothType ) +#define HYPRE_BoomerAMGGetStrongThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetStrongThreshold ) +#define HYPRE_BoomerAMGGetStrongThresholdR HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetStrongThresholdR ) +#define HYPRE_BoomerAMGGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetTol ) +#define HYPRE_BoomerAMGGetTruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetTruncFactor ) +#define HYPRE_BoomerAMGGetVariant HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGGetVariant ) +#define HYPRE_BoomerAMGInitGridRelaxation HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGInitGridRelaxation ) +#define HYPRE_BoomerAMGSetAdditive HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAdditive ) +#define HYPRE_BoomerAMGSetAddLastLvl HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAddLastLvl ) +#define HYPRE_BoomerAMGSetAddPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAddPMaxElmts ) +#define HYPRE_BoomerAMGSetAddRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAddRelaxType ) +#define HYPRE_BoomerAMGSetAddRelaxWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAddRelaxWt ) +#define HYPRE_BoomerAMGSetAddTruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAddTruncFactor ) +#define HYPRE_BoomerAMGSetADropTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetADropTol ) +#define HYPRE_BoomerAMGSetADropType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetADropType ) +#define HYPRE_BoomerAMGSetAggInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAggInterpType ) +#define HYPRE_BoomerAMGSetAggNumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAggNumLevels ) +#define HYPRE_BoomerAMGSetAggP12MaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAggP12MaxElmts ) +#define HYPRE_BoomerAMGSetAggP12TruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAggP12TruncFactor ) +#define HYPRE_BoomerAMGSetAggPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAggPMaxElmts ) +#define HYPRE_BoomerAMGSetAggTruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetAggTruncFactor ) +#define HYPRE_BoomerAMGSetCGCIts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCGCIts ) +#define HYPRE_BoomerAMGSetChebyEigEst HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetChebyEigEst ) +#define HYPRE_BoomerAMGSetChebyFraction HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetChebyFraction ) +#define HYPRE_BoomerAMGSetChebyOrder HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetChebyOrder ) +#define HYPRE_BoomerAMGSetChebyScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetChebyScale ) +#define HYPRE_BoomerAMGSetChebyVariant HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetChebyVariant ) +#define HYPRE_BoomerAMGSetCoarsenCutFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCoarsenCutFactor ) +#define HYPRE_BoomerAMGSetCoarsenType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCoarsenType ) +#define HYPRE_BoomerAMGSetConvergeType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetConvergeType ) +#define HYPRE_BoomerAMGSetCoordDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCoordDim ) +#define HYPRE_BoomerAMGSetCoordinates HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCoordinates ) +#define HYPRE_BoomerAMGSetCPoints HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCPoints ) +#define HYPRE_BoomerAMGSetCpointsToKeep HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCpointsToKeep ) +#define HYPRE_BoomerAMGSetCRRate HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCRRate ) +#define HYPRE_BoomerAMGSetCRStrongTh HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCRStrongTh ) +#define HYPRE_BoomerAMGSetCRUseCG HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCRUseCG ) +#define HYPRE_BoomerAMGSetCumNnzAP HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCumNnzAP ) +#define HYPRE_BoomerAMGSetCycleNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCycleNumSweeps ) +#define HYPRE_BoomerAMGSetCycleRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCycleRelaxType ) +#define HYPRE_BoomerAMGSetCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetCycleType ) +#define HYPRE_BoomerAMGSetDebugFlag HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetDebugFlag ) +#define HYPRE_BoomerAMGSetDofFunc HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetDofFunc ) +#define HYPRE_BoomerAMGSetDomainType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetDomainType ) +#define HYPRE_BoomerAMGSetDropTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetDropTol ) +#define HYPRE_BoomerAMGSetEuBJ HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetEuBJ ) +#define HYPRE_BoomerAMGSetEuclidFile HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetEuclidFile ) +#define HYPRE_BoomerAMGSetEuLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetEuLevel ) +#define HYPRE_BoomerAMGSetEuSparseA HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetEuSparseA ) +#define HYPRE_BoomerAMGSetFCycle HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFCycle ) +#define HYPRE_BoomerAMGSetFilter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFilter ) +#define HYPRE_BoomerAMGSetFilterFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFilterFunctions ) +#define HYPRE_BoomerAMGSetFilterThresholdR HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFilterThresholdR ) +#define HYPRE_BoomerAMGSetFPoints HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFPoints ) +#define HYPRE_BoomerAMGSetFSAIAlgoType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIAlgoType ) +#define HYPRE_BoomerAMGSetFSAIEigMaxIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIEigMaxIters ) +#define HYPRE_BoomerAMGSetFSAIKapTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIKapTolerance ) +#define HYPRE_BoomerAMGSetFSAILocalSolveType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAILocalSolveType ) +#define HYPRE_BoomerAMGSetFSAIMaxNnzRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIMaxNnzRow ) +#define HYPRE_BoomerAMGSetFSAIMaxSteps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIMaxSteps ) +#define HYPRE_BoomerAMGSetFSAIMaxStepSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIMaxStepSize ) +#define HYPRE_BoomerAMGSetFSAINumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAINumLevels ) +#define HYPRE_BoomerAMGSetFSAIThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetFSAIThreshold ) +#define HYPRE_BoomerAMGSetGMRESSwitchR HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetGMRESSwitchR ) +#define HYPRE_BoomerAMGSetGridRelaxPoints HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetGridRelaxPoints ) +#define HYPRE_BoomerAMGSetGridRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetGridRelaxType ) +#define HYPRE_BoomerAMGSetGSMG HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetGSMG ) +#define HYPRE_BoomerAMGSetILUDroptol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUDroptol ) +#define HYPRE_BoomerAMGSetILUIterSetupMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUIterSetupMaxIter ) +#define HYPRE_BoomerAMGSetILUIterSetupOption HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUIterSetupOption ) +#define HYPRE_BoomerAMGSetILUIterSetupTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUIterSetupTolerance ) +#define HYPRE_BoomerAMGSetILUIterSetupType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUIterSetupType ) +#define HYPRE_BoomerAMGSetILULevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILULevel ) +#define HYPRE_BoomerAMGSetILULocalReordering HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILULocalReordering ) +#define HYPRE_BoomerAMGSetILULowerJacobiIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILULowerJacobiIters ) +#define HYPRE_BoomerAMGSetILUMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUMaxIter ) +#define HYPRE_BoomerAMGSetILUMaxRowNnz HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUMaxRowNnz ) +#define HYPRE_BoomerAMGSetILUTriSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUTriSolve ) +#define HYPRE_BoomerAMGSetILUType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUType ) +#define HYPRE_BoomerAMGSetILUUpperJacobiIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetILUUpperJacobiIters ) +#define HYPRE_BoomerAMGSetInterpRefine HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpRefine ) +#define HYPRE_BoomerAMGSetInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpType ) +#define HYPRE_BoomerAMGSetInterpVecAbsQTrunc HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpVecAbsQTrunc ) +#define HYPRE_BoomerAMGSetInterpVecFirstLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpVecFirstLevel ) +#define HYPRE_BoomerAMGSetInterpVecQMax HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpVecQMax ) +#define HYPRE_BoomerAMGSetInterpVectors HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpVectors ) +#define HYPRE_BoomerAMGSetInterpVecVariant HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetInterpVecVariant ) +#define HYPRE_BoomerAMGSetIsolatedFPoints HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetIsolatedFPoints ) +#define HYPRE_BoomerAMGSetIsTriangular HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetIsTriangular ) +#define HYPRE_BoomerAMGSetISType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetISType ) +#define HYPRE_BoomerAMGSetJacobiTruncThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetJacobiTruncThreshold ) +#define HYPRE_BoomerAMGSetKeepSameSign HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetKeepSameSign ) +#define HYPRE_BoomerAMGSetKeepTranspose HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetKeepTranspose ) +#define HYPRE_BoomerAMGSetLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetLevel ) +#define HYPRE_BoomerAMGSetLevelNonGalerkinTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetLevelNonGalerkinTol ) +#define HYPRE_BoomerAMGSetLevelOuterWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetLevelOuterWt ) +#define HYPRE_BoomerAMGSetLevelRelaxWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetLevelRelaxWt ) +#define HYPRE_BoomerAMGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetLogging ) +#define HYPRE_BoomerAMGSetMaxCoarseSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMaxCoarseSize ) +#define HYPRE_BoomerAMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMaxIter ) +#define HYPRE_BoomerAMGSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMaxLevels ) +#define HYPRE_BoomerAMGSetMaxNzPerRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMaxNzPerRow ) +#define HYPRE_BoomerAMGSetMaxRowSum HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMaxRowSum ) +#define HYPRE_BoomerAMGSetMeasureType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMeasureType ) +#define HYPRE_BoomerAMGSetMinCoarseSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMinCoarseSize ) +#define HYPRE_BoomerAMGSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMinIter ) +#define HYPRE_BoomerAMGSetModuleRAP2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetModuleRAP2 ) +#define HYPRE_BoomerAMGSetMultAdditive HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMultAdditive ) +#define HYPRE_BoomerAMGSetMultAddPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMultAddPMaxElmts ) +#define HYPRE_BoomerAMGSetMultAddTruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetMultAddTruncFactor ) +#define HYPRE_BoomerAMGSetNodal HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNodal ) +#define HYPRE_BoomerAMGSetNodalDiag HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNodalDiag ) +#define HYPRE_BoomerAMGSetNodalLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNodalLevels ) +#define HYPRE_BoomerAMGSetNonGalerkinTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNonGalerkinTol ) +#define HYPRE_BoomerAMGSetNonGalerkTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNonGalerkTol ) +#define HYPRE_BoomerAMGSetNumCRRelaxSteps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNumCRRelaxSteps ) +#define HYPRE_BoomerAMGSetNumFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNumFunctions ) +#define HYPRE_BoomerAMGSetNumGridSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNumGridSweeps ) +#define HYPRE_BoomerAMGSetNumPaths HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNumPaths ) +#define HYPRE_BoomerAMGSetNumSamples HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNumSamples ) +#define HYPRE_BoomerAMGSetNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetNumSweeps ) +#define HYPRE_BoomerAMGSetOldDefault HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetOldDefault ) +#define HYPRE_BoomerAMGSetOmega HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetOmega ) +#define HYPRE_BoomerAMGSetOuterWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetOuterWt ) +#define HYPRE_BoomerAMGSetOverlap HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetOverlap ) +#define HYPRE_BoomerAMGSetPlotFileName HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetPlotFileName ) +#define HYPRE_BoomerAMGSetPlotGrids HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetPlotGrids ) +#define HYPRE_BoomerAMGSetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetPMaxElmts ) +#define HYPRE_BoomerAMGSetPostInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetPostInterpType ) +#define HYPRE_BoomerAMGSetPrintFileName HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetPrintFileName ) +#define HYPRE_BoomerAMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetPrintLevel ) +#define HYPRE_BoomerAMGSetRAP2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRAP2 ) +#define HYPRE_BoomerAMGSetRedundant HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRedundant ) +#define HYPRE_BoomerAMGSetRelaxOrder HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRelaxOrder ) +#define HYPRE_BoomerAMGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRelaxType ) +#define HYPRE_BoomerAMGSetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRelaxWeight ) +#define HYPRE_BoomerAMGSetRelaxWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRelaxWt ) +#define HYPRE_BoomerAMGSetRestriction HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetRestriction ) +#define HYPRE_BoomerAMGSetSabs HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSabs ) +#define HYPRE_BoomerAMGSetSchwarzRlxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSchwarzRlxWeight ) +#define HYPRE_BoomerAMGSetSchwarzUseNonSymm HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSchwarzUseNonSymm ) +#define HYPRE_BoomerAMGSetSCommPkgSwitch HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSCommPkgSwitch ) +#define HYPRE_BoomerAMGSetSepWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSepWeight ) +#define HYPRE_BoomerAMGSetSeqThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSeqThreshold ) +#define HYPRE_BoomerAMGSetSetupType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSetupType ) +#define HYPRE_BoomerAMGSetSimple HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSimple ) +#define HYPRE_BoomerAMGSetSmoothInterpVectors HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSmoothInterpVectors ) +#define HYPRE_BoomerAMGSetSmoothNumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSmoothNumLevels ) +#define HYPRE_BoomerAMGSetSmoothNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSmoothNumSweeps ) +#define HYPRE_BoomerAMGSetSmoothType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSmoothType ) +#define HYPRE_BoomerAMGSetStrongThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetStrongThreshold ) +#define HYPRE_BoomerAMGSetStrongThresholdR HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetStrongThresholdR ) +#define HYPRE_BoomerAMGSetSym HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetSym ) +#define HYPRE_BoomerAMGSetThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetThreshold ) +#define HYPRE_BoomerAMGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetTol ) +#define HYPRE_BoomerAMGSetTruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetTruncFactor ) +#define HYPRE_BoomerAMGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetup ) +#define HYPRE_BoomerAMGSetVariant HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSetVariant ) +#define HYPRE_BoomerAMGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSolve ) +#define HYPRE_BoomerAMGSolveT HYPRE_MULTIPRECISION_FUNC ( HYPRE_BoomerAMGSolveT ) +#define HYPRE_ParCSRBiCGSTABCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABCreate ) +#define HYPRE_ParCSRBiCGSTABDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABDestroy ) +#define HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRBiCGSTABGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABGetNumIterations ) +#define HYPRE_ParCSRBiCGSTABGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABGetPrecond ) +#define HYPRE_ParCSRBiCGSTABGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABGetResidual ) +#define HYPRE_ParCSRBiCGSTABSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetAbsoluteTol ) +#define HYPRE_ParCSRBiCGSTABSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetLogging ) +#define HYPRE_ParCSRBiCGSTABSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetMaxIter ) +#define HYPRE_ParCSRBiCGSTABSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetMinIter ) +#define HYPRE_ParCSRBiCGSTABSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetPrecond ) +#define HYPRE_ParCSRBiCGSTABSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetPrintLevel ) +#define HYPRE_ParCSRBiCGSTABSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetStopCrit ) +#define HYPRE_ParCSRBiCGSTABSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetTol ) +#define HYPRE_ParCSRBiCGSTABSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSetup ) +#define HYPRE_ParCSRBiCGSTABSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRBiCGSTABSolve ) +#define HYPRE_BlockTridiagCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagCreate ) +#define HYPRE_BlockTridiagDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagDestroy ) +#define HYPRE_BlockTridiagSetAMGNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSetAMGNumSweeps ) +#define HYPRE_BlockTridiagSetAMGRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSetAMGRelaxType ) +#define HYPRE_BlockTridiagSetAMGStrengthThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSetAMGStrengthThreshold ) +#define HYPRE_BlockTridiagSetIndexSet HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSetIndexSet ) +#define HYPRE_BlockTridiagSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSetPrintLevel ) +#define HYPRE_BlockTridiagSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSetup ) +#define HYPRE_BlockTridiagSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_BlockTridiagSolve ) +#define HYPRE_ParCSRCGNRCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRCreate ) +#define HYPRE_ParCSRCGNRDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRDestroy ) +#define HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRCGNRGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRGetNumIterations ) +#define HYPRE_ParCSRCGNRGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRGetPrecond ) +#define HYPRE_ParCSRCGNRSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetLogging ) +#define HYPRE_ParCSRCGNRSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetMaxIter ) +#define HYPRE_ParCSRCGNRSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetMinIter ) +#define HYPRE_ParCSRCGNRSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetPrecond ) +#define HYPRE_ParCSRCGNRSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetStopCrit ) +#define HYPRE_ParCSRCGNRSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetTol ) +#define HYPRE_ParCSRCGNRSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSetup ) +#define HYPRE_ParCSRCGNRSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCGNRSolve ) +#define HYPRE_ParCSRCOGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESCreate ) +#define HYPRE_ParCSRCOGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESDestroy ) +#define HYPRE_ParCSRCOGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRCOGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESGetNumIterations ) +#define HYPRE_ParCSRCOGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESGetPrecond ) +#define HYPRE_ParCSRCOGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESGetResidual ) +#define HYPRE_ParCSRCOGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetAbsoluteTol ) +#define HYPRE_ParCSRCOGMRESSetCGS HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetCGS ) +#define HYPRE_ParCSRCOGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetKDim ) +#define HYPRE_ParCSRCOGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetLogging ) +#define HYPRE_ParCSRCOGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetMaxIter ) +#define HYPRE_ParCSRCOGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetMinIter ) +#define HYPRE_ParCSRCOGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetPrecond ) +#define HYPRE_ParCSRCOGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetPrintLevel ) +#define HYPRE_ParCSRCOGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetTol ) +#define HYPRE_ParCSRCOGMRESSetUnroll HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetUnroll ) +#define HYPRE_ParCSRCOGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSetup ) +#define HYPRE_ParCSRCOGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRCOGMRESSolve ) +#define HYPRE_EuclidCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidCreate ) +#define HYPRE_EuclidDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidDestroy ) +#define HYPRE_EuclidSetBJ HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetBJ ) +#define HYPRE_EuclidSetILUT HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetILUT ) +#define HYPRE_EuclidSetLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetLevel ) +#define HYPRE_EuclidSetMem HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetMem ) +#define HYPRE_EuclidSetParams HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetParams ) +#define HYPRE_EuclidSetParamsFromFile HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetParamsFromFile ) +#define HYPRE_EuclidSetRowScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetRowScale ) +#define HYPRE_EuclidSetSparseA HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetSparseA ) +#define HYPRE_EuclidSetStats HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetStats ) +#define HYPRE_EuclidSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSetup ) +#define HYPRE_EuclidSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_EuclidSolve ) +#define HYPRE_ParCSRFlexGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESCreate ) +#define HYPRE_ParCSRFlexGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESDestroy ) +#define HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRFlexGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESGetNumIterations ) +#define HYPRE_ParCSRFlexGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESGetPrecond ) +#define HYPRE_ParCSRFlexGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESGetResidual ) +#define HYPRE_ParCSRFlexGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetAbsoluteTol ) +#define HYPRE_ParCSRFlexGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetKDim ) +#define HYPRE_ParCSRFlexGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetLogging ) +#define HYPRE_ParCSRFlexGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetMaxIter ) +#define HYPRE_ParCSRFlexGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetMinIter ) +#define HYPRE_ParCSRFlexGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetModifyPC ) +#define HYPRE_ParCSRFlexGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetPrecond ) +#define HYPRE_ParCSRFlexGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetPrintLevel ) +#define HYPRE_ParCSRFlexGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetTol ) +#define HYPRE_ParCSRFlexGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSetup ) +#define HYPRE_ParCSRFlexGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRFlexGMRESSolve ) +#define HYPRE_FSAICreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAICreate ) +#define HYPRE_FSAIDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIDestroy ) +#define HYPRE_FSAIGetAlgoType HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetAlgoType ) +#define HYPRE_FSAIGetEigMaxIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetEigMaxIters ) +#define HYPRE_FSAIGetKapTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetKapTolerance ) +#define HYPRE_FSAIGetLocalSolveType HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetLocalSolveType ) +#define HYPRE_FSAIGetMaxIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetMaxIterations ) +#define HYPRE_FSAIGetMaxNnzRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetMaxNnzRow ) +#define HYPRE_FSAIGetMaxSteps HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetMaxSteps ) +#define HYPRE_FSAIGetMaxStepSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetMaxStepSize ) +#define HYPRE_FSAIGetNumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetNumLevels ) +#define HYPRE_FSAIGetOmega HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetOmega ) +#define HYPRE_FSAIGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetPrintLevel ) +#define HYPRE_FSAIGetThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetThreshold ) +#define HYPRE_FSAIGetTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetTolerance ) +#define HYPRE_FSAIGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAIGetZeroGuess ) +#define HYPRE_FSAISetAlgoType HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetAlgoType ) +#define HYPRE_FSAISetEigMaxIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetEigMaxIters ) +#define HYPRE_FSAISetKapTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetKapTolerance ) +#define HYPRE_FSAISetLocalSolveType HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetLocalSolveType ) +#define HYPRE_FSAISetMaxIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetMaxIterations ) +#define HYPRE_FSAISetMaxNnzRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetMaxNnzRow ) +#define HYPRE_FSAISetMaxSteps HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetMaxSteps ) +#define HYPRE_FSAISetMaxStepSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetMaxStepSize ) +#define HYPRE_FSAISetNumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetNumLevels ) +#define HYPRE_FSAISetOmega HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetOmega ) +#define HYPRE_FSAISetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetPrintLevel ) +#define HYPRE_FSAISetThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetThreshold ) +#define HYPRE_FSAISetTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetTolerance ) +#define HYPRE_FSAISetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetup ) +#define HYPRE_FSAISetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISetZeroGuess ) +#define HYPRE_FSAISolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_FSAISolve ) +#define HYPRE_ParCSRGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESCreate ) +#define HYPRE_ParCSRGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESDestroy ) +#define HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESGetNumIterations ) +#define HYPRE_ParCSRGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESGetPrecond ) +#define HYPRE_ParCSRGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESGetResidual ) +#define HYPRE_ParCSRGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetAbsoluteTol ) +#define HYPRE_ParCSRGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetKDim ) +#define HYPRE_ParCSRGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetLogging ) +#define HYPRE_ParCSRGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetMaxIter ) +#define HYPRE_ParCSRGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetMinIter ) +#define HYPRE_ParCSRGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetPrecond ) +#define HYPRE_ParCSRGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetPrintLevel ) +#define HYPRE_ParCSRGMRESSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetStopCrit ) +#define HYPRE_ParCSRGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetTol ) +#define HYPRE_ParCSRGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSetup ) +#define HYPRE_ParCSRGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRGMRESSolve ) +#define HYPRE_ParCSROnProcTriSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSROnProcTriSetup ) +#define HYPRE_ParCSROnProcTriSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSROnProcTriSolve ) +#define HYPRE_ParCSRHybridCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridCreate ) +#define HYPRE_ParCSRHybridDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridDestroy ) +#define HYPRE_ParCSRHybridGetDSCGNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetDSCGNumIterations ) +#define HYPRE_ParCSRHybridGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRHybridGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetNumIterations ) +#define HYPRE_ParCSRHybridGetPCGNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetPCGNumIterations ) +#define HYPRE_ParCSRHybridGetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetRecomputeResidual ) +#define HYPRE_ParCSRHybridGetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetRecomputeResidualP ) +#define HYPRE_ParCSRHybridGetSetupSolveTime HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridGetSetupSolveTime ) +#define HYPRE_ParCSRHybridSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetAbsoluteTol ) +#define HYPRE_ParCSRHybridSetAggInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetAggInterpType ) +#define HYPRE_ParCSRHybridSetAggNumLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetAggNumLevels ) +#define HYPRE_ParCSRHybridSetCoarsenType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetCoarsenType ) +#define HYPRE_ParCSRHybridSetConvergenceTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetConvergenceTol ) +#define HYPRE_ParCSRHybridSetCycleNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetCycleNumSweeps ) +#define HYPRE_ParCSRHybridSetCycleRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetCycleRelaxType ) +#define HYPRE_ParCSRHybridSetCycleType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetCycleType ) +#define HYPRE_ParCSRHybridSetDofFunc HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetDofFunc ) +#define HYPRE_ParCSRHybridSetDSCGMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetDSCGMaxIter ) +#define HYPRE_ParCSRHybridSetGridRelaxPoints HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetGridRelaxPoints ) +#define HYPRE_ParCSRHybridSetGridRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetGridRelaxType ) +#define HYPRE_ParCSRHybridSetInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetInterpType ) +#define HYPRE_ParCSRHybridSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetKDim ) +#define HYPRE_ParCSRHybridSetKeepTranspose HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetKeepTranspose ) +#define HYPRE_ParCSRHybridSetLevelOuterWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetLevelOuterWt ) +#define HYPRE_ParCSRHybridSetLevelRelaxWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetLevelRelaxWt ) +#define HYPRE_ParCSRHybridSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetLogging ) +#define HYPRE_ParCSRHybridSetMaxCoarseSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetMaxCoarseSize ) +#define HYPRE_ParCSRHybridSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetMaxLevels ) +#define HYPRE_ParCSRHybridSetMaxRowSum HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetMaxRowSum ) +#define HYPRE_ParCSRHybridSetMeasureType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetMeasureType ) +#define HYPRE_ParCSRHybridSetMinCoarseSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetMinCoarseSize ) +#define HYPRE_ParCSRHybridSetNodal HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetNodal ) +#define HYPRE_ParCSRHybridSetNonGalerkinTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetNonGalerkinTol ) +#define HYPRE_ParCSRHybridSetNumFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetNumFunctions ) +#define HYPRE_ParCSRHybridSetNumGridSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetNumGridSweeps ) +#define HYPRE_ParCSRHybridSetNumPaths HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetNumPaths ) +#define HYPRE_ParCSRHybridSetNumSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetNumSweeps ) +#define HYPRE_ParCSRHybridSetOmega HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetOmega ) +#define HYPRE_ParCSRHybridSetOuterWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetOuterWt ) +#define HYPRE_ParCSRHybridSetPCGMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetPCGMaxIter ) +#define HYPRE_ParCSRHybridSetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetPMaxElmts ) +#define HYPRE_ParCSRHybridSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetPrecond ) +#define HYPRE_ParCSRHybridSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetPrintLevel ) +#define HYPRE_ParCSRHybridSetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRecomputeResidual ) +#define HYPRE_ParCSRHybridSetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRecomputeResidualP ) +#define HYPRE_ParCSRHybridSetRelaxOrder HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRelaxOrder ) +#define HYPRE_ParCSRHybridSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRelaxType ) +#define HYPRE_ParCSRHybridSetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRelaxWeight ) +#define HYPRE_ParCSRHybridSetRelaxWt HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRelaxWt ) +#define HYPRE_ParCSRHybridSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetRelChange ) +#define HYPRE_ParCSRHybridSetSeqThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetSeqThreshold ) +#define HYPRE_ParCSRHybridSetSetupType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetSetupType ) +#define HYPRE_ParCSRHybridSetSolverType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetSolverType ) +#define HYPRE_ParCSRHybridSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetStopCrit ) +#define HYPRE_ParCSRHybridSetStrongThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetStrongThreshold ) +#define HYPRE_ParCSRHybridSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetTol ) +#define HYPRE_ParCSRHybridSetTruncFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetTruncFactor ) +#define HYPRE_ParCSRHybridSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetTwoNorm ) +#define HYPRE_ParCSRHybridSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSetup ) +#define HYPRE_ParCSRHybridSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRHybridSolve ) +#define HYPRE_ILUCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUCreate ) +#define HYPRE_ILUDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUDestroy ) +#define HYPRE_ILUGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUGetFinalRelativeResidualNorm ) +#define HYPRE_ILUGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUGetNumIterations ) +#define HYPRE_ILUSetDropThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetDropThreshold ) +#define HYPRE_ILUSetDropThresholdArray HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetDropThresholdArray ) +#define HYPRE_ILUSetIterativeSetupMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetIterativeSetupMaxIter ) +#define HYPRE_ILUSetIterativeSetupOption HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetIterativeSetupOption ) +#define HYPRE_ILUSetIterativeSetupTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetIterativeSetupTolerance ) +#define HYPRE_ILUSetIterativeSetupType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetIterativeSetupType ) +#define HYPRE_ILUSetLevelOfFill HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetLevelOfFill ) +#define HYPRE_ILUSetLocalReordering HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetLocalReordering ) +#define HYPRE_ILUSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetLogging ) +#define HYPRE_ILUSetLowerJacobiIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetLowerJacobiIters ) +#define HYPRE_ILUSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetMaxIter ) +#define HYPRE_ILUSetMaxNnzPerRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetMaxNnzPerRow ) +#define HYPRE_ILUSetNSHDropThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetNSHDropThreshold ) +#define HYPRE_ILUSetNSHDropThresholdArray HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetNSHDropThresholdArray ) +#define HYPRE_ILUSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetPrintLevel ) +#define HYPRE_ILUSetSchurMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetSchurMaxIter ) +#define HYPRE_ILUSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetTol ) +#define HYPRE_ILUSetTriSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetTriSolve ) +#define HYPRE_ILUSetType HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetType ) +#define HYPRE_ILUSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetup ) +#define HYPRE_ILUSetUpperJacobiIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSetUpperJacobiIters ) +#define HYPRE_ILUSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ILUSolve ) +#define aux_indexFromMask HYPRE_MULTIPRECISION_FUNC ( aux_indexFromMask ) +#define aux_maskCount HYPRE_MULTIPRECISION_FUNC ( aux_maskCount ) +#define HYPRE_ParCSRMultiVectorPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMultiVectorPrint ) +#define HYPRE_ParCSRMultiVectorRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMultiVectorRead ) +#define HYPRE_ParCSRSetupInterpreter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRSetupInterpreter ) +#define HYPRE_ParCSRSetupMatvec HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRSetupMatvec ) +#define hypre_ParPrintVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParPrintVector ) +#define hypre_ParReadVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParReadVector ) +#define hypre_ParSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParSetRandomValues ) +#define hypre_ParVectorSize HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSize ) +#define HYPRE_TempParCSRSetupInterpreter HYPRE_MULTIPRECISION_FUNC ( HYPRE_TempParCSRSetupInterpreter ) +#define HYPRE_ParCSRLGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESCreate ) +#define HYPRE_ParCSRLGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESDestroy ) +#define HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRLGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESGetNumIterations ) +#define HYPRE_ParCSRLGMRESGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESGetPrecond ) +#define HYPRE_ParCSRLGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESGetResidual ) +#define HYPRE_ParCSRLGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetAbsoluteTol ) +#define HYPRE_ParCSRLGMRESSetAugDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetAugDim ) +#define HYPRE_ParCSRLGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetKDim ) +#define HYPRE_ParCSRLGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetLogging ) +#define HYPRE_ParCSRLGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetMaxIter ) +#define HYPRE_ParCSRLGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetMinIter ) +#define HYPRE_ParCSRLGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetPrecond ) +#define HYPRE_ParCSRLGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetPrintLevel ) +#define HYPRE_ParCSRLGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetTol ) +#define HYPRE_ParCSRLGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSetup ) +#define HYPRE_ParCSRLGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRLGMRESSolve ) +#define HYPRE_MGRBuildAff HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRBuildAff ) +#define HYPRE_MGRCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRCreate ) +#define HYPRE_MGRDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRDestroy ) +#define HYPRE_MGRGetCoarseGridConvergenceFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRGetCoarseGridConvergenceFactor ) +#define HYPRE_MGRGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRGetFinalRelativeResidualNorm ) +#define HYPRE_MGRGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRGetNumIterations ) +#define HYPRE_MGRSetBlockJacobiBlockSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetBlockJacobiBlockSize ) +#define HYPRE_MGRSetBlockSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetBlockSize ) +#define HYPRE_MGRSetCoarseGridMethod HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetCoarseGridMethod ) +#define HYPRE_MGRSetCoarseGridPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetCoarseGridPrintLevel ) +#define HYPRE_MGRSetCoarseSolver HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetCoarseSolver ) +#define HYPRE_MGRSetCpointsByBlock HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetCpointsByBlock ) +#define HYPRE_MGRSetCpointsByContiguousBlock HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetCpointsByContiguousBlock ) +#define HYPRE_MGRSetCpointsByPointMarkerArray HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetCpointsByPointMarkerArray ) +#define HYPRE_MGRSetFRelaxMethod HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetFRelaxMethod ) +#define HYPRE_MGRSetFrelaxPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetFrelaxPrintLevel ) +#define HYPRE_MGRSetFSolver HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetFSolver ) +#define HYPRE_MGRSetFSolverAtLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetFSolverAtLevel ) +#define HYPRE_MGRSetGlobalSmoothCycle HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetGlobalSmoothCycle ) +#define HYPRE_MGRSetGlobalSmootherAtLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetGlobalSmootherAtLevel ) +#define HYPRE_MGRSetGlobalSmoothType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetGlobalSmoothType ) +#define HYPRE_MGRSetInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetInterpType ) +#define HYPRE_MGRSetLevelFRelaxMethod HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelFRelaxMethod ) +#define HYPRE_MGRSetLevelFRelaxNumFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelFRelaxNumFunctions ) +#define HYPRE_MGRSetLevelFRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelFRelaxType ) +#define HYPRE_MGRSetLevelInterpType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelInterpType ) +#define HYPRE_MGRSetLevelNonGalerkinMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelNonGalerkinMaxElmts ) +#define HYPRE_MGRSetLevelNumRelaxSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelNumRelaxSweeps ) +#define HYPRE_MGRSetLevelPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelPMaxElmts ) +#define HYPRE_MGRSetLevelRestrictType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelRestrictType ) +#define HYPRE_MGRSetLevelSmoothIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelSmoothIters ) +#define HYPRE_MGRSetLevelSmoothType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLevelSmoothType ) +#define HYPRE_MGRSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetLogging ) +#define HYPRE_MGRSetMaxCoarseLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetMaxCoarseLevels ) +#define HYPRE_MGRSetMaxGlobalSmoothIters HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetMaxGlobalSmoothIters ) +#define HYPRE_MGRSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetMaxIter ) +#define HYPRE_MGRSetNonCpointsToFpoints HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetNonCpointsToFpoints ) +#define HYPRE_MGRSetNonGalerkinMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetNonGalerkinMaxElmts ) +#define HYPRE_MGRSetNumInterpSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetNumInterpSweeps ) +#define HYPRE_MGRSetNumRelaxSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetNumRelaxSweeps ) +#define HYPRE_MGRSetNumRestrictSweeps HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetNumRestrictSweeps ) +#define HYPRE_MGRSetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetPMaxElmts ) +#define HYPRE_MGRSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetPrintLevel ) +#define HYPRE_MGRSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetRelaxType ) +#define HYPRE_MGRSetReservedCoarseNodes HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetReservedCoarseNodes ) +#define HYPRE_MGRSetReservedCpointsLevelToKeep HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetReservedCpointsLevelToKeep ) +#define HYPRE_MGRSetRestrictType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetRestrictType ) +#define HYPRE_MGRSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetTol ) +#define HYPRE_MGRSetTruncateCoarseGridThreshold HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetTruncateCoarseGridThreshold ) +#define HYPRE_MGRSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSetup ) +#define HYPRE_MGRSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_MGRSolve ) +#define HYPRE_ParaSailsBuildIJMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsBuildIJMatrix ) +#define HYPRE_ParaSailsCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsCreate ) +#define HYPRE_ParaSailsDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsDestroy ) +#define HYPRE_ParaSailsGetFilter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetFilter ) +#define HYPRE_ParaSailsGetLoadbal HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetLoadbal ) +#define HYPRE_ParaSailsGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetLogging ) +#define HYPRE_ParaSailsGetNlevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetNlevels ) +#define HYPRE_ParaSailsGetReuse HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetReuse ) +#define HYPRE_ParaSailsGetSym HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetSym ) +#define HYPRE_ParaSailsGetThresh HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsGetThresh ) +#define HYPRE_ParaSailsSetFilter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetFilter ) +#define HYPRE_ParaSailsSetLoadbal HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetLoadbal ) +#define HYPRE_ParaSailsSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetLogging ) +#define HYPRE_ParaSailsSetNlevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetNlevels ) +#define HYPRE_ParaSailsSetParams HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetParams ) +#define HYPRE_ParaSailsSetReuse HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetReuse ) +#define HYPRE_ParaSailsSetSym HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetSym ) +#define HYPRE_ParaSailsSetThresh HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetThresh ) +#define HYPRE_ParaSailsSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSetup ) +#define HYPRE_ParaSailsSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParaSailsSolve ) +#define HYPRE_ParCSRParaSailsCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsCreate ) +#define HYPRE_ParCSRParaSailsDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsDestroy ) +#define HYPRE_ParCSRParaSailsGetFilter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsGetFilter ) +#define HYPRE_ParCSRParaSailsGetLoadbal HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsGetLoadbal ) +#define HYPRE_ParCSRParaSailsSetFilter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetFilter ) +#define HYPRE_ParCSRParaSailsSetLoadbal HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetLoadbal ) +#define HYPRE_ParCSRParaSailsSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetLogging ) +#define HYPRE_ParCSRParaSailsSetParams HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetParams ) +#define HYPRE_ParCSRParaSailsSetReuse HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetReuse ) +#define HYPRE_ParCSRParaSailsSetSym HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetSym ) +#define HYPRE_ParCSRParaSailsSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSetup ) +#define HYPRE_ParCSRParaSailsSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRParaSailsSolve ) +#define HYPRE_ParCSRDiagScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRDiagScale ) +#define HYPRE_ParCSRDiagScaleSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRDiagScaleSetup ) +#define HYPRE_ParCSRPCGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGCreate ) +#define HYPRE_ParCSRPCGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGDestroy ) +#define HYPRE_ParCSRPCGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGGetFinalRelativeResidualNorm ) +#define HYPRE_ParCSRPCGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGGetNumIterations ) +#define HYPRE_ParCSRPCGGetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGGetPrecond ) +#define HYPRE_ParCSRPCGGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGGetResidual ) +#define HYPRE_ParCSRPCGSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetAbsoluteTol ) +#define HYPRE_ParCSRPCGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetLogging ) +#define HYPRE_ParCSRPCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetMaxIter ) +#define HYPRE_ParCSRPCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetPrecond ) +#define HYPRE_ParCSRPCGSetPreconditioner HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetPreconditioner ) +#define HYPRE_ParCSRPCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetPrintLevel ) +#define HYPRE_ParCSRPCGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetRelChange ) +#define HYPRE_ParCSRPCGSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetStopCrit ) +#define HYPRE_ParCSRPCGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetTol ) +#define HYPRE_ParCSRPCGSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetTwoNorm ) +#define HYPRE_ParCSRPCGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSetup ) +#define HYPRE_ParCSRPCGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPCGSolve ) +#define HYPRE_ParCSRPilutCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutCreate ) +#define HYPRE_ParCSRPilutDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutDestroy ) +#define HYPRE_ParCSRPilutSetDropTolerance HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutSetDropTolerance ) +#define HYPRE_ParCSRPilutSetFactorRowSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutSetFactorRowSize ) +#define HYPRE_ParCSRPilutSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutSetLogging ) +#define HYPRE_ParCSRPilutSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutSetMaxIter ) +#define HYPRE_ParCSRPilutSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutSetup ) +#define HYPRE_ParCSRPilutSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRPilutSolve ) +#define HYPRE_SchwarzCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzCreate ) +#define HYPRE_SchwarzDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzDestroy ) +#define HYPRE_SchwarzSetDofFunc HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetDofFunc ) +#define HYPRE_SchwarzSetDomainStructure HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetDomainStructure ) +#define HYPRE_SchwarzSetDomainType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetDomainType ) +#define HYPRE_SchwarzSetNonSymm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetNonSymm ) +#define HYPRE_SchwarzSetNumFunctions HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetNumFunctions ) +#define HYPRE_SchwarzSetOverlap HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetOverlap ) +#define HYPRE_SchwarzSetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetRelaxWeight ) +#define HYPRE_SchwarzSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetup ) +#define HYPRE_SchwarzSetVariant HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSetVariant ) +#define HYPRE_SchwarzSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SchwarzSolve ) +#define hypre_BoomerAMGBuildModPartialExtInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModPartialExtInterp ) +#define hypre_BoomerAMGBuildModPartialExtInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModPartialExtInterpHost ) +#define hypre_BoomerAMGBuildModPartialExtPEInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModPartialExtPEInterp ) +#define hypre_BoomerAMGBuildModPartialExtPEInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModPartialExtPEInterpHost ) +#define hypre_BoomerAMGAdditiveCycle HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGAdditiveCycle ) +#define hypre_CreateDinv HYPRE_MULTIPRECISION_FUNC ( hypre_CreateDinv ) +#define hypre_CreateLambda HYPRE_MULTIPRECISION_FUNC ( hypre_CreateLambda ) +#define hypre_AMGDDCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCommPkgCreate ) +#define hypre_AMGDDCommPkgDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCommPkgDestroy ) +#define hypre_AMGDDCommPkgRecvLevelDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCommPkgRecvLevelDestroy ) +#define hypre_AMGDDCommPkgSendLevelDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCommPkgSendLevelDestroy ) +#define hypre_AMGDDCompGridCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridCreate ) +#define hypre_AMGDDCompGridDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridDestroy ) +#define hypre_AMGDDCompGridFinalize HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridFinalize ) +#define hypre_AMGDDCompGridInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridInitialize ) +#define hypre_AMGDDCompGridLocalIndexBinarySearch HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridLocalIndexBinarySearch ) +#define hypre_AMGDDCompGridMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridMatrixCreate ) +#define hypre_AMGDDCompGridMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridMatrixDestroy ) +#define hypre_AMGDDCompGridMatrixSetupRealMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridMatrixSetupRealMatvec ) +#define hypre_AMGDDCompGridMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridMatvec ) +#define hypre_AMGDDCompGridRealMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridRealMatvec ) +#define hypre_AMGDDCompGridResize HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridResize ) +#define hypre_AMGDDCompGridSetupLocalIndices HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridSetupLocalIndices ) +#define hypre_AMGDDCompGridSetupLocalIndicesP HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridSetupLocalIndicesP ) +#define hypre_AMGDDCompGridSetupRelax HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridSetupRelax ) +#define hypre_AMGDDCompGridVectorAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorAxpy ) +#define hypre_AMGDDCompGridVectorCopy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorCopy ) +#define hypre_AMGDDCompGridVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorCreate ) +#define hypre_AMGDDCompGridVectorDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorDestroy ) +#define hypre_AMGDDCompGridVectorInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorInitialize ) +#define hypre_AMGDDCompGridVectorInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorInnerProd ) +#define hypre_AMGDDCompGridVectorRealAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorRealAxpy ) +#define hypre_AMGDDCompGridVectorRealCopy HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorRealCopy ) +#define hypre_AMGDDCompGridVectorRealInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorRealInnerProd ) +#define hypre_AMGDDCompGridVectorRealScale HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorRealScale ) +#define hypre_AMGDDCompGridVectorRealSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorRealSetConstantValues ) +#define hypre_AMGDDCompGridVectorScale HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorScale ) +#define hypre_AMGDDCompGridVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_AMGDDCompGridVectorSetConstantValues ) +#define hypre_BoomerAMGDD_FAC HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC ) +#define hypre_BoomerAMGDD_FAC_CFL1Jacobi HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_CFL1Jacobi ) +#define hypre_BoomerAMGDD_FAC_CFL1JacobiHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_CFL1JacobiHost ) +#define hypre_BoomerAMGDD_FAC_Cycle HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_Cycle ) +#define hypre_BoomerAMGDD_FAC_FCycle HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_FCycle ) +#define hypre_BoomerAMGDD_FAC_GaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_GaussSeidel ) +#define hypre_BoomerAMGDD_FAC_Interpolate HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_Interpolate ) +#define hypre_BoomerAMGDD_FAC_Jacobi HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_Jacobi ) +#define hypre_BoomerAMGDD_FAC_JacobiHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_JacobiHost ) +#define hypre_BoomerAMGDD_FAC_OrderedGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_OrderedGaussSeidel ) +#define hypre_BoomerAMGDD_FAC_Relax HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_Relax ) +#define hypre_BoomerAMGDD_FAC_Restrict HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FAC_Restrict ) +#define hypre_BoomerAMGDD_AddFlagToSendFlag HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_AddFlagToSendFlag ) +#define hypre_BoomerAMGDD_AddToSendAndRequestDofs HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_AddToSendAndRequestDofs ) +#define hypre_BoomerAMGDD_CommunicateRemainingMatrixInfo HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_CommunicateRemainingMatrixInfo ) +#define hypre_BoomerAMGDD_FindNeighborProcessors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FindNeighborProcessors ) +#define hypre_BoomerAMGDD_FixUpRecvMaps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_FixUpRecvMaps ) +#define hypre_BoomerAMGDD_GetDofRecvProc HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_GetDofRecvProc ) +#define hypre_BoomerAMGDD_LocalToGlobalIndex HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_LocalToGlobalIndex ) +#define hypre_BoomerAMGDD_MarkCoarse HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_MarkCoarse ) +#define hypre_BoomerAMGDD_PackColInd HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_PackColInd ) +#define hypre_BoomerAMGDD_PackRecvMapSendBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_PackRecvMapSendBuffer ) +#define hypre_BoomerAMGDD_PackSendBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_PackSendBuffer ) +#define hypre_BoomerAMGDD_RecursivelyBuildPsiComposite HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_RecursivelyBuildPsiComposite ) +#define hypre_BoomerAMGDD_RecursivelyFindNeighborNodes HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_RecursivelyFindNeighborNodes ) +#define hypre_BoomerAMGDD_RemoveRedundancy HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_RemoveRedundancy ) +#define hypre_BoomerAMGDD_SetupNearestProcessorNeighbors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_SetupNearestProcessorNeighbors ) +#define hypre_BoomerAMGDD_SubtractLists HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_SubtractLists ) +#define hypre_BoomerAMGDD_UnpackRecvBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_UnpackRecvBuffer ) +#define hypre_BoomerAMGDD_UnpackSendFlagBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_UnpackSendFlagBuffer ) +#define hypre_BoomerAMGDDCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDCreate ) +#define hypre_BoomerAMGDDDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDDestroy ) +#define hypre_BoomerAMGDDGetAMG HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetAMG ) +#define hypre_BoomerAMGDDGetFACCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetFACCycleType ) +#define hypre_BoomerAMGDDGetFACNumCycles HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetFACNumCycles ) +#define hypre_BoomerAMGDDGetFACNumRelax HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetFACNumRelax ) +#define hypre_BoomerAMGDDGetFACRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetFACRelaxType ) +#define hypre_BoomerAMGDDGetFACRelaxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetFACRelaxWeight ) +#define hypre_BoomerAMGDDGetNumGhostLayers HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetNumGhostLayers ) +#define hypre_BoomerAMGDDGetPadding HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetPadding ) +#define hypre_BoomerAMGDDGetStartLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDGetStartLevel ) +#define hypre_BoomerAMGDDSetFACCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetFACCycleType ) +#define hypre_BoomerAMGDDSetFACNumCycles HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetFACNumCycles ) +#define hypre_BoomerAMGDDSetFACNumRelax HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetFACNumRelax ) +#define hypre_BoomerAMGDDSetFACRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetFACRelaxType ) +#define hypre_BoomerAMGDDSetFACRelaxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetFACRelaxWeight ) +#define hypre_BoomerAMGDDSetNumGhostLayers HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetNumGhostLayers ) +#define hypre_BoomerAMGDDSetPadding HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetPadding ) +#define hypre_BoomerAMGDDSetStartLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetStartLevel ) +#define hypre_BoomerAMGDDSetUserFACRelaxation HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetUserFACRelaxation ) +#define hypre_BoomerAMGDDSetup HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSetup ) +#define hypre_BoomerAMGDD_PackResidualBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_PackResidualBuffer ) +#define hypre_BoomerAMGDD_ResidualCommunication HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_ResidualCommunication ) +#define hypre_BoomerAMGDDSolve HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDDSolve ) +#define hypre_BoomerAMGDD_UnpackResidualBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDD_UnpackResidualBuffer ) +#define hypre_BoomerAMGCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreate ) +#define hypre_BoomerAMGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGDestroy ) +#define hypre_BoomerAMGGetAdditive HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetAdditive ) +#define hypre_BoomerAMGGetCoarsenCutFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCoarsenCutFactor ) +#define hypre_BoomerAMGGetCoarsenType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCoarsenType ) +#define hypre_BoomerAMGGetConvergeType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetConvergeType ) +#define hypre_BoomerAMGGetCumNnzAP HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCumNnzAP ) +#define hypre_BoomerAMGGetCumNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCumNumIterations ) +#define hypre_BoomerAMGGetCycleNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCycleNumSweeps ) +#define hypre_BoomerAMGGetCycleRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCycleRelaxType ) +#define hypre_BoomerAMGGetCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCycleType ) +#define hypre_BoomerAMGGetDebugFlag HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetDebugFlag ) +#define hypre_BoomerAMGGetDomainType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetDomainType ) +#define hypre_BoomerAMGGetFCycle HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetFCycle ) +#define hypre_BoomerAMGGetFilterFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetFilterFunctions ) +#define hypre_BoomerAMGGetFilterThresholdR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetFilterThresholdR ) +#define hypre_BoomerAMGGetGridHierarchy HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetGridHierarchy ) +#define hypre_BoomerAMGGetGridRelaxPoints HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetGridRelaxPoints ) +#define hypre_BoomerAMGGetGridRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetGridRelaxType ) +#define hypre_BoomerAMGGetInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetInterpType ) +#define hypre_BoomerAMGGetJacobiTruncThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetJacobiTruncThreshold ) +#define hypre_BoomerAMGGetLevelOuterWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetLevelOuterWt ) +#define hypre_BoomerAMGGetLevelRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetLevelRelaxWt ) +#define hypre_BoomerAMGGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetLogging ) +#define hypre_BoomerAMGGetMaxCoarseSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMaxCoarseSize ) +#define hypre_BoomerAMGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMaxIter ) +#define hypre_BoomerAMGGetMaxLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMaxLevels ) +#define hypre_BoomerAMGGetMaxRowSum HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMaxRowSum ) +#define hypre_BoomerAMGGetMeasureType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMeasureType ) +#define hypre_BoomerAMGGetMinCoarseSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMinCoarseSize ) +#define hypre_BoomerAMGGetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMinIter ) +#define hypre_BoomerAMGGetMultAdditive HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetMultAdditive ) +#define hypre_BoomerAMGGetNumFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetNumFunctions ) +#define hypre_BoomerAMGGetNumGridSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetNumGridSweeps ) +#define hypre_BoomerAMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetNumIterations ) +#define hypre_BoomerAMGGetOmega HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetOmega ) +#define hypre_BoomerAMGGetOverlap HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetOverlap ) +#define hypre_BoomerAMGGetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetPMaxElmts ) +#define hypre_BoomerAMGGetPostInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetPostInterpType ) +#define hypre_BoomerAMGGetPrintFileName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetPrintFileName ) +#define hypre_BoomerAMGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetPrintLevel ) +#define hypre_BoomerAMGGetRedundant HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetRedundant ) +#define hypre_BoomerAMGGetRelaxOrder HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetRelaxOrder ) +#define hypre_BoomerAMGGetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetRelaxWeight ) +#define hypre_BoomerAMGGetRelResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetRelResidualNorm ) +#define hypre_BoomerAMGGetResidual HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetResidual ) +#define hypre_BoomerAMGGetSchwarzRlxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSchwarzRlxWeight ) +#define hypre_BoomerAMGGetSeqThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSeqThreshold ) +#define hypre_BoomerAMGGetSetupType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSetupType ) +#define hypre_BoomerAMGGetSimple HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSimple ) +#define hypre_BoomerAMGGetSmoothNumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSmoothNumLevels ) +#define hypre_BoomerAMGGetSmoothNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSmoothNumSweeps ) +#define hypre_BoomerAMGGetSmoothType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetSmoothType ) +#define hypre_BoomerAMGGetStrongThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetStrongThreshold ) +#define hypre_BoomerAMGGetStrongThresholdR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetStrongThresholdR ) +#define hypre_BoomerAMGGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetTol ) +#define hypre_BoomerAMGGetTruncFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetTruncFactor ) +#define hypre_BoomerAMGGetVariant HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetVariant ) +#define hypre_BoomerAMGSetAdditive HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAdditive ) +#define hypre_BoomerAMGSetAddLastLvl HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAddLastLvl ) +#define hypre_BoomerAMGSetAddRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAddRelaxType ) +#define hypre_BoomerAMGSetAddRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAddRelaxWt ) +#define hypre_BoomerAMGSetADropTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetADropTol ) +#define hypre_BoomerAMGSetADropType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetADropType ) +#define hypre_BoomerAMGSetAggInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAggInterpType ) +#define hypre_BoomerAMGSetAggNumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAggNumLevels ) +#define hypre_BoomerAMGSetAggP12MaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAggP12MaxElmts ) +#define hypre_BoomerAMGSetAggP12TruncFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAggP12TruncFactor ) +#define hypre_BoomerAMGSetAggPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAggPMaxElmts ) +#define hypre_BoomerAMGSetAggTruncFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetAggTruncFactor ) +#define hypre_BoomerAMGSetCGCIts HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCGCIts ) +#define hypre_BoomerAMGSetChebyEigEst HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetChebyEigEst ) +#define hypre_BoomerAMGSetChebyFraction HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetChebyFraction ) +#define hypre_BoomerAMGSetChebyOrder HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetChebyOrder ) +#define hypre_BoomerAMGSetChebyScale HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetChebyScale ) +#define hypre_BoomerAMGSetChebyVariant HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetChebyVariant ) +#define hypre_BoomerAMGSetCoarsenCutFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCoarsenCutFactor ) +#define hypre_BoomerAMGSetCoarsenType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCoarsenType ) +#define hypre_BoomerAMGSetConvergeType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetConvergeType ) +#define hypre_BoomerAMGSetCoordDim HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCoordDim ) +#define hypre_BoomerAMGSetCoordinates HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCoordinates ) +#define hypre_BoomerAMGSetCPoints HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCPoints ) +#define hypre_BoomerAMGSetCRRate HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCRRate ) +#define hypre_BoomerAMGSetCRStrongTh HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCRStrongTh ) +#define hypre_BoomerAMGSetCRUseCG HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCRUseCG ) +#define hypre_BoomerAMGSetCumNnzAP HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCumNnzAP ) +#define hypre_BoomerAMGSetCycleNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCycleNumSweeps ) +#define hypre_BoomerAMGSetCycleRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCycleRelaxType ) +#define hypre_BoomerAMGSetCycleType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetCycleType ) +#define hypre_BoomerAMGSetDebugFlag HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetDebugFlag ) +#define hypre_BoomerAMGSetDofFunc HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetDofFunc ) +#define hypre_BoomerAMGSetDofPoint HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetDofPoint ) +#define hypre_BoomerAMGSetDomainType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetDomainType ) +#define hypre_BoomerAMGSetDropTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetDropTol ) +#define hypre_BoomerAMGSetEuBJ HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetEuBJ ) +#define hypre_BoomerAMGSetEuclidFile HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetEuclidFile ) +#define hypre_BoomerAMGSetEuLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetEuLevel ) +#define hypre_BoomerAMGSetEuSparseA HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetEuSparseA ) +#define hypre_BoomerAMGSetFCycle HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFCycle ) +#define hypre_BoomerAMGSetFilter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFilter ) +#define hypre_BoomerAMGSetFilterFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFilterFunctions ) +#define hypre_BoomerAMGSetFilterThresholdR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFilterThresholdR ) +#define hypre_BoomerAMGSetFPoints HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFPoints ) +#define hypre_BoomerAMGSetFSAIAlgoType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIAlgoType ) +#define hypre_BoomerAMGSetFSAIEigMaxIters HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIEigMaxIters ) +#define hypre_BoomerAMGSetFSAIKapTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIKapTolerance ) +#define hypre_BoomerAMGSetFSAILocalSolveType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAILocalSolveType ) +#define hypre_BoomerAMGSetFSAIMaxNnzRow HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIMaxNnzRow ) +#define hypre_BoomerAMGSetFSAIMaxSteps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIMaxSteps ) +#define hypre_BoomerAMGSetFSAIMaxStepSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIMaxStepSize ) +#define hypre_BoomerAMGSetFSAINumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAINumLevels ) +#define hypre_BoomerAMGSetFSAIThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetFSAIThreshold ) +#define hypre_BoomerAMGSetGMRESSwitchR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetGMRESSwitchR ) +#define hypre_BoomerAMGSetGridRelaxPoints HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetGridRelaxPoints ) +#define hypre_BoomerAMGSetGridRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetGridRelaxType ) +#define hypre_BoomerAMGSetGSMG HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetGSMG ) +#define hypre_BoomerAMGSetILUDroptol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUDroptol ) +#define hypre_BoomerAMGSetILUIterSetupMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUIterSetupMaxIter ) +#define hypre_BoomerAMGSetILUIterSetupOption HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUIterSetupOption ) +#define hypre_BoomerAMGSetILUIterSetupTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUIterSetupTolerance ) +#define hypre_BoomerAMGSetILUIterSetupType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUIterSetupType ) +#define hypre_BoomerAMGSetILULevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILULevel ) +#define hypre_BoomerAMGSetILULocalReordering HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILULocalReordering ) +#define hypre_BoomerAMGSetILULowerJacobiIters HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILULowerJacobiIters ) +#define hypre_BoomerAMGSetILUMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUMaxIter ) +#define hypre_BoomerAMGSetILUMaxRowNnz HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUMaxRowNnz ) +#define hypre_BoomerAMGSetILUTriSolve HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUTriSolve ) +#define hypre_BoomerAMGSetILUType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUType ) +#define hypre_BoomerAMGSetILUUpperJacobiIters HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetILUUpperJacobiIters ) +#define hypre_BoomerAMGSetInterpRefine HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpRefine ) +#define hypre_BoomerAMGSetInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpType ) +#define hypre_BoomerAMGSetInterpVecAbsQTrunc HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpVecAbsQTrunc ) +#define hypre_BoomerAMGSetInterpVecFirstLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpVecFirstLevel ) +#define hypre_BoomerAMGSetInterpVecQMax HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpVecQMax ) +#define hypre_BoomerAMGSetInterpVectors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpVectors ) +#define hypre_BoomerAMGSetInterpVecVariant HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetInterpVecVariant ) +#define hypre_BoomerAMGSetIsTriangular HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetIsTriangular ) +#define hypre_BoomerAMGSetISType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetISType ) +#define hypre_BoomerAMGSetJacobiTruncThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetJacobiTruncThreshold ) +#define hypre_BoomerAMGSetKeepSameSign HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetKeepSameSign ) +#define hypre_BoomerAMGSetKeepTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetKeepTranspose ) +#define hypre_BoomerAMGSetLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetLevel ) +#define hypre_BoomerAMGSetLevelNonGalerkinTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetLevelNonGalerkinTol ) +#define hypre_BoomerAMGSetLevelOuterWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetLevelOuterWt ) +#define hypre_BoomerAMGSetLevelRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetLevelRelaxWt ) +#define hypre_BoomerAMGSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetLogging ) +#define hypre_BoomerAMGSetMaxCoarseSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMaxCoarseSize ) +#define hypre_BoomerAMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMaxIter ) +#define hypre_BoomerAMGSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMaxLevels ) +#define hypre_BoomerAMGSetMaxNzPerRow HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMaxNzPerRow ) +#define hypre_BoomerAMGSetMaxRowSum HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMaxRowSum ) +#define hypre_BoomerAMGSetMeasureType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMeasureType ) +#define hypre_BoomerAMGSetMinCoarseSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMinCoarseSize ) +#define hypre_BoomerAMGSetMinIter HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMinIter ) +#define hypre_BoomerAMGSetModuleRAP2 HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetModuleRAP2 ) +#define hypre_BoomerAMGSetMultAdditive HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMultAdditive ) +#define hypre_BoomerAMGSetMultAddPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMultAddPMaxElmts ) +#define hypre_BoomerAMGSetMultAddTruncFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetMultAddTruncFactor ) +#define hypre_BoomerAMGSetNodal HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNodal ) +#define hypre_BoomerAMGSetNodalDiag HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNodalDiag ) +#define hypre_BoomerAMGSetNodalLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNodalLevels ) +#define hypre_BoomerAMGSetNonGalerkinTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNonGalerkinTol ) +#define hypre_BoomerAMGSetNonGalerkTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNonGalerkTol ) +#define hypre_BoomerAMGSetNumCRRelaxSteps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumCRRelaxSteps ) +#define hypre_BoomerAMGSetNumFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumFunctions ) +#define hypre_BoomerAMGSetNumGridSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumGridSweeps ) +#define hypre_BoomerAMGSetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumIterations ) +#define hypre_BoomerAMGSetNumPaths HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumPaths ) +#define hypre_BoomerAMGSetNumPoints HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumPoints ) +#define hypre_BoomerAMGSetNumSamples HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumSamples ) +#define hypre_BoomerAMGSetNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetNumSweeps ) +#define hypre_BoomerAMGSetOmega HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetOmega ) +#define hypre_BoomerAMGSetOuterWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetOuterWt ) +#define hypre_BoomerAMGSetOverlap HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetOverlap ) +#define hypre_BoomerAMGSetPlotFileName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPlotFileName ) +#define hypre_BoomerAMGSetPlotGrids HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPlotGrids ) +#define hypre_BoomerAMGSetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPMaxElmts ) +#define hypre_BoomerAMGSetPointDofMap HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPointDofMap ) +#define hypre_BoomerAMGSetPostInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPostInterpType ) +#define hypre_BoomerAMGSetPrintFileName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPrintFileName ) +#define hypre_BoomerAMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetPrintLevel ) +#define hypre_BoomerAMGSetRAP2 HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRAP2 ) +#define hypre_BoomerAMGSetRedundant HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRedundant ) +#define hypre_BoomerAMGSetRelaxOrder HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRelaxOrder ) +#define hypre_BoomerAMGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRelaxType ) +#define hypre_BoomerAMGSetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRelaxWeight ) +#define hypre_BoomerAMGSetRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRelaxWt ) +#define hypre_BoomerAMGSetRestriction HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetRestriction ) +#define hypre_BoomerAMGSetSabs HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSabs ) +#define hypre_BoomerAMGSetSchwarzRlxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSchwarzRlxWeight ) +#define hypre_BoomerAMGSetSchwarzUseNonSymm HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSchwarzUseNonSymm ) +#define hypre_BoomerAMGSetSepWeight HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSepWeight ) +#define hypre_BoomerAMGSetSeqThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSeqThreshold ) +#define hypre_BoomerAMGSetSetupType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSetupType ) +#define hypre_BoomerAMGSetSimple HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSimple ) +#define hypre_BoomerAMGSetSmoothInterpVectors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSmoothInterpVectors ) +#define hypre_BoomerAMGSetSmoothNumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSmoothNumLevels ) +#define hypre_BoomerAMGSetSmoothNumSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSmoothNumSweeps ) +#define hypre_BoomerAMGSetSmoothType HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSmoothType ) +#define hypre_BoomerAMGSetStrongThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetStrongThreshold ) +#define hypre_BoomerAMGSetStrongThresholdR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetStrongThresholdR ) +#define hypre_BoomerAMGSetSym HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetSym ) +#define hypre_BoomerAMGSetThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetThreshold ) +#define hypre_BoomerAMGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetTol ) +#define hypre_BoomerAMGSetTruncFactor HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetTruncFactor ) +#define hypre_BoomerAMGSetVariant HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetVariant ) +#define hypre_BoomerAMGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetup ) +#define hypre_BoomerAMGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSolve ) +#define hypre_BoomerAMGCycleT HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCycleT ) +#define hypre_BoomerAMGRelaxT HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxT ) +#define hypre_BoomerAMGSolveT HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSolveT ) +#define hypre_AmgCGCBoundaryFix HYPRE_MULTIPRECISION_FUNC ( hypre_AmgCGCBoundaryFix ) +#define hypre_AmgCGCChoose HYPRE_MULTIPRECISION_FUNC ( hypre_AmgCGCChoose ) +#define hypre_AmgCGCGraphAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_AmgCGCGraphAssemble ) +#define hypre_AmgCGCPrepare HYPRE_MULTIPRECISION_FUNC ( hypre_AmgCGCPrepare ) +#define hypre_BoomerAMGCoarsenCGC HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenCGC ) +#define hypre_BoomerAMGCoarsenCGCb HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenCGCb ) +#define hypre_Bisection HYPRE_MULTIPRECISION_FUNC ( hypre_Bisection ) +#define hypre_BoomerAMGCGRelaxWt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCGRelaxWt ) +#define hypre_ParCSRRelax_Cheby_Setup HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax_Cheby_Setup ) +#define hypre_ParCSRRelax_Cheby_Solve HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax_Cheby_Solve ) +#define hypre_ParCSRRelax_Cheby_SolveHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax_Cheby_SolveHost ) +#define hypre_BoomerAMGCoarsen HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsen ) +#define hypre_BoomerAMGCoarsenFalgout HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenFalgout ) +#define hypre_BoomerAMGCoarsenHMIS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenHMIS ) +#define hypre_BoomerAMGCoarsenPMIS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenPMIS ) +#define hypre_BoomerAMGCoarsenPMISHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenPMISHost ) +#define hypre_BoomerAMGCoarsenRuge HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenRuge ) +#define hypre_BoomerAMGCoarseParms HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarseParms ) +#define hypre_BoomerAMGCoarseParmsHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarseParmsHost ) +#define hypre_GenerateCoordinates HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateCoordinates ) +#define hypre_BoomerAMGCoarsenCR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenCR ) +#define hypre_BoomerAMGCoarsenCR1 HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenCR1 ) +#define hypre_BoomerAMGIndepHMIS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepHMIS ) +#define hypre_BoomerAMGIndepHMISa HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepHMISa ) +#define hypre_BoomerAMGIndepPMIS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepPMIS ) +#define hypre_BoomerAMGIndepPMISa HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepPMISa ) +#define hypre_BoomerAMGIndepRS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepRS ) +#define hypre_BoomerAMGIndepRSa HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepRSa ) +#define hypre_cr HYPRE_MULTIPRECISION_FUNC ( hypre_cr ) +#define hypre_formu HYPRE_MULTIPRECISION_FUNC ( hypre_formu ) +#define hypre_fptgscr HYPRE_MULTIPRECISION_FUNC ( hypre_fptgscr ) +#define hypre_fptjaccr HYPRE_MULTIPRECISION_FUNC ( hypre_fptjaccr ) +#define hypre_GraphAdd HYPRE_MULTIPRECISION_FUNC ( hypre_GraphAdd ) +#define hypre_GraphRemove HYPRE_MULTIPRECISION_FUNC ( hypre_GraphRemove ) +#define hypre_IndepSetGreedy HYPRE_MULTIPRECISION_FUNC ( hypre_IndepSetGreedy ) +#define hypre_IndepSetGreedyS HYPRE_MULTIPRECISION_FUNC ( hypre_IndepSetGreedyS ) +#define hypre_BoomerAMGCycle HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCycle ) +#define GenerateDifConv HYPRE_MULTIPRECISION_FUNC ( GenerateDifConv ) +#define hypre_FSAICreate HYPRE_MULTIPRECISION_FUNC ( hypre_FSAICreate ) +#define hypre_FSAIDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIDestroy ) +#define hypre_FSAIGetAlgoType HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetAlgoType ) +#define hypre_FSAIGetEigMaxIters HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetEigMaxIters ) +#define hypre_FSAIGetKapTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetKapTolerance ) +#define hypre_FSAIGetLocalSolveType HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetLocalSolveType ) +#define hypre_FSAIGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetLogging ) +#define hypre_FSAIGetMaxIterations HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetMaxIterations ) +#define hypre_FSAIGetMaxNnzRow HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetMaxNnzRow ) +#define hypre_FSAIGetMaxSteps HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetMaxSteps ) +#define hypre_FSAIGetMaxStepSize HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetMaxStepSize ) +#define hypre_FSAIGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetNumIterations ) +#define hypre_FSAIGetNumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetNumLevels ) +#define hypre_FSAIGetOmega HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetOmega ) +#define hypre_FSAIGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetPrintLevel ) +#define hypre_FSAIGetThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetThreshold ) +#define hypre_FSAIGetTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetTolerance ) +#define hypre_FSAIGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIGetZeroGuess ) +#define hypre_FSAISetAlgoType HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetAlgoType ) +#define hypre_FSAISetEigMaxIters HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetEigMaxIters ) +#define hypre_FSAISetKapTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetKapTolerance ) +#define hypre_FSAISetLocalSolveType HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetLocalSolveType ) +#define hypre_FSAISetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetLogging ) +#define hypre_FSAISetMaxIterations HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetMaxIterations ) +#define hypre_FSAISetMaxNnzRow HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetMaxNnzRow ) +#define hypre_FSAISetMaxSteps HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetMaxSteps ) +#define hypre_FSAISetMaxStepSize HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetMaxStepSize ) +#define hypre_FSAISetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetNumIterations ) +#define hypre_FSAISetNumLevels HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetNumLevels ) +#define hypre_FSAISetOmega HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetOmega ) +#define hypre_FSAISetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetPrintLevel ) +#define hypre_FSAISetThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetThreshold ) +#define hypre_FSAISetTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetTolerance ) +#define hypre_FSAISetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetZeroGuess ) +#define hypre_AddToPattern HYPRE_MULTIPRECISION_FUNC ( hypre_AddToPattern ) +#define hypre_CSRMatrixExtractDenseMat HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixExtractDenseMat ) +#define hypre_CSRMatrixExtractDenseRow HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixExtractDenseRow ) +#define hypre_DenseSPDSystemSolve HYPRE_MULTIPRECISION_FUNC ( hypre_DenseSPDSystemSolve ) +#define hypre_FindKapGrad HYPRE_MULTIPRECISION_FUNC ( hypre_FindKapGrad ) +#define hypre_FSAIComputeOmega HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIComputeOmega ) +#define hypre_FSAIDumpLocalLSDense HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIDumpLocalLSDense ) +#define hypre_FSAIPrintStats HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIPrintStats ) +#define hypre_FSAISetup HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetup ) +#define hypre_FSAISetupNative HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetupNative ) +#define hypre_FSAISetupOMPDyn HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISetupOMPDyn ) +#define hypre_PartialSelectSortCI HYPRE_MULTIPRECISION_FUNC ( hypre_PartialSelectSortCI ) +#define hypre_qsort2_ci HYPRE_MULTIPRECISION_FUNC ( hypre_qsort2_ci ) +#define hypre_swap2_ci HYPRE_MULTIPRECISION_FUNC ( hypre_swap2_ci ) +#define hypre_FSAIApply HYPRE_MULTIPRECISION_FUNC ( hypre_FSAIApply ) +#define hypre_FSAISolve HYPRE_MULTIPRECISION_FUNC ( hypre_FSAISolve ) +#define hypre_GaussElimSetup HYPRE_MULTIPRECISION_FUNC ( hypre_GaussElimSetup ) +#define hypre_GaussElimSolve HYPRE_MULTIPRECISION_FUNC ( hypre_GaussElimSolve ) +#define hypre_BoomerAMGBuildInterpGSMG HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterpGSMG ) +#define hypre_BoomerAMGBuildInterpLS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterpLS ) +#define hypre_BoomerAMGCreateSmoothDirs HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSmoothDirs ) +#define hypre_BoomerAMGCreateSmoothVecs HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSmoothVecs ) +#define hypre_BoomerAMGFitVectors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGFitVectors ) +#define hypre_BoomerAMGNormalizeVecs HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGNormalizeVecs ) +#define hypre_ParCSRMatrixChooseThresh HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixChooseThresh ) +#define hypre_ParCSRMatrixFillSmooth HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixFillSmooth ) +#define hypre_ParCSRMatrixThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixThreshold ) +#define hypre_CSRMatrixDropInplace HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixDropInplace ) +#define hypre_CSRMatrixNormFro HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixNormFro ) +#define hypre_CSRMatrixResNormFro HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixResNormFro ) +#define hypre_CSRMatrixTrace HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixTrace ) +#define hypre_ILUBuildRASExternalMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_ILUBuildRASExternalMatrix ) +#define hypre_ILUCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ILUCreate ) +#define hypre_ILUCSRMatrixInverseSelfPrecondMRGlobal HYPRE_MULTIPRECISION_FUNC ( hypre_ILUCSRMatrixInverseSelfPrecondMRGlobal ) +#define hypre_ILUDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ILUDestroy ) +#define hypre_ILUGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetFinalRelativeResidualNorm ) +#define hypre_ILUGetInteriorExteriorPerm HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetInteriorExteriorPerm ) +#define hypre_ILUGetIterativeSetupHistory HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetIterativeSetupHistory ) +#define hypre_ILUGetLocalPerm HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetLocalPerm ) +#define hypre_ILUGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetNumIterations ) +#define hypre_ILUGetPermddPQ HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetPermddPQ ) +#define hypre_ILUGetPermddPQPre HYPRE_MULTIPRECISION_FUNC ( hypre_ILUGetPermddPQPre ) +#define hypre_ILULocalRCM HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCM ) +#define hypre_ILULocalRCMBuildFinalPerm HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMBuildFinalPerm ) +#define hypre_ILULocalRCMBuildLevel HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMBuildLevel ) +#define hypre_ILULocalRCMFindPPNode HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMFindPPNode ) +#define hypre_ILULocalRCMMindegree HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMMindegree ) +#define hypre_ILULocalRCMNumbering HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMNumbering ) +#define hypre_ILULocalRCMOrder HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMOrder ) +#define hypre_ILULocalRCMQsort HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMQsort ) +#define hypre_ILULocalRCMReverse HYPRE_MULTIPRECISION_FUNC ( hypre_ILULocalRCMReverse ) +#define hypre_ILUMaxQSplitRabsI HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMaxQSplitRabsI ) +#define hypre_ILUMaxRabs HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMaxRabs ) +#define hypre_ILUMaxrHeapAddRabsI HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMaxrHeapAddRabsI ) +#define hypre_ILUMaxrHeapRemoveRabsI HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMaxrHeapRemoveRabsI ) +#define hypre_ILUMinHeapAddI HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMinHeapAddI ) +#define hypre_ILUMinHeapAddIIIi HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMinHeapAddIIIi ) +#define hypre_ILUMinHeapAddIRIi HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMinHeapAddIRIi ) +#define hypre_ILUMinHeapRemoveI HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMinHeapRemoveI ) +#define hypre_ILUMinHeapRemoveIIIi HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMinHeapRemoveIIIi ) +#define hypre_ILUMinHeapRemoveIRIi HYPRE_MULTIPRECISION_FUNC ( hypre_ILUMinHeapRemoveIRIi ) +#define hypre_ILUParCSRInverseNSH HYPRE_MULTIPRECISION_FUNC ( hypre_ILUParCSRInverseNSH ) +#define hypre_ILUSetDropThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetDropThreshold ) +#define hypre_ILUSetDropThresholdArray HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetDropThresholdArray ) +#define hypre_ILUSetIterativeSetupMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetIterativeSetupMaxIter ) +#define hypre_ILUSetIterativeSetupOption HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetIterativeSetupOption ) +#define hypre_ILUSetIterativeSetupTolerance HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetIterativeSetupTolerance ) +#define hypre_ILUSetIterativeSetupType HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetIterativeSetupType ) +#define hypre_ILUSetLevelOfFill HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetLevelOfFill ) +#define hypre_ILUSetLocalReordering HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetLocalReordering ) +#define hypre_ILUSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetLogging ) +#define hypre_ILUSetLowerJacobiIters HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetLowerJacobiIters ) +#define hypre_ILUSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetMaxIter ) +#define hypre_ILUSetMaxNnzPerRow HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetMaxNnzPerRow ) +#define hypre_ILUSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetPrintLevel ) +#define hypre_ILUSetSchurNSHDropThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurNSHDropThreshold ) +#define hypre_ILUSetSchurNSHDropThresholdArray HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurNSHDropThresholdArray ) +#define hypre_ILUSetSchurPrecondILUDropThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondILUDropThreshold ) +#define hypre_ILUSetSchurPrecondILUDropThresholdArray HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondILUDropThresholdArray ) +#define hypre_ILUSetSchurPrecondILULevelOfFill HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondILULevelOfFill ) +#define hypre_ILUSetSchurPrecondILUMaxNnzPerRow HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondILUMaxNnzPerRow ) +#define hypre_ILUSetSchurPrecondILUType HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondILUType ) +#define hypre_ILUSetSchurPrecondLowerJacobiIters HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondLowerJacobiIters ) +#define hypre_ILUSetSchurPrecondMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondMaxIter ) +#define hypre_ILUSetSchurPrecondPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondPrintLevel ) +#define hypre_ILUSetSchurPrecondTol HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondTol ) +#define hypre_ILUSetSchurPrecondTriSolve HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondTriSolve ) +#define hypre_ILUSetSchurPrecondUpperJacobiIters HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurPrecondUpperJacobiIters ) +#define hypre_ILUSetSchurSolverAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverAbsoluteTol ) +#define hypre_ILUSetSchurSolverKDIM HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverKDIM ) +#define hypre_ILUSetSchurSolverLogging HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverLogging ) +#define hypre_ILUSetSchurSolverMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverMaxIter ) +#define hypre_ILUSetSchurSolverPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverPrintLevel ) +#define hypre_ILUSetSchurSolverRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverRelChange ) +#define hypre_ILUSetSchurSolverTol HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetSchurSolverTol ) +#define hypre_ILUSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetTol ) +#define hypre_ILUSetTriSolve HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetTriSolve ) +#define hypre_ILUSetType HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetType ) +#define hypre_ILUSetUpperJacobiIters HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetUpperJacobiIters ) +#define hypre_ILUSortOffdColmap HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSortOffdColmap ) +#define hypre_ILUWriteSolverParams HYPRE_MULTIPRECISION_FUNC ( hypre_ILUWriteSolverParams ) +#define hypre_NSHCreate HYPRE_MULTIPRECISION_FUNC ( hypre_NSHCreate ) +#define hypre_NSHDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_NSHDestroy ) +#define hypre_NSHSetColVersion HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetColVersion ) +#define hypre_NSHSetDropThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetDropThreshold ) +#define hypre_NSHSetDropThresholdArray HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetDropThresholdArray ) +#define hypre_NSHSetGlobalSolver HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetGlobalSolver ) +#define hypre_NSHSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetLogging ) +#define hypre_NSHSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetMaxIter ) +#define hypre_NSHSetMRMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetMRMaxIter ) +#define hypre_NSHSetMRMaxRowNnz HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetMRMaxRowNnz ) +#define hypre_NSHSetMRTol HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetMRTol ) +#define hypre_NSHSetNSHMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetNSHMaxIter ) +#define hypre_NSHSetNSHMaxRowNnz HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetNSHMaxRowNnz ) +#define hypre_NSHSetNSHTol HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetNSHTol ) +#define hypre_NSHSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetPrintLevel ) +#define hypre_NSHSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetTol ) +#define hypre_NSHWriteSolverParams HYPRE_MULTIPRECISION_FUNC ( hypre_NSHWriteSolverParams ) +#define hypre_ParCSRMatrixNormFro HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixNormFro ) +#define hypre_ParCSRMatrixResNormFro HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixResNormFro ) +#define hypre_ParILURAPSchurGMRESCommInfoHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParILURAPSchurGMRESCommInfoHost ) +#define hypre_ParILURAPSchurGMRESMatvecHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParILURAPSchurGMRESMatvecHost ) +#define hypre_ParILURAPSchurGMRESSolveHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParILURAPSchurGMRESSolveHost ) +#define hypre_ILUSetup HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetup ) +#define hypre_ILUSetupILU0 HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILU0 ) +#define hypre_ILUSetupILU0RAS HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILU0RAS ) +#define hypre_ILUSetupILUK HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILUK ) +#define hypre_ILUSetupILUKRAS HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILUKRAS ) +#define hypre_ILUSetupILUKRASSymbolic HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILUKRASSymbolic ) +#define hypre_ILUSetupILUKSymbolic HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILUKSymbolic ) +#define hypre_ILUSetupILUT HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILUT ) +#define hypre_ILUSetupILUTRAS HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupILUTRAS ) +#define hypre_ILUSetupLDUtoCusparse HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupLDUtoCusparse ) +#define hypre_ILUSetupMILU0 HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupMILU0 ) +#define hypre_ILUSetupRAPILU0 HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupRAPILU0 ) +#define hypre_ILUSetupRAPILU0Device HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupRAPILU0Device ) +#define hypre_ILUSetupRAPMILU0 HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSetupRAPMILU0 ) +#define hypre_NSHSetup HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSetup ) +#define hypre_ParILUExtractEBFC HYPRE_MULTIPRECISION_FUNC ( hypre_ParILUExtractEBFC ) +#define hypre_ParILURAPReorder HYPRE_MULTIPRECISION_FUNC ( hypre_ParILURAPReorder ) +#define hypre_ILUSolve HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolve ) +#define hypre_ILUSolveLU HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolveLU ) +#define hypre_ILUSolveLUIter HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolveLUIter ) +#define hypre_ILUSolveLURAS HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolveLURAS ) +#define hypre_ILUSolveRAPGMRESHost HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolveRAPGMRESHost ) +#define hypre_ILUSolveSchurGMRES HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolveSchurGMRES ) +#define hypre_ILUSolveSchurNSH HYPRE_MULTIPRECISION_FUNC ( hypre_ILUSolveSchurNSH ) +#define hypre_NSHSolve HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSolve ) +#define hypre_NSHSolveInverse HYPRE_MULTIPRECISION_FUNC ( hypre_NSHSolveInverse ) +#define hypre_BoomerAMGIndepSet HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepSet ) +#define hypre_BoomerAMGIndepSetInit HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGIndepSetInit ) +#define hypre_BoomerAMGBuildDirInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildDirInterp ) +#define hypre_BoomerAMGBuildDirInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildDirInterpHost ) +#define hypre_BoomerAMGBuildInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterp ) +#define hypre_BoomerAMGBuildInterpHE HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterpHE ) +#define hypre_BoomerAMGBuildInterpModUnk HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterpModUnk ) +#define hypre_BoomerAMGBuildInterpOnePnt HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterpOnePnt ) +#define hypre_BoomerAMGBuildInterpOnePntHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildInterpOnePntHost ) +#define hypre_BoomerAMGInterpTruncation HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGInterpTruncation ) +#define hypre_BoomerAMGTruncandBuild HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGTruncandBuild ) +#define hypre_CreateC HYPRE_MULTIPRECISION_FUNC ( hypre_CreateC ) +#define hypre_BoomerAMGJacobiInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGJacobiInterp ) +#define hypre_BoomerAMGJacobiInterp_1 HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGJacobiInterp_1 ) +#define hypre_BoomerAMGTruncateInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGTruncateInterp ) +#define hypre_ParCSRMatrix_dof_func_offd HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrix_dof_func_offd ) +#define hypre_ParKrylovAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovAxpy ) +#define hypre_ParKrylovCAlloc HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovCAlloc ) +#define hypre_ParKrylovClearVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovClearVector ) +#define hypre_ParKrylovCommInfo HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovCommInfo ) +#define hypre_ParKrylovCopyVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovCopyVector ) +#define hypre_ParKrylovCreateVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovCreateVector ) +#define hypre_ParKrylovCreateVectorArray HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovCreateVectorArray ) +#define hypre_ParKrylovDestroyVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovDestroyVector ) +#define hypre_ParKrylovFree HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovFree ) +#define hypre_ParKrylovIdentity HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovIdentity ) +#define hypre_ParKrylovIdentitySetup HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovIdentitySetup ) +#define hypre_ParKrylovInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovInnerProd ) +#define hypre_ParKrylovMassAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMassAxpy ) +#define hypre_ParKrylovMassDotpTwo HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMassDotpTwo ) +#define hypre_ParKrylovMassInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMassInnerProd ) +#define hypre_ParKrylovMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMatvec ) +#define hypre_ParKrylovMatvecCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMatvecCreate ) +#define hypre_ParKrylovMatvecDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMatvecDestroy ) +#define hypre_ParKrylovMatvecT HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovMatvecT ) +#define hypre_ParKrylovScaleVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParKrylovScaleVector ) +#define GenerateLaplacian27pt HYPRE_MULTIPRECISION_FUNC ( GenerateLaplacian27pt ) +#define GenerateLaplacian9pt HYPRE_MULTIPRECISION_FUNC ( GenerateLaplacian9pt ) +#define hypre_map2 HYPRE_MULTIPRECISION_FUNC ( hypre_map2 ) +#define GenerateLaplacian HYPRE_MULTIPRECISION_FUNC ( GenerateLaplacian ) +#define GenerateSysLaplacian HYPRE_MULTIPRECISION_FUNC ( GenerateSysLaplacian ) +#define GenerateSysLaplacianVCoef HYPRE_MULTIPRECISION_FUNC ( GenerateSysLaplacianVCoef ) +#define hypre_map HYPRE_MULTIPRECISION_FUNC ( hypre_map ) +#define hypre_BoomerAMGBuildExtInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildExtInterp ) +#define hypre_BoomerAMGBuildExtInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildExtInterpHost ) +#define hypre_BoomerAMGBuildExtPICCInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildExtPICCInterp ) +#define hypre_BoomerAMGBuildExtPIInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildExtPIInterp ) +#define hypre_BoomerAMGBuildExtPIInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildExtPIInterpHost ) +#define hypre_BoomerAMGBuildFF1Interp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildFF1Interp ) +#define hypre_BoomerAMGBuildFFInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildFFInterp ) +#define hypre_BoomerAMGBuildStdInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildStdInterp ) +#define hypre_BoomerAMGBuildRestrDist2AIR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildRestrDist2AIR ) +#define hypre_BoomerAMGBuildRestrNeumannAIR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildRestrNeumannAIR ) +#define hypre_BoomerAMGBuildRestrNeumannAIRHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildRestrNeumannAIRHost ) +#define hypre_MGRCoarseParms HYPRE_MULTIPRECISION_FUNC ( hypre_MGRCoarseParms ) +#define hypre_ExtendWtoPHost HYPRE_MULTIPRECISION_FUNC ( hypre_ExtendWtoPHost ) +#define hypre_MGRBlockColLumpedRestrict HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBlockColLumpedRestrict ) +#define hypre_MGRBuildBlockJacobiP HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildBlockJacobiP ) +#define hypre_MGRBuildBlockJacobiWp HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildBlockJacobiWp ) +#define hypre_MGRBuildInterp HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildInterp ) +#define hypre_MGRBuildInterpApproximateInverse HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildInterpApproximateInverse ) +#define hypre_MGRBuildP HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildP ) +#define hypre_MGRBuildPDRS HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildPDRS ) +#define hypre_MGRBuildPFromWp HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildPFromWp ) +#define hypre_MGRBuildPFromWpHost HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildPFromWpHost ) +#define hypre_MGRBuildPHost HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildPHost ) +#define hypre_MGRBuildRestrict HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildRestrict ) +#define hypre_MGRBuildRFromW HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildRFromW ) +#define hypre_MGRBuildRFromWHost HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildRFromWHost ) +#define hypre_MGRColLumpedRestrict HYPRE_MULTIPRECISION_FUNC ( hypre_MGRColLumpedRestrict ) +#define hypre_MGRTruncateAcfCPR HYPRE_MULTIPRECISION_FUNC ( hypre_MGRTruncateAcfCPR ) +#define hypre_MGRTruncateAcfCPRDevice HYPRE_MULTIPRECISION_FUNC ( hypre_MGRTruncateAcfCPRDevice ) +#define hypre_blas_mat_inv HYPRE_MULTIPRECISION_FUNC ( hypre_blas_mat_inv ) +#define hypre_blas_smat_inv_n2 HYPRE_MULTIPRECISION_FUNC ( hypre_blas_smat_inv_n2 ) +#define hypre_blas_smat_inv_n3 HYPRE_MULTIPRECISION_FUNC ( hypre_blas_smat_inv_n3 ) +#define hypre_blas_smat_inv_n4 HYPRE_MULTIPRECISION_FUNC ( hypre_blas_smat_inv_n4 ) +#define hypre_BlockDiagInvLapack HYPRE_MULTIPRECISION_FUNC ( hypre_BlockDiagInvLapack ) +#define hypre_block_jacobi_solve HYPRE_MULTIPRECISION_FUNC ( hypre_block_jacobi_solve ) +#define hypre_MGRAddVectorP HYPRE_MULTIPRECISION_FUNC ( hypre_MGRAddVectorP ) +#define hypre_MGRAddVectorR HYPRE_MULTIPRECISION_FUNC ( hypre_MGRAddVectorR ) +#define hypre_MGRApproximateInverse HYPRE_MULTIPRECISION_FUNC ( hypre_MGRApproximateInverse ) +#define hypre_MGRBlockRelaxSetup HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBlockRelaxSetup ) +#define hypre_MGRBlockRelaxSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBlockRelaxSolve ) +#define hypre_MGRBlockRelaxSolveDevice HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBlockRelaxSolveDevice ) +#define hypre_MGRBuildAff HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildAff ) +#define hypre_MGRCoarsen HYPRE_MULTIPRECISION_FUNC ( hypre_MGRCoarsen ) +#define hypre_MGRComputeAlgebraicFixedStress HYPRE_MULTIPRECISION_FUNC ( hypre_MGRComputeAlgebraicFixedStress ) +#define hypre_MGRCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MGRCreate ) +#define hypre_MGRCreateFrelaxVcycleData HYPRE_MULTIPRECISION_FUNC ( hypre_MGRCreateFrelaxVcycleData ) +#define hypre_MGRCreateGSElimData HYPRE_MULTIPRECISION_FUNC ( hypre_MGRCreateGSElimData ) +#define hypre_MGRDataPrint HYPRE_MULTIPRECISION_FUNC ( hypre_MGRDataPrint ) +#define hypre_MGRDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MGRDestroy ) +#define hypre_MGRDestroyFrelaxVcycleData HYPRE_MULTIPRECISION_FUNC ( hypre_MGRDestroyFrelaxVcycleData ) +#define hypre_MGRDestroyGSElimData HYPRE_MULTIPRECISION_FUNC ( hypre_MGRDestroyGSElimData ) +#define hypre_MGRGetCoarseGridConvergenceFactor HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetCoarseGridConvergenceFactor ) +#define hypre_MGRGetCoarseGridMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetCoarseGridMatrix ) +#define hypre_MGRGetCoarseGridRHS HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetCoarseGridRHS ) +#define hypre_MGRGetCoarseGridSolution HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetCoarseGridSolution ) +#define hypre_MGRGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetFinalRelativeResidualNorm ) +#define hypre_MGRGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetNumIterations ) +#define hypre_MGRGetSubBlock HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetSubBlock ) +#define hypre_MGRPrintCoarseSystem HYPRE_MULTIPRECISION_FUNC ( hypre_MGRPrintCoarseSystem ) +#define hypre_MGRSetBlockJacobiBlockSize HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetBlockJacobiBlockSize ) +#define hypre_MGRSetBlockSize HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetBlockSize ) +#define hypre_MGRSetCoarseGridMethod HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetCoarseGridMethod ) +#define hypre_MGRSetCoarseGridPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetCoarseGridPrintLevel ) +#define hypre_MGRSetCoarseSolver HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetCoarseSolver ) +#define hypre_MGRSetCpointsByBlock HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetCpointsByBlock ) +#define hypre_MGRSetCpointsByContiguousBlock HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetCpointsByContiguousBlock ) +#define hypre_MGRSetCpointsByPointMarkerArray HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetCpointsByPointMarkerArray ) +#define hypre_MGRSetFRelaxMethod HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetFRelaxMethod ) +#define hypre_MGRSetFrelaxPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetFrelaxPrintLevel ) +#define hypre_MGRSetFSolver HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetFSolver ) +#define hypre_MGRSetFSolverAtLevel HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetFSolverAtLevel ) +#define hypre_MGRSetGlobalSmoothCycle HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetGlobalSmoothCycle ) +#define hypre_MGRSetGlobalSmootherAtLevel HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetGlobalSmootherAtLevel ) +#define hypre_MGRSetGlobalSmoothType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetGlobalSmoothType ) +#define hypre_MGRSetInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetInterpType ) +#define hypre_MGRSetLevelFRelaxMethod HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelFRelaxMethod ) +#define hypre_MGRSetLevelFRelaxNumFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelFRelaxNumFunctions ) +#define hypre_MGRSetLevelFRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelFRelaxType ) +#define hypre_MGRSetLevelInterpType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelInterpType ) +#define hypre_MGRSetLevelNonGalerkinMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelNonGalerkinMaxElmts ) +#define hypre_MGRSetLevelNumRelaxSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelNumRelaxSweeps ) +#define hypre_MGRSetLevelPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelPMaxElmts ) +#define hypre_MGRSetLevelRestrictType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelRestrictType ) +#define hypre_MGRSetLevelSmoothIters HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelSmoothIters ) +#define hypre_MGRSetLevelSmoothType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLevelSmoothType ) +#define hypre_MGRSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetLogging ) +#define hypre_MGRSetMaxCoarseLevels HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetMaxCoarseLevels ) +#define hypre_MGRSetMaxGlobalSmoothIters HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetMaxGlobalSmoothIters ) +#define hypre_MGRSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetMaxIter ) +#define hypre_MGRSetNonCpointsToFpoints HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetNonCpointsToFpoints ) +#define hypre_MGRSetNonGalerkinMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetNonGalerkinMaxElmts ) +#define hypre_MGRSetNumInterpSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetNumInterpSweeps ) +#define hypre_MGRSetNumRelaxSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetNumRelaxSweeps ) +#define hypre_MGRSetNumRestrictSweeps HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetNumRestrictSweeps ) +#define hypre_MGRSetPMaxElmts HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetPMaxElmts ) +#define hypre_MGRSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetPrintLevel ) +#define hypre_MGRSetReductionLevelCpoints HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetReductionLevelCpoints ) +#define hypre_MGRSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetRelaxType ) +#define hypre_MGRSetReservedCoarseNodes HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetReservedCoarseNodes ) +#define hypre_MGRSetReservedCpointsLevelToKeep HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetReservedCpointsLevelToKeep ) +#define hypre_MGRSetRestrictType HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetRestrictType ) +#define hypre_MGRSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetTol ) +#define hypre_MGRSetTruncateCoarseGridThreshold HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetTruncateCoarseGridThreshold ) +#define hypre_MGRSmallBlkInverse HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSmallBlkInverse ) +#define hypre_ParCSRMatrixBlockDiagMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixBlockDiagMatrix ) +#define hypre_ParCSRMatrixBlockDiagMatrixHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixBlockDiagMatrixHost ) +#define hypre_ParCSRMatrixExtractBlockDiagHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractBlockDiagHost ) +#define hypre_ParCSRMatrixLeftScale HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixLeftScale ) +#define hypre_MGRBuildCoarseOperator HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildCoarseOperator ) +#define hypre_MGRBuildNonGalerkinCoarseOperator HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildNonGalerkinCoarseOperator ) +#define hypre_MGRBuildNonGalerkinCoarseOperatorDevice HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildNonGalerkinCoarseOperatorDevice ) +#define hypre_MGRBuildNonGalerkinCoarseOperatorHost HYPRE_MULTIPRECISION_FUNC ( hypre_MGRBuildNonGalerkinCoarseOperatorHost ) +#define hypre_MGRNonGalerkinTruncate HYPRE_MULTIPRECISION_FUNC ( hypre_MGRNonGalerkinTruncate ) +#define hypre_MGRSetup HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetup ) +#define hypre_MGRSetupFrelaxVcycleData HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetupFrelaxVcycleData ) +#define hypre_MGRCycle HYPRE_MULTIPRECISION_FUNC ( hypre_MGRCycle ) +#define hypre_MGRFrelaxVcycle HYPRE_MULTIPRECISION_FUNC ( hypre_MGRFrelaxVcycle ) +#define hypre_MGRSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSolve ) +#define hypre_MGRGetCoarseGridName HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetCoarseGridName ) +#define hypre_MGRGetFRelaxName HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetFRelaxName ) +#define hypre_MGRGetGlobalRelaxName HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetGlobalRelaxName ) +#define hypre_MGRGetProlongationName HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetProlongationName ) +#define hypre_MGRGetRestrictionName HYPRE_MULTIPRECISION_FUNC ( hypre_MGRGetRestrictionName ) +#define hypre_MGRSetupStats HYPRE_MULTIPRECISION_FUNC ( hypre_MGRSetupStats ) +#define hypre_BoomerAMGBuildModExtInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModExtInterp ) +#define hypre_BoomerAMGBuildModExtInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModExtInterpHost ) +#define hypre_BoomerAMGBuildModExtPEInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModExtPEInterp ) +#define hypre_BoomerAMGBuildModExtPEInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModExtPEInterpHost ) +#define hypre_BoomerAMGBuildModExtPIInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModExtPIInterp ) +#define hypre_BoomerAMGBuildModExtPIInterpHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModExtPIInterpHost ) +#define hypre_BoomerAMGBuildModMultipass HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModMultipass ) +#define hypre_BoomerAMGBuildModMultipassHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildModMultipassHost ) +#define hypre_GenerateMultipassPi HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateMultipassPi ) +#define hypre_GenerateMultiPi HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateMultiPi ) +#define hypre_BoomerAMGBuildMultipass HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildMultipass ) +#define hypre_BoomerAMGBuildMultipassHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildMultipassHost ) +#define hypre_BoomerAMGCreateNodalA HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateNodalA ) +#define hypre_BoomerAMGCreateScalarCF HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateScalarCF ) +#define hypre_BoomerAMGCreateScalarCFS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateScalarCFS ) +#define hypre_BoomerAMGBuildNonGalerkinCoarseOperator HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildNonGalerkinCoarseOperator ) +#define hypre_BoomerAMG_MyCreateS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMG_MyCreateS ) +#define hypre_GrabSubArray HYPRE_MULTIPRECISION_FUNC ( hypre_GrabSubArray ) +#define hypre_IntersectTwoArrays HYPRE_MULTIPRECISION_FUNC ( hypre_IntersectTwoArrays ) +#define hypre_IntersectTwoBigArrays HYPRE_MULTIPRECISION_FUNC ( hypre_IntersectTwoBigArrays ) +#define hypre_NonGalerkinIJBigBufferInit HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBigBufferInit ) +#define hypre_NonGalerkinIJBufferCompress HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBufferCompress ) +#define hypre_NonGalerkinIJBufferCompressRow HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBufferCompressRow ) +#define hypre_NonGalerkinIJBufferEmpty HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBufferEmpty ) +#define hypre_NonGalerkinIJBufferInit HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBufferInit ) +#define hypre_NonGalerkinIJBufferNewRow HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBufferNewRow ) +#define hypre_NonGalerkinIJBufferWrite HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinIJBufferWrite ) +#define hypre_NonGalerkinSparsityPattern HYPRE_MULTIPRECISION_FUNC ( hypre_NonGalerkinSparsityPattern ) +#define hypre_SortedCopyParCSRData HYPRE_MULTIPRECISION_FUNC ( hypre_SortedCopyParCSRData ) +#define hypre_GenerateSendMapAndCommPkg HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateSendMapAndCommPkg ) +#define hypre_GetCommPkgRTFromCommPkgA HYPRE_MULTIPRECISION_FUNC ( hypre_GetCommPkgRTFromCommPkgA ) +#define hypre_BoomerAMGBuildCoarseOperator HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildCoarseOperator ) +#define hypre_BoomerAMGBuildCoarseOperatorKT HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildCoarseOperatorKT ) +#define hypre_BoomerAMGRelax_FCFJacobi HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax_FCFJacobi ) +#define hypre_BoomerAMGRelaxIF HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxIF ) +#define hypre_ParCSRRelax_L1_Jacobi HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax_L1_Jacobi ) +#define hypre_LINPACKcgpthy HYPRE_MULTIPRECISION_FUNC ( hypre_LINPACKcgpthy ) +#define hypre_LINPACKcgtql1 HYPRE_MULTIPRECISION_FUNC ( hypre_LINPACKcgtql1 ) +#define hypre_ParCSRMaxEigEstimate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMaxEigEstimate ) +#define hypre_ParCSRMaxEigEstimateCG HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMaxEigEstimateCG ) +#define hypre_ParCSRMaxEigEstimateCGHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMaxEigEstimateCGHost ) +#define hypre_ParCSRMaxEigEstimateHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMaxEigEstimateHost ) +#define hypre_ParCSRRelax_CG HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax_CG ) +#define hypre_ParCSRRelax_Cheby HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRRelax_Cheby ) +#define hypre_BoomerAMGRelax HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax ) +#define hypre_BoomerAMGRelax0WeightedJacobi HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax0WeightedJacobi ) +#define hypre_BoomerAMGRelax10TopoOrderedGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax10TopoOrderedGaussSeidel ) +#define hypre_BoomerAMGRelax11TwoStageGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax11TwoStageGaussSeidel ) +#define hypre_BoomerAMGRelax12TwoStageGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax12TwoStageGaussSeidel ) +#define hypre_BoomerAMGRelax13HybridL1GaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax13HybridL1GaussSeidel ) +#define hypre_BoomerAMGRelax14HybridL1GaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax14HybridL1GaussSeidel ) +#define hypre_BoomerAMGRelax18WeightedL1Jacobi HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax18WeightedL1Jacobi ) +#define hypre_BoomerAMGRelax1GaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax1GaussSeidel ) +#define hypre_BoomerAMGRelax2GaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax2GaussSeidel ) +#define hypre_BoomerAMGRelax3HybridGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax3HybridGaussSeidel ) +#define hypre_BoomerAMGRelax4HybridGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax4HybridGaussSeidel ) +#define hypre_BoomerAMGRelax5ChaoticHybridGaussSeidel HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax5ChaoticHybridGaussSeidel ) +#define hypre_BoomerAMGRelax6HybridSSOR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax6HybridSSOR ) +#define hypre_BoomerAMGRelax7Jacobi HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax7Jacobi ) +#define hypre_BoomerAMGRelax89HybridL1SSOR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax89HybridL1SSOR ) +#define hypre_BoomerAMGRelax8HybridL1SSOR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelax8HybridL1SSOR ) +#define hypre_BoomerAMGRelaxComputeL1Norms HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxComputeL1Norms ) +#define hypre_BoomerAMGRelaxHybridGaussSeidel_core HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxHybridGaussSeidel_core ) +#define hypre_BoomerAMGRelaxHybridSOR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxHybridSOR ) +#define hypre_BoomerAMGRelaxKaczmarz HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxKaczmarz ) +#define hypre_BoomerAMGRelaxTwoStageGaussSeidelHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxTwoStageGaussSeidelHost ) +#define hypre_BoomerAMGRelaxWeightedJacobi_core HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRelaxWeightedJacobi_core ) +#define hypre_BoomerAMGBuildRestrAIR HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildRestrAIR ) +#define hypre_fgmresT HYPRE_MULTIPRECISION_FUNC ( hypre_fgmresT ) +#define hypre_ordered_GS HYPRE_MULTIPRECISION_FUNC ( hypre_ordered_GS ) +#define GenerateRotate7pt HYPRE_MULTIPRECISION_FUNC ( GenerateRotate7pt ) +#define hypre_ParCSRMatrixScaledNorm HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixScaledNorm ) +#define hypre_SchwarzCFSolve HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzCFSolve ) +#define hypre_SchwarzCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzCreate ) +#define hypre_SchwarzDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzDestroy ) +#define hypre_SchwarzReScale HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzReScale ) +#define hypre_SchwarzSetDofFunc HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetDofFunc ) +#define hypre_SchwarzSetDomainStructure HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetDomainStructure ) +#define hypre_SchwarzSetDomainType HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetDomainType ) +#define hypre_SchwarzSetNonSymm HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetNonSymm ) +#define hypre_SchwarzSetNumFunctions HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetNumFunctions ) +#define hypre_SchwarzSetOverlap HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetOverlap ) +#define hypre_SchwarzSetRelaxWeight HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetRelaxWeight ) +#define hypre_SchwarzSetScale HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetScale ) +#define hypre_SchwarzSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetup ) +#define hypre_SchwarzSetVariant HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSetVariant ) +#define hypre_SchwarzSolve HYPRE_MULTIPRECISION_FUNC ( hypre_SchwarzSolve ) +#define hypre_BoomerAMGGetAggProlongationName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetAggProlongationName ) +#define hypre_BoomerAMGGetCoarseningName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCoarseningName ) +#define hypre_BoomerAMGGetCycleName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetCycleName ) +#define hypre_BoomerAMGGetProlongationName HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGGetProlongationName ) +#define hypre_BoomerAMGPrintGeneralInfo HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGPrintGeneralInfo ) +#define hypre_BoomerAMGSetupStats HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSetupStats ) +#define hypre_BoomerAMGWriteSolverParams HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGWriteSolverParams ) +#define hypre_BoomerAMGCorrectCFMarker HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCorrectCFMarker ) +#define hypre_BoomerAMGCorrectCFMarker2 HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCorrectCFMarker2 ) +#define hypre_BoomerAMGCorrectCFMarker2Host HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCorrectCFMarker2Host ) +#define hypre_BoomerAMGCorrectCFMarkerHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCorrectCFMarkerHost ) +#define hypre_BoomerAMGCreate2ndS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreate2ndS ) +#define hypre_BoomerAMGCreate2ndSHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreate2ndSHost ) +#define hypre_BoomerAMGCreateS HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateS ) +#define hypre_BoomerAMGCreateSabs HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSabs ) +#define hypre_BoomerAMGCreateSabsHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSabsHost ) +#define hypre_BoomerAMGCreateSCommPkg HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSCommPkg ) +#define hypre_BoomerAMGCreateSFromCFMarker HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSFromCFMarker ) +#define hypre_BoomerAMGCreateSHost HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCreateSHost ) +#define hypre_BoomerAMG_LNExpandInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMG_LNExpandInterp ) +#define hypre_BoomerAMGCoarsenInterpVectors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGCoarsenInterpVectors ) +#define hypre_BoomerAMG_GMExpandInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMG_GMExpandInterp ) +#define hypre_BoomerAMGRefineInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGRefineInterp ) +#define hypre_BoomerAMGSmoothInterpVectors HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGSmoothInterpVectors ) +#define hypre_BoomerAMGBuildPartialExtInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildPartialExtInterp ) +#define hypre_BoomerAMGBuildPartialExtPIInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildPartialExtPIInterp ) +#define hypre_BoomerAMGBuildPartialStdInterp HYPRE_MULTIPRECISION_FUNC ( hypre_BoomerAMGBuildPartialStdInterp ) +#define afun HYPRE_MULTIPRECISION_FUNC ( afun ) +#define bfun HYPRE_MULTIPRECISION_FUNC ( bfun ) +#define bndfun HYPRE_MULTIPRECISION_FUNC ( bndfun ) +#define cfun HYPRE_MULTIPRECISION_FUNC ( cfun ) +#define dfun HYPRE_MULTIPRECISION_FUNC ( dfun ) +#define efun HYPRE_MULTIPRECISION_FUNC ( efun ) +#define ffun HYPRE_MULTIPRECISION_FUNC ( ffun ) +#define GenerateVarDifConv HYPRE_MULTIPRECISION_FUNC ( GenerateVarDifConv ) +#define gfun HYPRE_MULTIPRECISION_FUNC ( gfun ) +#define rfun HYPRE_MULTIPRECISION_FUNC ( rfun ) +#define afun_rs HYPRE_MULTIPRECISION_FUNC ( afun_rs ) +#define bfun_rs HYPRE_MULTIPRECISION_FUNC ( bfun_rs ) +#define bndfun_rs HYPRE_MULTIPRECISION_FUNC ( bndfun_rs ) +#define cfun_rs HYPRE_MULTIPRECISION_FUNC ( cfun_rs ) +#define dfun_rs HYPRE_MULTIPRECISION_FUNC ( dfun_rs ) +#define efun_rs HYPRE_MULTIPRECISION_FUNC ( efun_rs ) +#define ffun_rs HYPRE_MULTIPRECISION_FUNC ( ffun_rs ) +#define GenerateRSVarDifConv HYPRE_MULTIPRECISION_FUNC ( GenerateRSVarDifConv ) +#define gfun_rs HYPRE_MULTIPRECISION_FUNC ( gfun_rs ) +#define rfun_rs HYPRE_MULTIPRECISION_FUNC ( rfun_rs ) +#define hypre_AdSchwarzCFSolve HYPRE_MULTIPRECISION_FUNC ( hypre_AdSchwarzCFSolve ) +#define hypre_AdSchwarzSolve HYPRE_MULTIPRECISION_FUNC ( hypre_AdSchwarzSolve ) +#define hypre_AMGCreateDomainDof HYPRE_MULTIPRECISION_FUNC ( hypre_AMGCreateDomainDof ) +#define hypre_AMGeAgglomerate HYPRE_MULTIPRECISION_FUNC ( hypre_AMGeAgglomerate ) +#define hypre_AMGNodalSchwarzSmoother HYPRE_MULTIPRECISION_FUNC ( hypre_AMGNodalSchwarzSmoother ) +#define hypre_GenerateScale HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateScale ) +#define hypre_matinv HYPRE_MULTIPRECISION_FUNC ( hypre_matinv ) +#define hypre_move_entry HYPRE_MULTIPRECISION_FUNC ( hypre_move_entry ) +#define hypre_MPSchwarzCFFWSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MPSchwarzCFFWSolve ) +#define hypre_MPSchwarzCFSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MPSchwarzCFSolve ) +#define hypre_MPSchwarzFWSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MPSchwarzFWSolve ) +#define hypre_MPSchwarzSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MPSchwarzSolve ) +#define hypre_ParAdSchwarzSolve HYPRE_MULTIPRECISION_FUNC ( hypre_ParAdSchwarzSolve ) +#define hypre_ParAMGCreateDomainDof HYPRE_MULTIPRECISION_FUNC ( hypre_ParAMGCreateDomainDof ) +#define hypre_parCorrRes HYPRE_MULTIPRECISION_FUNC ( hypre_parCorrRes ) +#define hypre_ParGenerateHybridScale HYPRE_MULTIPRECISION_FUNC ( hypre_ParGenerateHybridScale ) +#define hypre_ParGenerateScale HYPRE_MULTIPRECISION_FUNC ( hypre_ParGenerateScale ) +#define hypre_ParMPSchwarzSolve HYPRE_MULTIPRECISION_FUNC ( hypre_ParMPSchwarzSolve ) +#define hypre_remove_entry HYPRE_MULTIPRECISION_FUNC ( hypre_remove_entry ) +#define hypre_update_entry HYPRE_MULTIPRECISION_FUNC ( hypre_update_entry ) +#define matrix_matrix_product HYPRE_MULTIPRECISION_FUNC ( matrix_matrix_product ) +#define transpose_matrix_create HYPRE_MULTIPRECISION_FUNC ( transpose_matrix_create ) + +#endif diff --git a/src/parcsr_mv/HYPRE_parcsr_mv.h b/src/parcsr_mv/HYPRE_parcsr_mv.h index 807f81f0fb..bda831dc5c 100644 --- a/src/parcsr_mv/HYPRE_parcsr_mv.h +++ b/src/parcsr_mv/HYPRE_parcsr_mv.h @@ -17,6 +17,10 @@ #include "HYPRE_utilities.h" #include "HYPRE_seq_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/parcsr_mv/HYPRE_parcsr_mv_mp.c b/src/parcsr_mv/HYPRE_parcsr_mv_mp.c new file mode 100644 index 0000000000..cd123728db --- /dev/null +++ b/src/parcsr_mv/HYPRE_parcsr_mv_mp.c @@ -0,0 +1,29 @@ +/****************************************************************************** + * 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_parcsr interface mixed precision functions + * + *****************************************************************************/ + +#include "_hypre_parcsr_mv.h" + +#ifdef HYPRE_MIXED_PRECISION +/*-------------------------------------------------------------------------- + * Mixed-precision HYPRE_ParVectorCopy + *--------------------------------------------------------------------------*/ + +HYPRE_Int +HYPRE_ParVectorCopy_mp( HYPRE_ParVector x, + HYPRE_ParVector y ) +{ + return ( hypre_ParVectorCopy_mp( (hypre_ParVector *) x, + (hypre_ParVector *) y ) ); +} + +#endif diff --git a/src/parcsr_mv/HYPRE_parcsr_mv_mp.h b/src/parcsr_mv/HYPRE_parcsr_mv_mp.h new file mode 100644 index 0000000000..117de4227c --- /dev/null +++ b/src/parcsr_mv/HYPRE_parcsr_mv_mp.h @@ -0,0 +1,31 @@ +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * + * Header file for HYPRE_parcsr_mv library + * + *****************************************************************************/ + +#ifndef HYPRE_PARCSR_MV_MP_HEADER +#define HYPRE_PARCSR_MV_MP_HEADER + +#ifdef HYPRE_MIXED_PRECISION + +#ifdef __cplusplus +extern "C" { +#endif + +HYPRE_Int HYPRE_ParVectorCopy_mp( HYPRE_ParVector x, HYPRE_ParVector y ); + +#ifdef __cplusplus +} +#endif + +#endif + +#endif diff --git a/src/parcsr_mv/Makefile b/src/parcsr_mv/Makefile index bbc8ed6e61..88e31a8a73 100644 --- a/src/parcsr_mv/Makefile +++ b/src/parcsr_mv/Makefile @@ -20,22 +20,49 @@ C_COMPILE_FLAGS = \ HEADERS =\ HYPRE_parcsr_mv.h\ + HYPRE_parcsr_mv_mp.h\ _hypre_parcsr_mv.h\ new_commpkg.h\ numbers.h\ par_chord_matrix.h\ par_csr_communication.h\ par_csr_matrix.h\ - par_vector.h + par_vector.h\ + protos_mp.h FILES =\ + parcsr_mv_mp.c\ + HYPRE_parcsr_mv_mp.c + +CUFILES =\ + par_csr_matvec_device.c\ + par_csr_fffc_device.c\ + par_csr_matop_device.c\ + par_csr_triplemat_device.c\ + par_vector_device.c + +EXTRA_FILES =\ + parchord_to_parcsr.c + +DRIVER_FILES =\ + driver_aat.c\ + driver_boolaat.c\ + driver_boolmatmul.c\ + driver.c\ + driver_matmul.c\ + driver_mat_multivec.c\ + driver_matvec.c\ + driver_multivec.c + +####################### +# Multiprecision files +####################### +MuP_FILES = \ communicationT.c\ F90_HYPRE_parcsr_matrix.c\ F90_HYPRE_parcsr_vector.c\ F90_parcsr_matrix.c\ F90_par_vector.c\ - HYPRE_parcsr_matrix.c\ - HYPRE_parcsr_vector.c\ gen_fffc.c\ new_commpkg.c\ numbers.c\ @@ -53,31 +80,18 @@ FILES =\ par_csr_triplemat.c\ par_make_system.c\ par_vector.c\ - par_vector_batched.c - -CUFILES =\ - par_csr_fffc_device.c\ - par_csr_matop_device.c\ - par_csr_matvec_device.c\ - par_csr_triplemat_device.c\ - par_vector_device.c - -EXTRA_FILES =\ - parchord_to_parcsr.c - -DRIVER_FILES =\ - driver_aat.c\ - driver_boolaat.c\ - driver_boolmatmul.c\ - driver.c\ - driver_matmul.c\ - driver_mat_multivec.c\ - driver_matvec.c\ - driver_multivec.c + par_vector_batched.c\ + HYPRE_parcsr_matrix.c\ + HYPRE_parcsr_vector.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif DRIVER_OBJS = ${DRIVER_FILES:.c=.o} @@ -90,6 +104,10 @@ SONAME = libHYPRE_parcsr_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/parcsr_mv_mup_func.h $(HYPRE_BUILD_DIR)/include +# cp -fR $(srcdir)/protos_mp.h $(HYPRE_BUILD_DIR)/include +# cp -fR $(srcdir)/HYPRE_parcsr_mv_mp.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/hypre_parcsr_mv_mup.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib driver: driver.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} @@ -105,7 +123,7 @@ driver_matmul: driver_matmul.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} ${CC} -o driver_matmul driver_matmul.o ${LFLAGS} driver_boolmatmul: driver_boolmatmul.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} - @echo "Linking" $@ "... " + @echo "Linking" $@ "... "s ${CC} -o driver_boolmatmul driver_boolmatmul.o ${LFLAGS} driver_aat: driver_aat.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} @@ -119,19 +137,64 @@ driver_boolaat: driver_boolaat.o libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} install: libHYPRE_parcsr_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_parcsr_mv.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/parcsr_mv_mup_func.h $(HYPRE_INC_INSTALL) +# cp -fR $(srcdir)/protos_mp.h $(HYPRE_INC_INSTALL) +# cp -fR $(srcdir)/HYPRE_parcsr_mv_mp.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/hypre_parcsr_mv_mup.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -f driver driver_matvec driver_matmul rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_parcsr_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/parcsr_mv/_hypre_parcsr_mv.h b/src/parcsr_mv/_hypre_parcsr_mv.h index 8a659feebc..447aa8e217 100644 --- a/src/parcsr_mv/_hypre_parcsr_mv.h +++ b/src/parcsr_mv/_hypre_parcsr_mv.h @@ -10,6 +10,11 @@ #include "_hypre_seq_block_mv.h" #include "seq_mv.h" +#include "HYPRE_parcsr_mv_mp.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -254,6 +259,9 @@ typedef struct hypre_ParVector_struct hypre_IJAssumedPart *assumed_partition; /* only populated if this partition needed (for setting off-proc elements, for example)*/ +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision vector_precision; +#endif } hypre_ParVector; /*-------------------------------------------------------------------------- @@ -278,6 +286,10 @@ typedef struct hypre_ParVector_struct #define hypre_ParVectorAssumedPartition(vector) ((vector) -> assumed_partition) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_ParVectorPrecision(vector) ((vector) -> vector_precision) +#endif + static inline HYPRE_MemoryLocation hypre_ParVectorMemoryLocation(hypre_ParVector *vector) { @@ -370,6 +382,10 @@ typedef struct hypre_ParCSRMatrix_struct HYPRE_Int *soc_offd_j; #endif +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision matrix_precision; +#endif + } hypre_ParCSRMatrix; /*-------------------------------------------------------------------------- @@ -411,6 +427,10 @@ typedef struct hypre_ParCSRMatrix_struct #define hypre_ParCSRMatrixNumRows(matrix) hypre_CSRMatrixNumRows(hypre_ParCSRMatrixDiag(matrix)) #define hypre_ParCSRMatrixNumCols(matrix) hypre_CSRMatrixNumCols(hypre_ParCSRMatrixDiag(matrix)) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_ParCSRMatrixPrecision(matrix) ((matrix) -> matrix_precision) +#endif + static inline HYPRE_MemoryLocation hypre_ParCSRMatrixMemoryLocation(hypre_ParCSRMatrix *matrix) { @@ -759,27 +779,27 @@ HYPRE_Int HYPRE_ParVectorGetValues ( HYPRE_ParVector vector, HYPRE_Int num_value HYPRE_Int hypre_ParCSRMatrixGenerateFFFCHost( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFC( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3(hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFCD3(hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr, HYPRE_Real **D_lambda_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr, HYPRE_Real **D_lambda_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3Device(hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateCFDevice( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, - HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACF_ptr) ; + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACF_ptr); HYPRE_Int hypre_ParCSRMatrixGenerateCCDevice( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, - HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACC_ptr) ; + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACC_ptr); HYPRE_Int hypre_ParCSRMatrixGenerate1DCFDevice( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACX_ptr, - hypre_ParCSRMatrix **AXC_ptr ) ; + hypre_ParCSRMatrix **AXC_ptr ); /* new_commpkg.c */ HYPRE_Int hypre_PrintCommpkg ( hypre_ParCSRMatrix *A, const char *file_name ); @@ -1064,6 +1084,8 @@ HYPRE_Int hypre_ParCSRMatrixExtractSubmatrixFC( hypre_ParCSRMatrix *A, HYPRE_Int HYPRE_Real strength_thresh); HYPRE_Int hypre_ParCSRMatrixDiagScale( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScaleHost( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); HYPRE_Int hypre_ParCSRMatrixReorder ( hypre_ParCSRMatrix *A ); HYPRE_Int hypre_ParCSRMatrixAdd( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, HYPRE_Complex beta, hypre_ParCSRMatrix *B, hypre_ParCSRMatrix **Cout); @@ -1125,6 +1147,7 @@ HYPRE_Int hypre_ParCSRMatrixInitialize_v2( hypre_ParCSRMatrix *matrix, HYPRE_MemoryLocation memory_location ); HYPRE_Int hypre_ParCSRMatrixInitialize ( hypre_ParCSRMatrix *matrix ); HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_core( hypre_ParCSRMatrix *matrix, const char* format ); HYPRE_Int hypre_ParCSRMatrixSetDNumNonzeros ( hypre_ParCSRMatrix *matrix ); HYPRE_Int hypre_ParCSRMatrixSetNumRownnz ( hypre_ParCSRMatrix *matrix ); HYPRE_Int hypre_ParCSRMatrixSetDataOwner ( hypre_ParCSRMatrix *matrix, HYPRE_Int owns_data ); @@ -1152,6 +1175,9 @@ HYPRE_Int hypre_ParCSRMatrixGetLocalRange ( hypre_ParCSRMatrix *matrix, HYPRE_Bi HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); HYPRE_Int hypre_ParCSRMatrixGetRow ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, HYPRE_Int *size, HYPRE_BigInt **col_ind, HYPRE_Complex **values ); +HYPRE_Int hypre_ParCSRMatrixGetRowHost( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, + HYPRE_Complex **values ); HYPRE_Int hypre_ParCSRMatrixRestoreRow ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt row, HYPRE_Int *size, HYPRE_BigInt **col_ind, HYPRE_Complex **values ); hypre_ParCSRMatrix *hypre_CSRMatrixToParCSRMatrix ( MPI_Comm comm, hypre_CSRMatrix *A, @@ -1194,6 +1220,12 @@ HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlace ( HYPRE_Complex alpha, hypre_ParCSR HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceDevice ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceHost( HYPRE_Complex alpha, + hypre_ParCSRMatrix *A, + hypre_ParVector *x, + HYPRE_Complex beta, + hypre_ParVector *b, + hypre_ParVector *y ); // y = alpha*A*x + beta*y HYPRE_Int hypre_ParCSRMatrixMatvec ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y ); @@ -1202,6 +1234,9 @@ HYPRE_Int hypre_ParCSRMatrixMatvecT ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A HYPRE_Int hypre_ParCSRMatrixMatvecTDevice ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecTHost( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, HYPRE_Complex beta, + hypre_ParVector *y ); HYPRE_Int hypre_ParCSRMatrixMatvecT_unpack( hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols, HYPRE_Complex *recv_data, HYPRE_Complex *local_data ); HYPRE_Int hypre_ParCSRMatrixMatvec_FF ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, @@ -1304,6 +1339,27 @@ HYPRE_Int hypre_ParVectorElmdivpyMarked( hypre_ParVector *x, hypre_ParVector *b, HYPRE_Int hypre_ParVectorGetValuesDevice(hypre_ParVector *vector, HYPRE_Int num_values, HYPRE_BigInt *indices, HYPRE_BigInt base, HYPRE_Complex *values); +/****************************************************************************** + * 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) + ******************************************************************************/ + +/* Mixed precision function protos */ +/* parcsr_mv_mp.c */ + +#ifdef HYPRE_MIXED_PRECISION +HYPRE_Int +hypre_ParVectorCopy_mp( hypre_ParVector *x, + hypre_ParVector *y ); + +HYPRE_Int +hypre_ParVectorAxpy_mp( hypre_double alpha, + hypre_ParVector *x, + hypre_ParVector *y ); + +#endif #ifdef __cplusplus } diff --git a/src/parcsr_mv/headers b/src/parcsr_mv/headers index dd9a435167..b1e6ad6597 100755 --- a/src/parcsr_mv/headers +++ b/src/parcsr_mv/headers @@ -23,6 +23,11 @@ cat > $INTERNAL_HEADER <<@ #include "_hypre_seq_block_mv.h" #include "seq_mv.h" +#include "HYPRE_parcsr_mv_mp.h" +#ifdef HYPRE_MIXED_PRECISION +#include "parcsr_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -42,6 +47,7 @@ cat numbers.h >> $INTERNAL_HEADER cat par_chord_matrix.h >> $INTERNAL_HEADER cat par_make_system.h >> $INTERNAL_HEADER cat protos.h >> $INTERNAL_HEADER +cat protos_mp.h >> $INTERNAL_HEADER #../utilities/protos [!F]*.c >> $INTERNAL_HEADER diff --git a/src/parcsr_mv/hypre_parcsr_mv_mup.h b/src/parcsr_mv/hypre_parcsr_mv_mup.h new file mode 100644 index 0000000000..18b24b8c60 --- /dev/null +++ b/src/parcsr_mv/hypre_parcsr_mv_mup.h @@ -0,0 +1,1377 @@ + +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file of multiprecision function prototypes. + * This is needed for mixed-precision algorithm development. + *****************************************************************************/ + +#ifndef HYPRE_PARCSR_MV_MUP_HEADER +#define HYPRE_PARCSR_MV_MUP_HEADER + +#include "_hypre_parcsr_mv.h" + +#if defined (HYPRE_MIXED_PRECISION) + +HYPRE_Int hypre_MatTCommPkgCreate_flt ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_MatTCommPkgCreate_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_MatTCommPkgCreate_long_dbl ( hypre_ParCSRMatrix *A ); +void hypre_MatTCommPkgCreate_core_flt ( MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, HYPRE_Int num_rows_diag, + HYPRE_Int num_cols_diag, HYPRE_Int num_cols_offd, HYPRE_BigInt *row_starts, + HYPRE_BigInt firstColDiag, HYPRE_BigInt *colMapOffd, HYPRE_Int *mat_i_diag, HYPRE_Int *mat_j_diag, + HYPRE_Int *mat_i_offd, HYPRE_Int *mat_j_offd, HYPRE_Int data, HYPRE_Int *p_num_recvs, + HYPRE_Int **p_recv_procs, HYPRE_Int **p_recv_vec_starts, HYPRE_Int *p_num_sends, + HYPRE_Int **p_send_procs, HYPRE_Int **p_send_map_starts, HYPRE_Int **p_send_map_elmts ); +void hypre_MatTCommPkgCreate_core_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, HYPRE_Int num_rows_diag, + HYPRE_Int num_cols_diag, HYPRE_Int num_cols_offd, HYPRE_BigInt *row_starts, + HYPRE_BigInt firstColDiag, HYPRE_BigInt *colMapOffd, HYPRE_Int *mat_i_diag, HYPRE_Int *mat_j_diag, + HYPRE_Int *mat_i_offd, HYPRE_Int *mat_j_offd, HYPRE_Int data, HYPRE_Int *p_num_recvs, + HYPRE_Int **p_recv_procs, HYPRE_Int **p_recv_vec_starts, HYPRE_Int *p_num_sends, + HYPRE_Int **p_send_procs, HYPRE_Int **p_send_map_starts, HYPRE_Int **p_send_map_elmts ); +void hypre_MatTCommPkgCreate_core_long_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, HYPRE_Int num_rows_diag, + HYPRE_Int num_cols_diag, HYPRE_Int num_cols_offd, HYPRE_BigInt *row_starts, + HYPRE_BigInt firstColDiag, HYPRE_BigInt *colMapOffd, HYPRE_Int *mat_i_diag, HYPRE_Int *mat_j_diag, + HYPRE_Int *mat_i_offd, HYPRE_Int *mat_j_offd, HYPRE_Int data, HYPRE_Int *p_num_recvs, + HYPRE_Int **p_recv_procs, HYPRE_Int **p_recv_vec_starts, HYPRE_Int *p_num_sends, + HYPRE_Int **p_send_procs, HYPRE_Int **p_send_map_starts, HYPRE_Int **p_send_map_elmts ); +void hypre_RowsWithColumn_flt ( HYPRE_Int *rowmin, HYPRE_Int *rowmax, HYPRE_BigInt column, + HYPRE_Int num_rows_diag, HYPRE_BigInt firstColDiag, HYPRE_BigInt *colMapOffd, HYPRE_Int *mat_i_diag, + HYPRE_Int *mat_j_diag, HYPRE_Int *mat_i_offd, HYPRE_Int *mat_j_offd ); +void hypre_RowsWithColumn_dbl ( HYPRE_Int *rowmin, HYPRE_Int *rowmax, HYPRE_BigInt column, + HYPRE_Int num_rows_diag, HYPRE_BigInt firstColDiag, HYPRE_BigInt *colMapOffd, HYPRE_Int *mat_i_diag, + HYPRE_Int *mat_j_diag, HYPRE_Int *mat_i_offd, HYPRE_Int *mat_j_offd ); +void hypre_RowsWithColumn_long_dbl ( HYPRE_Int *rowmin, HYPRE_Int *rowmax, HYPRE_BigInt column, + HYPRE_Int num_rows_diag, HYPRE_BigInt firstColDiag, HYPRE_BigInt *colMapOffd, HYPRE_Int *mat_i_diag, + HYPRE_Int *mat_j_diag, HYPRE_Int *mat_i_offd, HYPRE_Int *mat_j_offd ); +void hypre_RowsWithColumn_original_flt ( HYPRE_Int *rowmin, HYPRE_Int *rowmax, HYPRE_BigInt column, + hypre_ParCSRMatrix *A ); +void hypre_RowsWithColumn_original_dbl ( HYPRE_Int *rowmin, HYPRE_Int *rowmax, HYPRE_BigInt column, + hypre_ParCSRMatrix *A ); +void hypre_RowsWithColumn_original_long_dbl ( HYPRE_Int *rowmin, HYPRE_Int *rowmax, HYPRE_BigInt column, + hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFC_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFC_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFC_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3_flt (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3_long_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFCD3_flt (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr, hypre_float **D_lambda_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFCD3_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr, hypre_double **D_lambda_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFCD3_long_dbl (hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr, hypre_long_double **D_lambda_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFCHost_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFCHost_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int hypre_ParCSRMatrixGenerateFFFCHost_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, + hypre_ParCSRMatrix **A_FC_ptr, + hypre_ParCSRMatrix **A_FF_ptr ); +HYPRE_Int HYPRE_CSRMatrixToParCSRMatrix_flt ( MPI_Comm comm, HYPRE_CSRMatrix A_CSR, + HYPRE_BigInt *row_partitioning, HYPRE_BigInt *col_partitioning, HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_CSRMatrixToParCSRMatrix_dbl ( MPI_Comm comm, HYPRE_CSRMatrix A_CSR, + HYPRE_BigInt *row_partitioning, HYPRE_BigInt *col_partitioning, HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_CSRMatrixToParCSRMatrix_long_dbl ( MPI_Comm comm, HYPRE_CSRMatrix A_CSR, + HYPRE_BigInt *row_partitioning, HYPRE_BigInt *col_partitioning, HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_CSRMatrixToParCSRMatrix_WithNewPartitioning_flt ( MPI_Comm comm, HYPRE_CSRMatrix A_CSR, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_CSRMatrixToParCSRMatrix_WithNewPartitioning_dbl ( MPI_Comm comm, HYPRE_CSRMatrix A_CSR, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_CSRMatrixToParCSRMatrix_WithNewPartitioning_long_dbl ( MPI_Comm comm, HYPRE_CSRMatrix A_CSR, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_num_rows, + HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts, + HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_num_rows, + HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts, + HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_num_rows, + HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts, + HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixDestroy_flt ( HYPRE_ParCSRMatrix matrix ); +HYPRE_Int HYPRE_ParCSRMatrixDestroy_dbl ( HYPRE_ParCSRMatrix matrix ); +HYPRE_Int HYPRE_ParCSRMatrixDestroy_long_dbl ( HYPRE_ParCSRMatrix matrix ); +HYPRE_Int HYPRE_ParCSRMatrixGetColPartitioning_flt ( HYPRE_ParCSRMatrix matrix, + HYPRE_BigInt **col_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetColPartitioning_dbl ( HYPRE_ParCSRMatrix matrix, + HYPRE_BigInt **col_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetColPartitioning_long_dbl ( HYPRE_ParCSRMatrix matrix, + HYPRE_BigInt **col_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetComm_flt ( HYPRE_ParCSRMatrix matrix, MPI_Comm *comm ); +HYPRE_Int HYPRE_ParCSRMatrixGetComm_dbl ( HYPRE_ParCSRMatrix matrix, MPI_Comm *comm ); +HYPRE_Int HYPRE_ParCSRMatrixGetComm_long_dbl ( HYPRE_ParCSRMatrix matrix, MPI_Comm *comm ); +HYPRE_Int HYPRE_ParCSRMatrixGetDims_flt ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt *M, HYPRE_BigInt *N ); +HYPRE_Int HYPRE_ParCSRMatrixGetDims_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt *M, HYPRE_BigInt *N ); +HYPRE_Int HYPRE_ParCSRMatrixGetDims_long_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt *M, HYPRE_BigInt *N ); +HYPRE_Int HYPRE_ParCSRMatrixGetGlobalRowPartitioning_flt ( HYPRE_ParCSRMatrix matrix, + HYPRE_Int all_procs, HYPRE_BigInt **row_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetGlobalRowPartitioning_dbl ( HYPRE_ParCSRMatrix matrix, + HYPRE_Int all_procs, HYPRE_BigInt **row_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetGlobalRowPartitioning_long_dbl ( HYPRE_ParCSRMatrix matrix, + HYPRE_Int all_procs, HYPRE_BigInt **row_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetLocalRange_flt ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int HYPRE_ParCSRMatrixGetLocalRange_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int HYPRE_ParCSRMatrixGetLocalRange_long_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int HYPRE_ParCSRMatrixGetRow_flt ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt row, HYPRE_Int *size, + HYPRE_BigInt **col_ind, hypre_float **values ); +HYPRE_Int HYPRE_ParCSRMatrixGetRow_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt row, HYPRE_Int *size, + HYPRE_BigInt **col_ind, hypre_double **values ); +HYPRE_Int HYPRE_ParCSRMatrixGetRow_long_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt row, HYPRE_Int *size, + HYPRE_BigInt **col_ind, hypre_long_double **values ); +HYPRE_Int HYPRE_ParCSRMatrixGetRowPartitioning_flt ( HYPRE_ParCSRMatrix matrix, + HYPRE_BigInt **row_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetRowPartitioning_dbl ( HYPRE_ParCSRMatrix matrix, + HYPRE_BigInt **row_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixGetRowPartitioning_long_dbl ( HYPRE_ParCSRMatrix matrix, + HYPRE_BigInt **row_partitioning_ptr ); +HYPRE_Int HYPRE_ParCSRMatrixInitialize_flt ( HYPRE_ParCSRMatrix matrix ); +HYPRE_Int HYPRE_ParCSRMatrixInitialize_dbl ( HYPRE_ParCSRMatrix matrix ); +HYPRE_Int HYPRE_ParCSRMatrixInitialize_long_dbl ( HYPRE_ParCSRMatrix matrix ); +HYPRE_Int HYPRE_ParCSRMatrixMatvec_flt ( hypre_float alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, + hypre_float beta, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParCSRMatrixMatvec_dbl ( hypre_double alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, + hypre_double beta, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParCSRMatrixMatvec_long_dbl ( hypre_long_double alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, + hypre_long_double beta, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParCSRMatrixMatvecT_flt ( hypre_float alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, + hypre_float beta, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParCSRMatrixMatvecT_dbl ( hypre_double alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, + hypre_double beta, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParCSRMatrixMatvecT_long_dbl ( hypre_long_double alpha, HYPRE_ParCSRMatrix A, HYPRE_ParVector x, + hypre_long_double beta, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParCSRMatrixPrint_flt ( HYPRE_ParCSRMatrix matrix, const char *file_name ); +HYPRE_Int HYPRE_ParCSRMatrixPrint_dbl ( HYPRE_ParCSRMatrix matrix, const char *file_name ); +HYPRE_Int HYPRE_ParCSRMatrixPrint_long_dbl ( HYPRE_ParCSRMatrix matrix, const char *file_name ); +HYPRE_Int HYPRE_ParCSRMatrixRead_flt ( MPI_Comm comm, const char *file_name, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixRead_dbl ( MPI_Comm comm, const char *file_name, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixRead_long_dbl ( MPI_Comm comm, const char *file_name, + HYPRE_ParCSRMatrix *matrix ); +HYPRE_Int HYPRE_ParCSRMatrixRestoreRow_flt ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, hypre_float **values ); +HYPRE_Int HYPRE_ParCSRMatrixRestoreRow_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, hypre_double **values ); +HYPRE_Int HYPRE_ParCSRMatrixRestoreRow_long_dbl ( HYPRE_ParCSRMatrix matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, hypre_long_double **values ); +HYPRE_Int HYPRE_ParMultiVectorCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_Int number_vectors, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParMultiVectorCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_Int number_vectors, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParMultiVectorCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_Int number_vectors, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorAxpy_flt ( hypre_float alpha, HYPRE_ParVector x, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParVectorAxpy_dbl ( hypre_double alpha, HYPRE_ParVector x, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParVectorAxpy_long_dbl ( hypre_long_double alpha, HYPRE_ParVector x, HYPRE_ParVector y ); +HYPRE_ParVector HYPRE_ParVectorCloneShallow_flt ( HYPRE_ParVector x ); +HYPRE_ParVector HYPRE_ParVectorCloneShallow_dbl ( HYPRE_ParVector x ); +HYPRE_ParVector HYPRE_ParVectorCloneShallow_long_dbl ( HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParVectorCopy_flt ( HYPRE_ParVector x, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParVectorCopy_dbl ( HYPRE_ParVector x, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParVectorCopy_long_dbl ( HYPRE_ParVector x, HYPRE_ParVector y ); +HYPRE_Int HYPRE_ParVectorCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorDestroy_flt ( HYPRE_ParVector vector ); +HYPRE_Int HYPRE_ParVectorDestroy_dbl ( HYPRE_ParVector vector ); +HYPRE_Int HYPRE_ParVectorDestroy_long_dbl ( HYPRE_ParVector vector ); +HYPRE_Int HYPRE_ParVectorGetValues_flt ( HYPRE_ParVector vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, hypre_float *values); +HYPRE_Int HYPRE_ParVectorGetValues_dbl ( HYPRE_ParVector vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, hypre_double *values); +HYPRE_Int HYPRE_ParVectorGetValues_long_dbl ( HYPRE_ParVector vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, hypre_long_double *values); +HYPRE_Int HYPRE_ParVectorInitialize_flt ( HYPRE_ParVector vector ); +HYPRE_Int HYPRE_ParVectorInitialize_dbl ( HYPRE_ParVector vector ); +HYPRE_Int HYPRE_ParVectorInitialize_long_dbl ( HYPRE_ParVector vector ); +HYPRE_Int HYPRE_ParVectorInnerProd_flt ( HYPRE_ParVector x, HYPRE_ParVector y, hypre_float *prod ); +HYPRE_Int HYPRE_ParVectorInnerProd_dbl ( HYPRE_ParVector x, HYPRE_ParVector y, hypre_double *prod ); +HYPRE_Int HYPRE_ParVectorInnerProd_long_dbl ( HYPRE_ParVector x, HYPRE_ParVector y, hypre_long_double *prod ); +HYPRE_Int HYPRE_ParVectorPrint_flt ( HYPRE_ParVector vector, const char *file_name ); +HYPRE_Int HYPRE_ParVectorPrint_dbl ( HYPRE_ParVector vector, const char *file_name ); +HYPRE_Int HYPRE_ParVectorPrint_long_dbl ( HYPRE_ParVector vector, const char *file_name ); +HYPRE_Int HYPRE_ParVectorRead_flt ( MPI_Comm comm, const char *file_name, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorRead_dbl ( MPI_Comm comm, const char *file_name, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorRead_long_dbl ( MPI_Comm comm, const char *file_name, HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_ParVectorScale_flt ( hypre_float value, HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParVectorScale_dbl ( hypre_double value, HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParVectorScale_long_dbl ( hypre_long_double value, HYPRE_ParVector x ); +HYPRE_Int HYPRE_ParVectorSetConstantValues_flt ( HYPRE_ParVector vector, hypre_float value ); +HYPRE_Int HYPRE_ParVectorSetConstantValues_dbl ( HYPRE_ParVector vector, hypre_double value ); +HYPRE_Int HYPRE_ParVectorSetConstantValues_long_dbl ( HYPRE_ParVector vector, hypre_long_double value ); +HYPRE_Int HYPRE_ParVectorSetRandomValues_flt ( HYPRE_ParVector vector, HYPRE_Int seed ); +HYPRE_Int HYPRE_ParVectorSetRandomValues_dbl ( HYPRE_ParVector vector, HYPRE_Int seed ); +HYPRE_Int HYPRE_ParVectorSetRandomValues_long_dbl ( HYPRE_ParVector vector, HYPRE_Int seed ); +HYPRE_Int HYPRE_VectorToParVector_flt ( MPI_Comm comm, HYPRE_Vector b, HYPRE_BigInt *partitioning, + HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_VectorToParVector_dbl ( MPI_Comm comm, HYPRE_Vector b, HYPRE_BigInt *partitioning, + HYPRE_ParVector *vector ); +HYPRE_Int HYPRE_VectorToParVector_long_dbl ( MPI_Comm comm, HYPRE_Vector b, HYPRE_BigInt *partitioning, + HYPRE_ParVector *vector ); +HYPRE_Int hypre_FillResponseIJDetermineSendProcs_flt ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseIJDetermineSendProcs_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseIJDetermineSendProcs_long_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_NewCommPkgDestroy_flt ( hypre_ParCSRMatrix *parcsr_A ); +HYPRE_Int hypre_NewCommPkgDestroy_dbl ( hypre_ParCSRMatrix *parcsr_A ); +HYPRE_Int hypre_NewCommPkgDestroy_long_dbl ( hypre_ParCSRMatrix *parcsr_A ); +HYPRE_Int hypre_ParCSRCommPkgCreateApart_flt ( MPI_Comm comm, HYPRE_BigInt *col_map_off_d, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_off_d, HYPRE_BigInt global_num_cols, + hypre_IJAssumedPart *apart, hypre_ParCSRCommPkg *comm_pkg ); +HYPRE_Int hypre_ParCSRCommPkgCreateApart_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_off_d, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_off_d, HYPRE_BigInt global_num_cols, + hypre_IJAssumedPart *apart, hypre_ParCSRCommPkg *comm_pkg ); +HYPRE_Int hypre_ParCSRCommPkgCreateApart_long_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_off_d, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_off_d, HYPRE_BigInt global_num_cols, + hypre_IJAssumedPart *apart, hypre_ParCSRCommPkg *comm_pkg ); +HYPRE_Int hypre_ParCSRCommPkgCreateApart_core_flt ( MPI_Comm comm, HYPRE_BigInt *col_map_off_d, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_off_d, HYPRE_BigInt global_num_cols, + HYPRE_Int *p_num_recvs, HYPRE_Int **p_recv_procs, HYPRE_Int **p_recv_vec_starts, + HYPRE_Int *p_num_sends, HYPRE_Int **p_send_procs, HYPRE_Int **p_send_map_starts, + HYPRE_Int **p_send_map_elements, hypre_IJAssumedPart *apart ); +HYPRE_Int hypre_ParCSRCommPkgCreateApart_core_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_off_d, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_off_d, HYPRE_BigInt global_num_cols, + HYPRE_Int *p_num_recvs, HYPRE_Int **p_recv_procs, HYPRE_Int **p_recv_vec_starts, + HYPRE_Int *p_num_sends, HYPRE_Int **p_send_procs, HYPRE_Int **p_send_map_starts, + HYPRE_Int **p_send_map_elements, hypre_IJAssumedPart *apart ); +HYPRE_Int hypre_ParCSRCommPkgCreateApart_core_long_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_off_d, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_off_d, HYPRE_BigInt global_num_cols, + HYPRE_Int *p_num_recvs, HYPRE_Int **p_recv_procs, HYPRE_Int **p_recv_vec_starts, + HYPRE_Int *p_num_sends, HYPRE_Int **p_send_procs, HYPRE_Int **p_send_map_starts, + HYPRE_Int **p_send_map_elements, hypre_IJAssumedPart *apart ); +HYPRE_Int hypre_PrintCommpkg_flt ( hypre_ParCSRMatrix *A, const char *file_name ); +HYPRE_Int hypre_PrintCommpkg_dbl ( hypre_ParCSRMatrix *A, const char *file_name ); +HYPRE_Int hypre_PrintCommpkg_long_dbl ( hypre_ParCSRMatrix *A, const char *file_name ); +HYPRE_Int hypre_RangeFillResponseIJDetermineRecvProcs_flt ( void *p_recv_contact_buf, + HYPRE_Int contact_size, HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_RangeFillResponseIJDetermineRecvProcs_dbl ( void *p_recv_contact_buf, + HYPRE_Int contact_size, HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_RangeFillResponseIJDetermineRecvProcs_long_dbl ( void *p_recv_contact_buf, + HYPRE_Int contact_size, HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int *hypre_NumbersArray_flt ( hypre_NumbersNode *node ); +HYPRE_Int *hypre_NumbersArray_dbl ( hypre_NumbersNode *node ); +HYPRE_Int *hypre_NumbersArray_long_dbl ( hypre_NumbersNode *node ); +void hypre_NumbersDeleteNode_flt ( hypre_NumbersNode *node ); +void hypre_NumbersDeleteNode_dbl ( hypre_NumbersNode *node ); +void hypre_NumbersDeleteNode_long_dbl ( hypre_NumbersNode *node ); +HYPRE_Int hypre_NumbersEnter_flt ( hypre_NumbersNode *node, const HYPRE_Int n ); +HYPRE_Int hypre_NumbersEnter_dbl ( hypre_NumbersNode *node, const HYPRE_Int n ); +HYPRE_Int hypre_NumbersEnter_long_dbl ( hypre_NumbersNode *node, const HYPRE_Int n ); +HYPRE_Int hypre_NumbersNEntered_flt ( hypre_NumbersNode *node ); +HYPRE_Int hypre_NumbersNEntered_dbl ( hypre_NumbersNode *node ); +HYPRE_Int hypre_NumbersNEntered_long_dbl ( hypre_NumbersNode *node ); +hypre_NumbersNode *hypre_NumbersNewNode_flt ( void ); +hypre_NumbersNode *hypre_NumbersNewNode_dbl ( void ); +hypre_NumbersNode *hypre_NumbersNewNode_long_dbl ( void ); +HYPRE_Int hypre_NumbersQuery_flt ( hypre_NumbersNode *node, const HYPRE_Int n ); +HYPRE_Int hypre_NumbersQuery_dbl ( hypre_NumbersNode *node, const HYPRE_Int n ); +HYPRE_Int hypre_NumbersQuery_long_dbl ( hypre_NumbersNode *node, const HYPRE_Int n ); +void hypre_ParAat_RowSizes_flt ( HYPRE_Int **C_diag_i, HYPRE_Int **C_offd_i, HYPRE_Int *B_marker, + HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, + HYPRE_BigInt *A_col_map_offd, HYPRE_Int *A_ext_i, HYPRE_BigInt *A_ext_j, + HYPRE_BigInt *A_ext_row_map, HYPRE_Int *C_diag_size, HYPRE_Int *C_offd_size, + HYPRE_Int num_rows_diag_A, HYPRE_Int num_cols_offd_A, HYPRE_Int num_rows_A_ext, + HYPRE_BigInt first_col_diag_A, HYPRE_BigInt first_row_index_A ); +void hypre_ParAat_RowSizes_dbl ( HYPRE_Int **C_diag_i, HYPRE_Int **C_offd_i, HYPRE_Int *B_marker, + HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, + HYPRE_BigInt *A_col_map_offd, HYPRE_Int *A_ext_i, HYPRE_BigInt *A_ext_j, + HYPRE_BigInt *A_ext_row_map, HYPRE_Int *C_diag_size, HYPRE_Int *C_offd_size, + HYPRE_Int num_rows_diag_A, HYPRE_Int num_cols_offd_A, HYPRE_Int num_rows_A_ext, + HYPRE_BigInt first_col_diag_A, HYPRE_BigInt first_row_index_A ); +void hypre_ParAat_RowSizes_long_dbl ( HYPRE_Int **C_diag_i, HYPRE_Int **C_offd_i, HYPRE_Int *B_marker, + HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, + HYPRE_BigInt *A_col_map_offd, HYPRE_Int *A_ext_i, HYPRE_BigInt *A_ext_j, + HYPRE_BigInt *A_ext_row_map, HYPRE_Int *C_diag_size, HYPRE_Int *C_offd_size, + HYPRE_Int num_rows_diag_A, HYPRE_Int num_cols_offd_A, HYPRE_Int num_rows_A_ext, + HYPRE_BigInt first_col_diag_A, HYPRE_BigInt first_row_index_A ); +hypre_ParCSRMatrix *hypre_ParCSRAAt_flt ( hypre_ParCSRMatrix *A ); +hypre_ParCSRMatrix *hypre_ParCSRAAt_dbl ( hypre_ParCSRMatrix *A ); +hypre_ParCSRMatrix *hypre_ParCSRAAt_long_dbl ( hypre_ParCSRMatrix *A ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractAExt_flt ( hypre_ParCSRMatrix *A, HYPRE_Int data, + HYPRE_BigInt **pA_ext_row_map ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractAExt_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int data, + HYPRE_BigInt **pA_ext_row_map ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractAExt_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int data, + HYPRE_BigInt **pA_ext_row_map ); +hypre_IJAssumedPart *hypre_AssumedPartitionCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_num, + HYPRE_BigInt start, HYPRE_BigInt end ); +hypre_IJAssumedPart *hypre_AssumedPartitionCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_num, + HYPRE_BigInt start, HYPRE_BigInt end ); +hypre_IJAssumedPart *hypre_AssumedPartitionCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_num, + HYPRE_BigInt start, HYPRE_BigInt end ); +HYPRE_Int hypre_AssumedPartitionDestroy_flt ( hypre_IJAssumedPart *apart ); +HYPRE_Int hypre_AssumedPartitionDestroy_dbl ( hypre_IJAssumedPart *apart ); +HYPRE_Int hypre_AssumedPartitionDestroy_long_dbl ( hypre_IJAssumedPart *apart ); +HYPRE_Int hypre_GetAssumedPartitionProcFromRow_flt ( MPI_Comm comm, HYPRE_BigInt row, + HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, HYPRE_Int *proc_id ); +HYPRE_Int hypre_GetAssumedPartitionProcFromRow_dbl ( MPI_Comm comm, HYPRE_BigInt row, + HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, HYPRE_Int *proc_id ); +HYPRE_Int hypre_GetAssumedPartitionProcFromRow_long_dbl ( MPI_Comm comm, HYPRE_BigInt row, + HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, HYPRE_Int *proc_id ); +HYPRE_Int hypre_GetAssumedPartitionRowRange_flt ( MPI_Comm comm, HYPRE_Int proc_id, + HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end ); +HYPRE_Int hypre_GetAssumedPartitionRowRange_dbl ( MPI_Comm comm, HYPRE_Int proc_id, + HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end ); +HYPRE_Int hypre_GetAssumedPartitionRowRange_long_dbl ( MPI_Comm comm, HYPRE_Int proc_id, + HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end ); +HYPRE_Int hypre_LocateAssumedPartition_flt ( MPI_Comm comm, HYPRE_BigInt row_start, + HYPRE_BigInt row_end, HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, + hypre_IJAssumedPart *part, HYPRE_Int myid ); +HYPRE_Int hypre_LocateAssumedPartition_dbl ( MPI_Comm comm, HYPRE_BigInt row_start, + HYPRE_BigInt row_end, HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, + hypre_IJAssumedPart *part, HYPRE_Int myid ); +HYPRE_Int hypre_LocateAssumedPartition_long_dbl ( MPI_Comm comm, HYPRE_BigInt row_start, + HYPRE_BigInt row_end, HYPRE_BigInt global_first_row, HYPRE_BigInt global_num_rows, + hypre_IJAssumedPart *part, HYPRE_Int myid ); +HYPRE_Int hypre_ParCSRMatrixCreateAssumedPartition_flt ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixCreateAssumedPartition_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixCreateAssumedPartition_long_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParVectorCreateAssumedPartition_flt ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorCreateAssumedPartition_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorCreateAssumedPartition_long_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_BooleanMatTCommPkgCreate_flt ( hypre_ParCSRBooleanMatrix *A ); +HYPRE_Int hypre_BooleanMatTCommPkgCreate_dbl ( hypre_ParCSRBooleanMatrix *A ); +HYPRE_Int hypre_BooleanMatTCommPkgCreate_long_dbl ( hypre_ParCSRBooleanMatrix *A ); +HYPRE_Int hypre_BooleanMatvecCommPkgCreate_flt ( hypre_ParCSRBooleanMatrix *A ); +HYPRE_Int hypre_BooleanMatvecCommPkgCreate_dbl ( hypre_ParCSRBooleanMatrix *A ); +HYPRE_Int hypre_BooleanMatvecCommPkgCreate_long_dbl ( hypre_ParCSRBooleanMatrix *A ); +hypre_ParCSRBooleanMatrix *hypre_ParBooleanAAt_flt ( hypre_ParCSRBooleanMatrix *A ); +hypre_ParCSRBooleanMatrix *hypre_ParBooleanAAt_dbl ( hypre_ParCSRBooleanMatrix *A ); +hypre_ParCSRBooleanMatrix *hypre_ParBooleanAAt_long_dbl ( hypre_ParCSRBooleanMatrix *A ); +hypre_ParCSRBooleanMatrix *hypre_ParBooleanMatmul_flt ( hypre_ParCSRBooleanMatrix *A, + hypre_ParCSRBooleanMatrix *B ); +hypre_ParCSRBooleanMatrix *hypre_ParBooleanMatmul_dbl ( hypre_ParCSRBooleanMatrix *A, + hypre_ParCSRBooleanMatrix *B ); +hypre_ParCSRBooleanMatrix *hypre_ParBooleanMatmul_long_dbl ( hypre_ParCSRBooleanMatrix *A, + hypre_ParCSRBooleanMatrix *B ); +hypre_CSRBooleanMatrix *hypre_ParCSRBooleanMatrixExtractAExt_flt ( hypre_ParCSRBooleanMatrix *A, + HYPRE_BigInt **pA_ext_row_map ); +hypre_CSRBooleanMatrix *hypre_ParCSRBooleanMatrixExtractAExt_dbl ( hypre_ParCSRBooleanMatrix *A, + HYPRE_BigInt **pA_ext_row_map ); +hypre_CSRBooleanMatrix *hypre_ParCSRBooleanMatrixExtractAExt_long_dbl ( hypre_ParCSRBooleanMatrix *A, + HYPRE_BigInt **pA_ext_row_map ); +hypre_CSRBooleanMatrix *hypre_ParCSRBooleanMatrixExtractBExt_flt ( hypre_ParCSRBooleanMatrix *B, + hypre_ParCSRBooleanMatrix *A ); +hypre_CSRBooleanMatrix *hypre_ParCSRBooleanMatrixExtractBExt_dbl ( hypre_ParCSRBooleanMatrix *B, + hypre_ParCSRBooleanMatrix *A ); +hypre_CSRBooleanMatrix *hypre_ParCSRBooleanMatrixExtractBExt_long_dbl ( hypre_ParCSRBooleanMatrix *B, + hypre_ParCSRBooleanMatrix *A ); +HYPRE_Int hypre_BooleanGenerateDiagAndOffd_flt ( hypre_CSRBooleanMatrix *A, + hypre_ParCSRBooleanMatrix *matrix, HYPRE_BigInt first_col_diag, HYPRE_BigInt last_col_diag ); +HYPRE_Int hypre_BooleanGenerateDiagAndOffd_dbl ( hypre_CSRBooleanMatrix *A, + hypre_ParCSRBooleanMatrix *matrix, HYPRE_BigInt first_col_diag, HYPRE_BigInt last_col_diag ); +HYPRE_Int hypre_BooleanGenerateDiagAndOffd_long_dbl ( hypre_CSRBooleanMatrix *A, + hypre_ParCSRBooleanMatrix *matrix, HYPRE_BigInt first_col_diag, HYPRE_BigInt last_col_diag ); +HYPRE_Int hypre_BuildCSRBooleanMatrixMPIDataType_flt ( HYPRE_Int num_nonzeros, HYPRE_Int num_rows, + HYPRE_Int *a_i, HYPRE_Int *a_j, hypre_MPI_Datatype *csr_matrix_datatype ); +HYPRE_Int hypre_BuildCSRBooleanMatrixMPIDataType_dbl ( HYPRE_Int num_nonzeros, HYPRE_Int num_rows, + HYPRE_Int *a_i, HYPRE_Int *a_j, hypre_MPI_Datatype *csr_matrix_datatype ); +HYPRE_Int hypre_BuildCSRBooleanMatrixMPIDataType_long_dbl ( HYPRE_Int num_nonzeros, HYPRE_Int num_rows, + HYPRE_Int *a_i, HYPRE_Int *a_j, hypre_MPI_Datatype *csr_matrix_datatype ); +HYPRE_Int hypre_CSRBooleanMatrixBigInitialize_flt ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixBigInitialize_dbl ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixBigInitialize_long_dbl ( hypre_CSRBooleanMatrix *matrix ); +hypre_CSRBooleanMatrix *hypre_CSRBooleanMatrixCreate_flt ( HYPRE_Int num_rows, HYPRE_Int num_cols, + HYPRE_Int num_nonzeros ); +hypre_CSRBooleanMatrix *hypre_CSRBooleanMatrixCreate_dbl ( HYPRE_Int num_rows, HYPRE_Int num_cols, + HYPRE_Int num_nonzeros ); +hypre_CSRBooleanMatrix *hypre_CSRBooleanMatrixCreate_long_dbl ( HYPRE_Int num_rows, HYPRE_Int num_cols, + HYPRE_Int num_nonzeros ); +HYPRE_Int hypre_CSRBooleanMatrixDestroy_flt ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixDestroy_dbl ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixDestroy_long_dbl ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixInitialize_flt ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixInitialize_dbl ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixInitialize_long_dbl ( hypre_CSRBooleanMatrix *matrix ); +HYPRE_Int hypre_CSRBooleanMatrixPrint_flt ( hypre_CSRBooleanMatrix *matrix, const char *file_name ); +HYPRE_Int hypre_CSRBooleanMatrixPrint_dbl ( hypre_CSRBooleanMatrix *matrix, const char *file_name ); +HYPRE_Int hypre_CSRBooleanMatrixPrint_long_dbl ( hypre_CSRBooleanMatrix *matrix, const char *file_name ); +hypre_CSRBooleanMatrix *hypre_CSRBooleanMatrixRead_flt ( const char *file_name ); +hypre_CSRBooleanMatrix *hypre_CSRBooleanMatrixRead_dbl ( const char *file_name ); +hypre_CSRBooleanMatrix *hypre_CSRBooleanMatrixRead_long_dbl ( const char *file_name ); +HYPRE_Int hypre_CSRBooleanMatrixSetDataOwner_flt ( hypre_CSRBooleanMatrix *matrix, + HYPRE_Int owns_data ); +HYPRE_Int hypre_CSRBooleanMatrixSetDataOwner_dbl ( hypre_CSRBooleanMatrix *matrix, + HYPRE_Int owns_data ); +HYPRE_Int hypre_CSRBooleanMatrixSetDataOwner_long_dbl ( hypre_CSRBooleanMatrix *matrix, + HYPRE_Int owns_data ); +hypre_ParCSRBooleanMatrix *hypre_CSRBooleanMatrixToParCSRBooleanMatrix_flt ( MPI_Comm comm, + hypre_CSRBooleanMatrix *A, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts ); +hypre_ParCSRBooleanMatrix *hypre_CSRBooleanMatrixToParCSRBooleanMatrix_dbl ( MPI_Comm comm, + hypre_CSRBooleanMatrix *A, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts ); +hypre_ParCSRBooleanMatrix *hypre_CSRBooleanMatrixToParCSRBooleanMatrix_long_dbl ( MPI_Comm comm, + hypre_CSRBooleanMatrix *A, HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts ); +hypre_ParCSRBooleanMatrix *hypre_ParCSRBooleanMatrixCreate_flt ( MPI_Comm comm, + HYPRE_BigInt global_num_rows, HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, + HYPRE_BigInt *col_starts, HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, + HYPRE_Int num_nonzeros_offd ); +hypre_ParCSRBooleanMatrix *hypre_ParCSRBooleanMatrixCreate_dbl ( MPI_Comm comm, + HYPRE_BigInt global_num_rows, HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, + HYPRE_BigInt *col_starts, HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, + HYPRE_Int num_nonzeros_offd ); +hypre_ParCSRBooleanMatrix *hypre_ParCSRBooleanMatrixCreate_long_dbl ( MPI_Comm comm, + HYPRE_BigInt global_num_rows, HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts, + HYPRE_BigInt *col_starts, HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, + HYPRE_Int num_nonzeros_offd ); +HYPRE_Int hypre_ParCSRBooleanMatrixDestroy_flt ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixDestroy_dbl ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixDestroy_long_dbl ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixGetLocalRange_flt ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_BigInt *row_start, HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int hypre_ParCSRBooleanMatrixGetLocalRange_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_BigInt *row_start, HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int hypre_ParCSRBooleanMatrixGetLocalRange_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_BigInt *row_start, HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int hypre_ParCSRBooleanMatrixGetRow_flt ( hypre_ParCSRBooleanMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind ); +HYPRE_Int hypre_ParCSRBooleanMatrixGetRow_dbl ( hypre_ParCSRBooleanMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind ); +HYPRE_Int hypre_ParCSRBooleanMatrixGetRow_long_dbl ( hypre_ParCSRBooleanMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind ); +HYPRE_Int hypre_ParCSRBooleanMatrixInitialize_flt ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixInitialize_dbl ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixInitialize_long_dbl ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixPrint_flt ( hypre_ParCSRBooleanMatrix *matrix, + const char *file_name ); +HYPRE_Int hypre_ParCSRBooleanMatrixPrint_dbl ( hypre_ParCSRBooleanMatrix *matrix, + const char *file_name ); +HYPRE_Int hypre_ParCSRBooleanMatrixPrint_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, + const char *file_name ); +HYPRE_Int hypre_ParCSRBooleanMatrixPrintIJ_flt ( hypre_ParCSRBooleanMatrix *matrix, + const char *filename ); +HYPRE_Int hypre_ParCSRBooleanMatrixPrintIJ_dbl ( hypre_ParCSRBooleanMatrix *matrix, + const char *filename ); +HYPRE_Int hypre_ParCSRBooleanMatrixPrintIJ_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, + const char *filename ); +hypre_ParCSRBooleanMatrix *hypre_ParCSRBooleanMatrixRead_flt ( MPI_Comm comm, const char *file_name ); +hypre_ParCSRBooleanMatrix *hypre_ParCSRBooleanMatrixRead_dbl ( MPI_Comm comm, const char *file_name ); +hypre_ParCSRBooleanMatrix *hypre_ParCSRBooleanMatrixRead_long_dbl ( MPI_Comm comm, const char *file_name ); +HYPRE_Int hypre_ParCSRBooleanMatrixRestoreRow_flt ( hypre_ParCSRBooleanMatrix *matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind ); +HYPRE_Int hypre_ParCSRBooleanMatrixRestoreRow_dbl ( hypre_ParCSRBooleanMatrix *matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind ); +HYPRE_Int hypre_ParCSRBooleanMatrixRestoreRow_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetColStartsOwner_flt ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_col_starts ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetColStartsOwner_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_col_starts ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetColStartsOwner_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_col_starts ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetDataOwner_flt ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_data ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetDataOwner_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_data ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetDataOwner_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_data ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetNNZ_flt ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetNNZ_dbl ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetNNZ_long_dbl ( hypre_ParCSRBooleanMatrix *matrix ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetRowStartsOwner_flt ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_row_starts ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetRowStartsOwner_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_row_starts ); +HYPRE_Int hypre_ParCSRBooleanMatrixSetRowStartsOwner_long_dbl ( hypre_ParCSRBooleanMatrix *matrix, + HYPRE_Int owns_row_starts ); +HYPRE_Int hypre_BuildCSRJDataType_flt ( HYPRE_Int num_nonzeros, hypre_float *a_data, HYPRE_Int *a_j, + hypre_MPI_Datatype *csr_jdata_datatype ); +HYPRE_Int hypre_BuildCSRJDataType_dbl ( HYPRE_Int num_nonzeros, hypre_double *a_data, HYPRE_Int *a_j, + hypre_MPI_Datatype *csr_jdata_datatype ); +HYPRE_Int hypre_BuildCSRJDataType_long_dbl ( HYPRE_Int num_nonzeros, hypre_long_double *a_data, HYPRE_Int *a_j, + hypre_MPI_Datatype *csr_jdata_datatype ); +HYPRE_Int hypre_BuildCSRMatrixMPIDataType_flt ( HYPRE_Int num_nonzeros, HYPRE_Int num_rows, + hypre_float *a_data, HYPRE_Int *a_i, HYPRE_Int *a_j, + hypre_MPI_Datatype *csr_matrix_datatype ); +HYPRE_Int hypre_BuildCSRMatrixMPIDataType_dbl ( HYPRE_Int num_nonzeros, HYPRE_Int num_rows, + hypre_double *a_data, HYPRE_Int *a_i, HYPRE_Int *a_j, + hypre_MPI_Datatype *csr_matrix_datatype ); +HYPRE_Int hypre_BuildCSRMatrixMPIDataType_long_dbl ( HYPRE_Int num_nonzeros, HYPRE_Int num_rows, + hypre_long_double *a_data, HYPRE_Int *a_i, HYPRE_Int *a_j, + hypre_MPI_Datatype *csr_matrix_datatype ); +HYPRE_Int hypre_MatvecCommPkgCreate_flt ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_MatvecCommPkgCreate_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_MatvecCommPkgCreate_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_MatvecCommPkgDestroy_flt ( hypre_ParCSRCommPkg *comm_pkg ); +HYPRE_Int hypre_MatvecCommPkgDestroy_dbl ( hypre_ParCSRCommPkg *comm_pkg ); +HYPRE_Int hypre_MatvecCommPkgDestroy_long_dbl ( hypre_ParCSRCommPkg *comm_pkg ); +hypre_ParCSRCommHandle *hypre_ParCSRCommHandleCreate_flt ( HYPRE_Int job, hypre_ParCSRCommPkg *comm_pkg, + void *send_data, void *recv_data ); +hypre_ParCSRCommHandle *hypre_ParCSRCommHandleCreate_dbl ( HYPRE_Int job, hypre_ParCSRCommPkg *comm_pkg, + void *send_data, void *recv_data ); +hypre_ParCSRCommHandle *hypre_ParCSRCommHandleCreate_long_dbl ( HYPRE_Int job, hypre_ParCSRCommPkg *comm_pkg, + void *send_data, void *recv_data ); +hypre_ParCSRCommHandle *hypre_ParCSRCommHandleCreate_v2_flt ( HYPRE_Int job, + hypre_ParCSRCommPkg *comm_pkg, + HYPRE_MemoryLocation send_memory_location, + void *send_data_in, + HYPRE_MemoryLocation recv_memory_location, + void *recv_data_in ); +hypre_ParCSRCommHandle *hypre_ParCSRCommHandleCreate_v2_dbl ( HYPRE_Int job, + hypre_ParCSRCommPkg *comm_pkg, + HYPRE_MemoryLocation send_memory_location, + void *send_data_in, + HYPRE_MemoryLocation recv_memory_location, + void *recv_data_in ); +hypre_ParCSRCommHandle *hypre_ParCSRCommHandleCreate_v2_long_dbl ( HYPRE_Int job, + hypre_ParCSRCommPkg *comm_pkg, + HYPRE_MemoryLocation send_memory_location, + void *send_data_in, + HYPRE_MemoryLocation recv_memory_location, + void *recv_data_in ); +HYPRE_Int hypre_ParCSRCommHandleDestroy_flt ( hypre_ParCSRCommHandle *comm_handle ); +HYPRE_Int hypre_ParCSRCommHandleDestroy_dbl ( hypre_ParCSRCommHandle *comm_handle ); +HYPRE_Int hypre_ParCSRCommHandleDestroy_long_dbl ( hypre_ParCSRCommHandle *comm_handle ); +HYPRE_Int hypre_ParCSRCommPkgCreate_flt (MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, + HYPRE_Int num_cols_diag, HYPRE_Int num_cols_offd, + hypre_ParCSRCommPkg *comm_pkg); +HYPRE_Int hypre_ParCSRCommPkgCreate_dbl (MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, + HYPRE_Int num_cols_diag, HYPRE_Int num_cols_offd, + hypre_ParCSRCommPkg *comm_pkg); +HYPRE_Int hypre_ParCSRCommPkgCreate_long_dbl (MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, + HYPRE_Int num_cols_diag, HYPRE_Int num_cols_offd, + hypre_ParCSRCommPkg *comm_pkg); +HYPRE_Int hypre_ParCSRCommPkgCreateAndFill_flt ( MPI_Comm comm, HYPRE_Int num_recvs, + HYPRE_Int *recv_procs, HYPRE_Int *recv_vec_starts, + HYPRE_Int num_sends, HYPRE_Int *send_procs, + HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + hypre_ParCSRCommPkg **comm_pkg_ptr ); +HYPRE_Int hypre_ParCSRCommPkgCreateAndFill_dbl ( MPI_Comm comm, HYPRE_Int num_recvs, + HYPRE_Int *recv_procs, HYPRE_Int *recv_vec_starts, + HYPRE_Int num_sends, HYPRE_Int *send_procs, + HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + hypre_ParCSRCommPkg **comm_pkg_ptr ); +HYPRE_Int hypre_ParCSRCommPkgCreateAndFill_long_dbl ( MPI_Comm comm, HYPRE_Int num_recvs, + HYPRE_Int *recv_procs, HYPRE_Int *recv_vec_starts, + HYPRE_Int num_sends, HYPRE_Int *send_procs, + HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + hypre_ParCSRCommPkg **comm_pkg_ptr ); +void hypre_ParCSRCommPkgCreate_core_flt ( MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, HYPRE_Int num_cols_diag, + HYPRE_Int num_cols_offd, HYPRE_Int *p_num_recvs, HYPRE_Int **p_recv_procs, + HYPRE_Int **p_recv_vec_starts, HYPRE_Int *p_num_sends, HYPRE_Int **p_send_procs, + HYPRE_Int **p_send_map_starts, HYPRE_Int **p_send_map_elmts ); +void hypre_ParCSRCommPkgCreate_core_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, HYPRE_Int num_cols_diag, + HYPRE_Int num_cols_offd, HYPRE_Int *p_num_recvs, HYPRE_Int **p_recv_procs, + HYPRE_Int **p_recv_vec_starts, HYPRE_Int *p_num_sends, HYPRE_Int **p_send_procs, + HYPRE_Int **p_send_map_starts, HYPRE_Int **p_send_map_elmts ); +void hypre_ParCSRCommPkgCreate_core_long_dbl ( MPI_Comm comm, HYPRE_BigInt *col_map_offd, + HYPRE_BigInt first_col_diag, HYPRE_BigInt *col_starts, HYPRE_Int num_cols_diag, + HYPRE_Int num_cols_offd, HYPRE_Int *p_num_recvs, HYPRE_Int **p_recv_procs, + HYPRE_Int **p_recv_vec_starts, HYPRE_Int *p_num_sends, HYPRE_Int **p_send_procs, + HYPRE_Int **p_send_map_starts, HYPRE_Int **p_send_map_elmts ); +HYPRE_Int hypre_ParCSRCommPkgUpdateVecStarts_flt ( hypre_ParCSRCommPkg *comm_pkg, hypre_ParVector *x ); +HYPRE_Int hypre_ParCSRCommPkgUpdateVecStarts_dbl ( hypre_ParCSRCommPkg *comm_pkg, hypre_ParVector *x ); +HYPRE_Int hypre_ParCSRCommPkgUpdateVecStarts_long_dbl ( hypre_ParCSRCommPkg *comm_pkg, hypre_ParVector *x ); +HYPRE_Int hypre_ParCSRFindExtendCommPkg_flt (MPI_Comm comm, HYPRE_BigInt global_num_cols, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_diag, HYPRE_BigInt *col_starts, + hypre_IJAssumedPart *apart, HYPRE_Int indices_len, HYPRE_BigInt *indices, + hypre_ParCSRCommPkg **extend_comm_pkg); +HYPRE_Int hypre_ParCSRFindExtendCommPkg_dbl (MPI_Comm comm, HYPRE_BigInt global_num_cols, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_diag, HYPRE_BigInt *col_starts, + hypre_IJAssumedPart *apart, HYPRE_Int indices_len, HYPRE_BigInt *indices, + hypre_ParCSRCommPkg **extend_comm_pkg); +HYPRE_Int hypre_ParCSRFindExtendCommPkg_long_dbl (MPI_Comm comm, HYPRE_BigInt global_num_cols, + HYPRE_BigInt first_col_diag, HYPRE_Int num_cols_diag, HYPRE_BigInt *col_starts, + hypre_IJAssumedPart *apart, HYPRE_Int indices_len, HYPRE_BigInt *indices, + hypre_ParCSRCommPkg **extend_comm_pkg); +void hypre_ParCSRMatrixCopy_C_flt ( hypre_ParCSRMatrix *P, hypre_ParCSRMatrix *C, + HYPRE_Int *CF_marker ); +void hypre_ParCSRMatrixCopy_C_dbl ( hypre_ParCSRMatrix *P, hypre_ParCSRMatrix *C, + HYPRE_Int *CF_marker ); +void hypre_ParCSRMatrixCopy_C_long_dbl ( hypre_ParCSRMatrix *P, hypre_ParCSRMatrix *C, + HYPRE_Int *CF_marker ); +void hypre_ParCSRMatrixZero_F_flt ( hypre_ParCSRMatrix *P, HYPRE_Int *CF_marker ); +void hypre_ParCSRMatrixZero_F_dbl ( hypre_ParCSRMatrix *P, HYPRE_Int *CF_marker ); +void hypre_ParCSRMatrixZero_F_long_dbl ( hypre_ParCSRMatrix *P, HYPRE_Int *CF_marker ); +hypre_ParCSRMatrix *hypre_ParMatMinus_F_flt ( hypre_ParCSRMatrix *P, hypre_ParCSRMatrix *C, + HYPRE_Int *CF_marker ); +hypre_ParCSRMatrix *hypre_ParMatMinus_F_dbl ( hypre_ParCSRMatrix *P, hypre_ParCSRMatrix *C, + HYPRE_Int *CF_marker ); +hypre_ParCSRMatrix *hypre_ParMatMinus_F_long_dbl ( hypre_ParCSRMatrix *P, hypre_ParCSRMatrix *C, + HYPRE_Int *CF_marker ); +hypre_ParCSRMatrix *hypre_ParMatmul_FC_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + HYPRE_Int *CF_marker, HYPRE_Int *dof_func, + HYPRE_Int *dof_func_offd ); +hypre_ParCSRMatrix *hypre_ParMatmul_FC_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + HYPRE_Int *CF_marker, HYPRE_Int *dof_func, + HYPRE_Int *dof_func_offd ); +hypre_ParCSRMatrix *hypre_ParMatmul_FC_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *P, + HYPRE_Int *CF_marker, HYPRE_Int *dof_func, + HYPRE_Int *dof_func_offd ); +void hypre_ParMatmul_RowSizes_Marked_flt ( HYPRE_Int **C_diag_i, HYPRE_Int **C_offd_i, + HYPRE_Int **B_marker, HYPRE_Int *A_diag_i, + HYPRE_Int *A_diag_j, HYPRE_Int *A_offd_i, + HYPRE_Int *A_offd_j, HYPRE_Int *B_diag_i, + HYPRE_Int *B_diag_j, HYPRE_Int *B_offd_i, + HYPRE_Int *B_offd_j, HYPRE_Int *B_ext_diag_i, + HYPRE_Int *B_ext_diag_j, HYPRE_Int *B_ext_offd_i, + HYPRE_Int *B_ext_offd_j, HYPRE_Int *map_B_to_C, + HYPRE_Int *C_diag_size, HYPRE_Int *C_offd_size, + HYPRE_Int num_rows_diag_A, HYPRE_Int num_cols_offd_A, + HYPRE_Int allsquare, HYPRE_Int num_cols_diag_B, + HYPRE_Int num_cols_offd_B, HYPRE_Int num_cols_offd_C, + HYPRE_Int *CF_marker, HYPRE_Int *dof_func, + HYPRE_Int *dof_func_offd ); +void hypre_ParMatmul_RowSizes_Marked_dbl ( HYPRE_Int **C_diag_i, HYPRE_Int **C_offd_i, + HYPRE_Int **B_marker, HYPRE_Int *A_diag_i, + HYPRE_Int *A_diag_j, HYPRE_Int *A_offd_i, + HYPRE_Int *A_offd_j, HYPRE_Int *B_diag_i, + HYPRE_Int *B_diag_j, HYPRE_Int *B_offd_i, + HYPRE_Int *B_offd_j, HYPRE_Int *B_ext_diag_i, + HYPRE_Int *B_ext_diag_j, HYPRE_Int *B_ext_offd_i, + HYPRE_Int *B_ext_offd_j, HYPRE_Int *map_B_to_C, + HYPRE_Int *C_diag_size, HYPRE_Int *C_offd_size, + HYPRE_Int num_rows_diag_A, HYPRE_Int num_cols_offd_A, + HYPRE_Int allsquare, HYPRE_Int num_cols_diag_B, + HYPRE_Int num_cols_offd_B, HYPRE_Int num_cols_offd_C, + HYPRE_Int *CF_marker, HYPRE_Int *dof_func, + HYPRE_Int *dof_func_offd ); +void hypre_ParMatmul_RowSizes_Marked_long_dbl ( HYPRE_Int **C_diag_i, HYPRE_Int **C_offd_i, + HYPRE_Int **B_marker, HYPRE_Int *A_diag_i, + HYPRE_Int *A_diag_j, HYPRE_Int *A_offd_i, + HYPRE_Int *A_offd_j, HYPRE_Int *B_diag_i, + HYPRE_Int *B_diag_j, HYPRE_Int *B_offd_i, + HYPRE_Int *B_offd_j, HYPRE_Int *B_ext_diag_i, + HYPRE_Int *B_ext_diag_j, HYPRE_Int *B_ext_offd_i, + HYPRE_Int *B_ext_offd_j, HYPRE_Int *map_B_to_C, + HYPRE_Int *C_diag_size, HYPRE_Int *C_offd_size, + HYPRE_Int num_rows_diag_A, HYPRE_Int num_cols_offd_A, + HYPRE_Int allsquare, HYPRE_Int num_cols_diag_B, + HYPRE_Int num_cols_offd_B, HYPRE_Int num_cols_offd_C, + HYPRE_Int *CF_marker, HYPRE_Int *dof_func, + HYPRE_Int *dof_func_offd ); +void hypre_ParMatScaleDiagInv_F_flt ( hypre_ParCSRMatrix *C, hypre_ParCSRMatrix *A, + hypre_float weight, HYPRE_Int *CF_marker ); +void hypre_ParMatScaleDiagInv_F_dbl ( hypre_ParCSRMatrix *C, hypre_ParCSRMatrix *A, + hypre_double weight, HYPRE_Int *CF_marker ); +void hypre_ParMatScaleDiagInv_F_long_dbl ( hypre_ParCSRMatrix *C, hypre_ParCSRMatrix *A, + hypre_long_double weight, HYPRE_Int *CF_marker ); +HYPRE_Int hypre_ExchangeExternalRowsInit_flt ( hypre_CSRMatrix *B_ext, hypre_ParCSRCommPkg *comm_pkg_A, + void **request_ptr); +HYPRE_Int hypre_ExchangeExternalRowsInit_dbl ( hypre_CSRMatrix *B_ext, hypre_ParCSRCommPkg *comm_pkg_A, + void **request_ptr); +HYPRE_Int hypre_ExchangeExternalRowsInit_long_dbl ( hypre_CSRMatrix *B_ext, hypre_ParCSRCommPkg *comm_pkg_A, + void **request_ptr); +hypre_CSRMatrix* hypre_ExchangeExternalRowsWait_flt (void *vequest); +hypre_CSRMatrix* hypre_ExchangeExternalRowsWait_dbl (void *vequest); +hypre_CSRMatrix* hypre_ExchangeExternalRowsWait_long_dbl (void *vequest); +HYPRE_Int hypre_ParcsrBdiagInvScal_flt ( hypre_ParCSRMatrix *A, HYPRE_Int blockSize, + hypre_ParCSRMatrix **As); +HYPRE_Int hypre_ParcsrBdiagInvScal_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blockSize, + hypre_ParCSRMatrix **As); +HYPRE_Int hypre_ParcsrBdiagInvScal_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int blockSize, + hypre_ParCSRMatrix **As); +HYPRE_Int hypre_ParCSRDiagScaleVector_flt ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_y, + hypre_ParVector *par_x ); +HYPRE_Int hypre_ParCSRDiagScaleVector_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_y, + hypre_ParVector *par_x ); +HYPRE_Int hypre_ParCSRDiagScaleVector_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_y, + hypre_ParVector *par_x ); +HYPRE_Int hypre_ParCSRDiagScaleVectorHost_flt ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_y, + hypre_ParVector *par_x ); +HYPRE_Int hypre_ParCSRDiagScaleVectorHost_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_y, + hypre_ParVector *par_x ); +HYPRE_Int hypre_ParCSRDiagScaleVectorHost_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_y, + hypre_ParVector *par_x ); +HYPRE_Int hypre_ParcsrGetExternalRowsInit_flt ( hypre_ParCSRMatrix *A, HYPRE_Int indices_len, + HYPRE_BigInt *indices, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int want_data, void **request_ptr); +HYPRE_Int hypre_ParcsrGetExternalRowsInit_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int indices_len, + HYPRE_BigInt *indices, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int want_data, void **request_ptr); +HYPRE_Int hypre_ParcsrGetExternalRowsInit_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int indices_len, + HYPRE_BigInt *indices, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int want_data, void **request_ptr); +hypre_CSRMatrix* hypre_ParcsrGetExternalRowsWait_flt (void *vrequest); +hypre_CSRMatrix* hypre_ParcsrGetExternalRowsWait_dbl (void *vrequest); +hypre_CSRMatrix* hypre_ParcsrGetExternalRowsWait_long_dbl (void *vrequest); +HYPRE_Int hypre_ParCSRMatrixAdd_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, hypre_float beta, + hypre_ParCSRMatrix *B, hypre_ParCSRMatrix **Cout); +HYPRE_Int hypre_ParCSRMatrixAdd_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, hypre_double beta, + hypre_ParCSRMatrix *B, hypre_ParCSRMatrix **Cout); +HYPRE_Int hypre_ParCSRMatrixAdd_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, hypre_long_double beta, + hypre_ParCSRMatrix *B, hypre_ParCSRMatrix **Cout); +HYPRE_Int hypre_ParCSRMatrixAddHost_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, + hypre_float beta, hypre_ParCSRMatrix *B, + hypre_ParCSRMatrix **Cout); +HYPRE_Int hypre_ParCSRMatrixAddHost_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, + hypre_double beta, hypre_ParCSRMatrix *B, + hypre_ParCSRMatrix **Cout); +HYPRE_Int hypre_ParCSRMatrixAddHost_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, + hypre_long_double beta, hypre_ParCSRMatrix *B, + hypre_ParCSRMatrix **Cout); +HYPRE_Int hypre_ParCSRMatrixAminvDB_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + hypre_float *d, hypre_ParCSRMatrix **C_ptr ); +HYPRE_Int hypre_ParCSRMatrixAminvDB_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + hypre_double *d, hypre_ParCSRMatrix **C_ptr ); +HYPRE_Int hypre_ParCSRMatrixAminvDB_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + hypre_long_double *d, hypre_ParCSRMatrix **C_ptr ); +HYPRE_Int hypre_ParCSRMatrixCompressOffdMap_flt (hypre_ParCSRMatrix *A); +HYPRE_Int hypre_ParCSRMatrixCompressOffdMap_dbl (hypre_ParCSRMatrix *A); +HYPRE_Int hypre_ParCSRMatrixCompressOffdMap_long_dbl (hypre_ParCSRMatrix *A); +HYPRE_Int hypre_ParCSRMatrixDiagScale_flt ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScale_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScale_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScaleHost_flt ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScaleHost_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScaleHost_long_dbl ( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDropSmallEntries_flt ( hypre_ParCSRMatrix *A, hypre_float tol, + HYPRE_Int type); +HYPRE_Int hypre_ParCSRMatrixDropSmallEntries_dbl ( hypre_ParCSRMatrix *A, hypre_double tol, + HYPRE_Int type); +HYPRE_Int hypre_ParCSRMatrixDropSmallEntries_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double tol, + HYPRE_Int type); +HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesHost_flt ( hypre_ParCSRMatrix *A, hypre_float tol, + HYPRE_Int type); +HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesHost_dbl ( hypre_ParCSRMatrix *A, hypre_double tol, + HYPRE_Int type); +HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double tol, + HYPRE_Int type); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractBExt_flt ( hypre_ParCSRMatrix *B, hypre_ParCSRMatrix *A, + HYPRE_Int data ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractBExt_dbl ( hypre_ParCSRMatrix *B, hypre_ParCSRMatrix *A, + HYPRE_Int data ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractBExt_long_dbl ( hypre_ParCSRMatrix *B, hypre_ParCSRMatrix *A, + HYPRE_Int data ); +void hypre_ParCSRMatrixExtractBExt_Arrays_flt ( HYPRE_Int **pB_ext_i, HYPRE_BigInt **pB_ext_j, + hypre_float **pB_ext_data, HYPRE_BigInt **pB_ext_row_map, HYPRE_Int *num_nonzeros, HYPRE_Int data, + HYPRE_Int find_row_map, MPI_Comm comm, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols_B, + HYPRE_Int num_recvs, HYPRE_Int num_sends, HYPRE_BigInt first_col_diag, HYPRE_BigInt *row_starts, + HYPRE_Int *recv_vec_starts, HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + HYPRE_Int *diag_i, HYPRE_Int *diag_j, HYPRE_Int *offd_i, HYPRE_Int *offd_j, + HYPRE_BigInt *col_map_offd, hypre_float *diag_data, hypre_float *offd_data ); +void hypre_ParCSRMatrixExtractBExt_Arrays_dbl ( HYPRE_Int **pB_ext_i, HYPRE_BigInt **pB_ext_j, + hypre_double **pB_ext_data, HYPRE_BigInt **pB_ext_row_map, HYPRE_Int *num_nonzeros, HYPRE_Int data, + HYPRE_Int find_row_map, MPI_Comm comm, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols_B, + HYPRE_Int num_recvs, HYPRE_Int num_sends, HYPRE_BigInt first_col_diag, HYPRE_BigInt *row_starts, + HYPRE_Int *recv_vec_starts, HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + HYPRE_Int *diag_i, HYPRE_Int *diag_j, HYPRE_Int *offd_i, HYPRE_Int *offd_j, + HYPRE_BigInt *col_map_offd, hypre_double *diag_data, hypre_double *offd_data ); +void hypre_ParCSRMatrixExtractBExt_Arrays_long_dbl ( HYPRE_Int **pB_ext_i, HYPRE_BigInt **pB_ext_j, + hypre_long_double **pB_ext_data, HYPRE_BigInt **pB_ext_row_map, HYPRE_Int *num_nonzeros, HYPRE_Int data, + HYPRE_Int find_row_map, MPI_Comm comm, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols_B, + HYPRE_Int num_recvs, HYPRE_Int num_sends, HYPRE_BigInt first_col_diag, HYPRE_BigInt *row_starts, + HYPRE_Int *recv_vec_starts, HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + HYPRE_Int *diag_i, HYPRE_Int *diag_j, HYPRE_Int *offd_i, HYPRE_Int *offd_j, + HYPRE_BigInt *col_map_offd, hypre_long_double *diag_data, hypre_long_double *offd_data ); +void hypre_ParCSRMatrixExtractBExt_Arrays_Overlap_flt ( HYPRE_Int **pB_ext_i, HYPRE_BigInt **pB_ext_j, + hypre_float **pB_ext_data, HYPRE_BigInt **pB_ext_row_map, HYPRE_Int *num_nonzeros, HYPRE_Int data, + HYPRE_Int find_row_map, MPI_Comm comm, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols_B, + HYPRE_Int num_recvs, HYPRE_Int num_sends, HYPRE_BigInt first_col_diag, HYPRE_BigInt *row_starts, + HYPRE_Int *recv_vec_starts, HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + HYPRE_Int *diag_i, HYPRE_Int *diag_j, HYPRE_Int *offd_i, HYPRE_Int *offd_j, + HYPRE_BigInt *col_map_offd, hypre_float *diag_data, hypre_float *offd_data, + hypre_ParCSRCommHandle **comm_handle_idx, hypre_ParCSRCommHandle **comm_handle_data, + HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, HYPRE_Int skip_fine, HYPRE_Int skip_same_sign ); +void hypre_ParCSRMatrixExtractBExt_Arrays_Overlap_dbl ( HYPRE_Int **pB_ext_i, HYPRE_BigInt **pB_ext_j, + hypre_double **pB_ext_data, HYPRE_BigInt **pB_ext_row_map, HYPRE_Int *num_nonzeros, HYPRE_Int data, + HYPRE_Int find_row_map, MPI_Comm comm, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols_B, + HYPRE_Int num_recvs, HYPRE_Int num_sends, HYPRE_BigInt first_col_diag, HYPRE_BigInt *row_starts, + HYPRE_Int *recv_vec_starts, HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + HYPRE_Int *diag_i, HYPRE_Int *diag_j, HYPRE_Int *offd_i, HYPRE_Int *offd_j, + HYPRE_BigInt *col_map_offd, hypre_double *diag_data, hypre_double *offd_data, + hypre_ParCSRCommHandle **comm_handle_idx, hypre_ParCSRCommHandle **comm_handle_data, + HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, HYPRE_Int skip_fine, HYPRE_Int skip_same_sign ); +void hypre_ParCSRMatrixExtractBExt_Arrays_Overlap_long_dbl ( HYPRE_Int **pB_ext_i, HYPRE_BigInt **pB_ext_j, + hypre_long_double **pB_ext_data, HYPRE_BigInt **pB_ext_row_map, HYPRE_Int *num_nonzeros, HYPRE_Int data, + HYPRE_Int find_row_map, MPI_Comm comm, hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols_B, + HYPRE_Int num_recvs, HYPRE_Int num_sends, HYPRE_BigInt first_col_diag, HYPRE_BigInt *row_starts, + HYPRE_Int *recv_vec_starts, HYPRE_Int *send_map_starts, HYPRE_Int *send_map_elmts, + HYPRE_Int *diag_i, HYPRE_Int *diag_j, HYPRE_Int *offd_i, HYPRE_Int *offd_j, + HYPRE_BigInt *col_map_offd, hypre_long_double *diag_data, hypre_long_double *offd_data, + hypre_ParCSRCommHandle **comm_handle_idx, hypre_ParCSRCommHandle **comm_handle_data, + HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, HYPRE_Int skip_fine, HYPRE_Int skip_same_sign ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractBExt_Overlap_flt ( hypre_ParCSRMatrix *B, + hypre_ParCSRMatrix *A, HYPRE_Int data, hypre_ParCSRCommHandle **comm_handle_idx, + hypre_ParCSRCommHandle **comm_handle_data, HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, + HYPRE_Int skip_fine, HYPRE_Int skip_same_sign ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractBExt_Overlap_dbl ( hypre_ParCSRMatrix *B, + hypre_ParCSRMatrix *A, HYPRE_Int data, hypre_ParCSRCommHandle **comm_handle_idx, + hypre_ParCSRCommHandle **comm_handle_data, HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, + HYPRE_Int skip_fine, HYPRE_Int skip_same_sign ); +hypre_CSRMatrix *hypre_ParCSRMatrixExtractBExt_Overlap_long_dbl ( hypre_ParCSRMatrix *B, + hypre_ParCSRMatrix *A, HYPRE_Int data, hypre_ParCSRCommHandle **comm_handle_idx, + hypre_ParCSRCommHandle **comm_handle_data, HYPRE_Int *CF_marker, HYPRE_Int *CF_marker_offd, + HYPRE_Int skip_fine, HYPRE_Int skip_same_sign ); +void hypre_ParCSRMatrixExtractRowSubmatrices_flt ( hypre_ParCSRMatrix *A_csr, HYPRE_Int *indices2, + hypre_ParCSRMatrix ***submatrices ); +void hypre_ParCSRMatrixExtractRowSubmatrices_dbl ( hypre_ParCSRMatrix *A_csr, HYPRE_Int *indices2, + hypre_ParCSRMatrix ***submatrices ); +void hypre_ParCSRMatrixExtractRowSubmatrices_long_dbl ( hypre_ParCSRMatrix *A_csr, HYPRE_Int *indices2, + hypre_ParCSRMatrix ***submatrices ); +void hypre_ParCSRMatrixExtractSubmatrices_flt ( hypre_ParCSRMatrix *A_csr, HYPRE_Int *indices2, + hypre_ParCSRMatrix ***submatrices ); +void hypre_ParCSRMatrixExtractSubmatrices_dbl ( hypre_ParCSRMatrix *A_csr, HYPRE_Int *indices2, + hypre_ParCSRMatrix ***submatrices ); +void hypre_ParCSRMatrixExtractSubmatrices_long_dbl ( hypre_ParCSRMatrix *A_csr, HYPRE_Int *indices2, + hypre_ParCSRMatrix ***submatrices ); +HYPRE_Int hypre_ParCSRMatrixExtractSubmatrixFC_flt ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, const char *job, + hypre_ParCSRMatrix **B_ptr, + hypre_float strength_thresh); +HYPRE_Int hypre_ParCSRMatrixExtractSubmatrixFC_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, const char *job, + hypre_ParCSRMatrix **B_ptr, + hypre_double strength_thresh); +HYPRE_Int hypre_ParCSRMatrixExtractSubmatrixFC_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, + HYPRE_BigInt *cpts_starts, const char *job, + hypre_ParCSRMatrix **B_ptr, + hypre_long_double strength_thresh); +hypre_float hypre_ParCSRMatrixFnorm_flt ( hypre_ParCSRMatrix *A ); +hypre_double hypre_ParCSRMatrixFnorm_dbl ( hypre_ParCSRMatrix *A ); +hypre_long_double hypre_ParCSRMatrixFnorm_long_dbl ( hypre_ParCSRMatrix *A ); +void hypre_ParCSRMatrixGenSpanningTree_flt ( hypre_ParCSRMatrix *G_csr, HYPRE_Int **indices, + HYPRE_Int G_type ); +void hypre_ParCSRMatrixGenSpanningTree_dbl ( hypre_ParCSRMatrix *G_csr, HYPRE_Int **indices, + HYPRE_Int G_type ); +void hypre_ParCSRMatrixGenSpanningTree_long_dbl ( hypre_ParCSRMatrix *G_csr, HYPRE_Int **indices, + HYPRE_Int G_type ); +HYPRE_Int hypre_ParCSRMatrixInfNorm_flt ( hypre_ParCSRMatrix *A, hypre_float *norm ); +HYPRE_Int hypre_ParCSRMatrixInfNorm_dbl ( hypre_ParCSRMatrix *A, hypre_double *norm ); +HYPRE_Int hypre_ParCSRMatrixInfNorm_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double *norm ); +hypre_float hypre_ParCSRMatrixLocalSumElts_flt ( hypre_ParCSRMatrix *A ); +hypre_double hypre_ParCSRMatrixLocalSumElts_dbl ( hypre_ParCSRMatrix *A ); +hypre_long_double hypre_ParCSRMatrixLocalSumElts_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixLocalTranspose_flt ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixLocalTranspose_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixLocalTranspose_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixReorder_flt ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixReorder_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixReorder_long_dbl ( hypre_ParCSRMatrix *A ); +HYPRE_Int hypre_ParCSRMatrixScale_flt (hypre_ParCSRMatrix *A, hypre_float scalar); +HYPRE_Int hypre_ParCSRMatrixScale_dbl (hypre_ParCSRMatrix *A, hypre_double scalar); +HYPRE_Int hypre_ParCSRMatrixScale_long_dbl (hypre_ParCSRMatrix *A, hypre_long_double scalar); +HYPRE_Int hypre_ParCSRMatrixTranspose_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **AT_ptr, + HYPRE_Int data ); +HYPRE_Int hypre_ParCSRMatrixTranspose_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **AT_ptr, + HYPRE_Int data ); +HYPRE_Int hypre_ParCSRMatrixTranspose_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **AT_ptr, + HYPRE_Int data ); +HYPRE_Int hypre_ParCSRMatrixTransposeHost_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **AT_ptr, + HYPRE_Int data ); +HYPRE_Int hypre_ParCSRMatrixTransposeHost_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **AT_ptr, + HYPRE_Int data ); +HYPRE_Int hypre_ParCSRMatrixTransposeHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix **AT_ptr, + HYPRE_Int data ); +hypre_ParCSRMatrix *hypre_ParMatmul_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParMatmul_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParMatmul_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +void hypre_ParMatmul_RowSizes_flt ( HYPRE_MemoryLocation memory_location, HYPRE_Int **C_diag_i, + HYPRE_Int **C_offd_i, HYPRE_Int *rownnz_A, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, HYPRE_Int *B_diag_i, HYPRE_Int *B_diag_j, + HYPRE_Int *B_offd_i, HYPRE_Int *B_offd_j, HYPRE_Int *B_ext_diag_i, HYPRE_Int *B_ext_diag_j, + HYPRE_Int *B_ext_offd_i, HYPRE_Int *B_ext_offd_j, HYPRE_Int *map_B_to_C, HYPRE_Int *C_diag_size, + HYPRE_Int *C_offd_size, HYPRE_Int num_rownnz_A, HYPRE_Int num_rows_diag_A, + HYPRE_Int num_cols_offd_A, HYPRE_Int allsquare, HYPRE_Int num_cols_diag_B, + HYPRE_Int num_cols_offd_B, HYPRE_Int num_cols_offd_C ); +void hypre_ParMatmul_RowSizes_dbl ( HYPRE_MemoryLocation memory_location, HYPRE_Int **C_diag_i, + HYPRE_Int **C_offd_i, HYPRE_Int *rownnz_A, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, HYPRE_Int *B_diag_i, HYPRE_Int *B_diag_j, + HYPRE_Int *B_offd_i, HYPRE_Int *B_offd_j, HYPRE_Int *B_ext_diag_i, HYPRE_Int *B_ext_diag_j, + HYPRE_Int *B_ext_offd_i, HYPRE_Int *B_ext_offd_j, HYPRE_Int *map_B_to_C, HYPRE_Int *C_diag_size, + HYPRE_Int *C_offd_size, HYPRE_Int num_rownnz_A, HYPRE_Int num_rows_diag_A, + HYPRE_Int num_cols_offd_A, HYPRE_Int allsquare, HYPRE_Int num_cols_diag_B, + HYPRE_Int num_cols_offd_B, HYPRE_Int num_cols_offd_C ); +void hypre_ParMatmul_RowSizes_long_dbl ( HYPRE_MemoryLocation memory_location, HYPRE_Int **C_diag_i, + HYPRE_Int **C_offd_i, HYPRE_Int *rownnz_A, HYPRE_Int *A_diag_i, HYPRE_Int *A_diag_j, + HYPRE_Int *A_offd_i, HYPRE_Int *A_offd_j, HYPRE_Int *B_diag_i, HYPRE_Int *B_diag_j, + HYPRE_Int *B_offd_i, HYPRE_Int *B_offd_j, HYPRE_Int *B_ext_diag_i, HYPRE_Int *B_ext_diag_j, + HYPRE_Int *B_ext_offd_i, HYPRE_Int *B_ext_offd_j, HYPRE_Int *map_B_to_C, HYPRE_Int *C_diag_size, + HYPRE_Int *C_offd_size, HYPRE_Int num_rownnz_A, HYPRE_Int num_rows_diag_A, + HYPRE_Int num_cols_offd_A, HYPRE_Int allsquare, HYPRE_Int num_cols_diag_B, + HYPRE_Int num_cols_offd_B, HYPRE_Int num_cols_offd_C ); +hypre_ParCSRMatrix *hypre_ParTMatmul_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParTMatmul_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParTMatmul_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +HYPRE_Int hypre_ParvecBdiagInvScal_flt ( hypre_ParVector *b, HYPRE_Int blockSize, hypre_ParVector **bs, + hypre_ParCSRMatrix *A); +HYPRE_Int hypre_ParvecBdiagInvScal_dbl ( hypre_ParVector *b, HYPRE_Int blockSize, hypre_ParVector **bs, + hypre_ParCSRMatrix *A); +HYPRE_Int hypre_ParvecBdiagInvScal_long_dbl ( hypre_ParVector *b, HYPRE_Int blockSize, hypre_ParVector **bs, + hypre_ParCSRMatrix *A); +HYPRE_Int GenerateDiagAndOffd_flt ( hypre_CSRMatrix *A, hypre_ParCSRMatrix *matrix, + HYPRE_BigInt first_col_diag, HYPRE_BigInt last_col_diag ); +HYPRE_Int GenerateDiagAndOffd_dbl ( hypre_CSRMatrix *A, hypre_ParCSRMatrix *matrix, + HYPRE_BigInt first_col_diag, HYPRE_BigInt last_col_diag ); +HYPRE_Int GenerateDiagAndOffd_long_dbl ( hypre_CSRMatrix *A, hypre_ParCSRMatrix *matrix, + HYPRE_BigInt first_col_diag, HYPRE_BigInt last_col_diag ); +hypre_ParCSRMatrix *hypre_CSRMatrixToParCSRMatrix_flt ( MPI_Comm comm, hypre_CSRMatrix *A, + HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts ); +hypre_ParCSRMatrix *hypre_CSRMatrixToParCSRMatrix_dbl ( MPI_Comm comm, hypre_CSRMatrix *A, + HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts ); +hypre_ParCSRMatrix *hypre_CSRMatrixToParCSRMatrix_long_dbl ( MPI_Comm comm, hypre_CSRMatrix *A, + HYPRE_BigInt *row_starts, HYPRE_BigInt *col_starts ); +HYPRE_Int hypre_FillResponseParToCSRMatrix_flt ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseParToCSRMatrix_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseParToCSRMatrix_long_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +hypre_CSRMatrix *hypre_MergeDiagAndOffd_flt ( hypre_ParCSRMatrix *par_matrix ); +hypre_CSRMatrix *hypre_MergeDiagAndOffd_dbl ( hypre_ParCSRMatrix *par_matrix ); +hypre_CSRMatrix *hypre_MergeDiagAndOffd_long_dbl ( hypre_ParCSRMatrix *par_matrix ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixClone_flt ( hypre_ParCSRMatrix *A, HYPRE_Int copy_data ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixClone_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int copy_data ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixClone_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int copy_data ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixClone_v2_flt ( hypre_ParCSRMatrix *A, HYPRE_Int copy_data, + HYPRE_MemoryLocation memory_location ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixClone_v2_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int copy_data, + HYPRE_MemoryLocation memory_location ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixClone_v2_long_dbl ( hypre_ParCSRMatrix *A, HYPRE_Int copy_data, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_ParCSRMatrixCopy_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int copy_data ); +HYPRE_Int hypre_ParCSRMatrixCopy_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int copy_data ); +HYPRE_Int hypre_ParCSRMatrixCopy_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int copy_data ); +void hypre_ParCSRMatrixCopyColMapOffdToDevice_flt (hypre_ParCSRMatrix *A); +void hypre_ParCSRMatrixCopyColMapOffdToDevice_dbl (hypre_ParCSRMatrix *A); +void hypre_ParCSRMatrixCopyColMapOffdToDevice_long_dbl (hypre_ParCSRMatrix *A); +void hypre_ParCSRMatrixCopyColMapOffdToHost_flt (hypre_ParCSRMatrix *A); +void hypre_ParCSRMatrixCopyColMapOffdToHost_dbl (hypre_ParCSRMatrix *A); +void hypre_ParCSRMatrixCopyColMapOffdToHost_long_dbl (hypre_ParCSRMatrix *A); +hypre_ParCSRMatrix *hypre_ParCSRMatrixCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_num_rows, + HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts_in, HYPRE_BigInt *col_starts_in, + HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_num_rows, + HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts_in, HYPRE_BigInt *col_starts_in, + HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_num_rows, + HYPRE_BigInt global_num_cols, HYPRE_BigInt *row_starts_in, HYPRE_BigInt *col_starts_in, + HYPRE_Int num_cols_offd, HYPRE_Int num_nonzeros_diag, HYPRE_Int num_nonzeros_offd ); +HYPRE_Int hypre_ParCSRMatrixDestroy_flt ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixDestroy_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixDestroy_long_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixGetLocalRange_flt ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int hypre_ParCSRMatrixGetLocalRange_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int hypre_ParCSRMatrixGetLocalRange_long_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt *row_start, + HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); +HYPRE_Int hypre_ParCSRMatrixGetRow_flt ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, HYPRE_Int *size, + HYPRE_BigInt **col_ind, hypre_float **values ); +HYPRE_Int hypre_ParCSRMatrixGetRow_dbl ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, HYPRE_Int *size, + HYPRE_BigInt **col_ind, hypre_double **values ); +HYPRE_Int hypre_ParCSRMatrixGetRow_long_dbl ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, HYPRE_Int *size, + HYPRE_BigInt **col_ind, hypre_long_double **values ); +HYPRE_Int hypre_ParCSRMatrixGetRowHost_flt ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, + hypre_float **values ); +HYPRE_Int hypre_ParCSRMatrixGetRowHost_dbl ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, + hypre_double **values ); +HYPRE_Int hypre_ParCSRMatrixGetRowHost_long_dbl ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, + hypre_long_double **values ); +HYPRE_Int hypre_ParCSRMatrixInitialize_flt ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixInitialize_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixInitialize_long_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixInitialize_v2_flt ( hypre_ParCSRMatrix *matrix, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_ParCSRMatrixInitialize_v2_dbl ( hypre_ParCSRMatrix *matrix, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_ParCSRMatrixInitialize_v2_long_dbl ( hypre_ParCSRMatrix *matrix, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_ParCSRMatrixMigrate_flt (hypre_ParCSRMatrix *A, HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_ParCSRMatrixMigrate_dbl (hypre_ParCSRMatrix *A, HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_ParCSRMatrixMigrate_long_dbl (hypre_ParCSRMatrix *A, HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_ParCSRMatrixPrint_flt ( hypre_ParCSRMatrix *matrix, const char *file_name ); +HYPRE_Int hypre_ParCSRMatrixPrint_dbl ( hypre_ParCSRMatrix *matrix, const char *file_name ); +HYPRE_Int hypre_ParCSRMatrixPrint_long_dbl ( hypre_ParCSRMatrix *matrix, const char *file_name ); +HYPRE_Int hypre_ParCSRMatrixPrintIJ_flt ( const hypre_ParCSRMatrix *matrix, const HYPRE_Int base_i, + const HYPRE_Int base_j, const char *filename ); +HYPRE_Int hypre_ParCSRMatrixPrintIJ_dbl ( const hypre_ParCSRMatrix *matrix, const HYPRE_Int base_i, + const HYPRE_Int base_j, const char *filename ); +HYPRE_Int hypre_ParCSRMatrixPrintIJ_long_dbl ( const hypre_ParCSRMatrix *matrix, const HYPRE_Int base_i, + const HYPRE_Int base_j, const char *filename ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRead_flt ( MPI_Comm comm, const char *file_name ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRead_dbl ( MPI_Comm comm, const char *file_name ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRead_long_dbl ( MPI_Comm comm, const char *file_name ); +HYPRE_Int hypre_ParCSRMatrixReadIJ_flt ( MPI_Comm comm, const char *filename, HYPRE_Int *base_i_ptr, + HYPRE_Int *base_j_ptr, hypre_ParCSRMatrix **matrix_ptr ); +HYPRE_Int hypre_ParCSRMatrixReadIJ_dbl ( MPI_Comm comm, const char *filename, HYPRE_Int *base_i_ptr, + HYPRE_Int *base_j_ptr, hypre_ParCSRMatrix **matrix_ptr ); +HYPRE_Int hypre_ParCSRMatrixReadIJ_long_dbl ( MPI_Comm comm, const char *filename, HYPRE_Int *base_i_ptr, + HYPRE_Int *base_j_ptr, hypre_ParCSRMatrix **matrix_ptr ); +HYPRE_Int hypre_ParCSRMatrixRestoreRow_flt ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, hypre_float **values ); +HYPRE_Int hypre_ParCSRMatrixRestoreRow_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, hypre_double **values ); +HYPRE_Int hypre_ParCSRMatrixRestoreRow_long_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, hypre_long_double **values ); +HYPRE_Int hypre_ParCSRMatrixSetConstantValues_flt ( hypre_ParCSRMatrix *A, hypre_float value ); +HYPRE_Int hypre_ParCSRMatrixSetConstantValues_dbl ( hypre_ParCSRMatrix *A, hypre_double value ); +HYPRE_Int hypre_ParCSRMatrixSetConstantValues_long_dbl ( hypre_ParCSRMatrix *A, hypre_long_double value ); +HYPRE_Int hypre_ParCSRMatrixSetDataOwner_flt ( hypre_ParCSRMatrix *matrix, HYPRE_Int owns_data ); +HYPRE_Int hypre_ParCSRMatrixSetDataOwner_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_Int owns_data ); +HYPRE_Int hypre_ParCSRMatrixSetDataOwner_long_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_Int owns_data ); +HYPRE_Int hypre_ParCSRMatrixSetDNumNonzeros_flt ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetDNumNonzeros_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetDNumNonzeros_long_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_flt ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_long_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_core_flt ( hypre_ParCSRMatrix *matrix, const char* format ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_core_dbl ( hypre_ParCSRMatrix *matrix, const char* format ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_core_long_dbl ( hypre_ParCSRMatrix *matrix, const char* format ); +HYPRE_Int hypre_ParCSRMatrixSetNumRownnz_flt ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumRownnz_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumRownnz_long_dbl ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetPatternOnly_flt ( hypre_ParCSRMatrix *matrix, HYPRE_Int pattern_only); +HYPRE_Int hypre_ParCSRMatrixSetPatternOnly_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_Int pattern_only); +HYPRE_Int hypre_ParCSRMatrixSetPatternOnly_long_dbl ( hypre_ParCSRMatrix *matrix, HYPRE_Int pattern_only); +hypre_CSRMatrix *hypre_ParCSRMatrixToCSRMatrixAll_flt ( hypre_ParCSRMatrix *par_matrix ); +hypre_CSRMatrix *hypre_ParCSRMatrixToCSRMatrixAll_dbl ( hypre_ParCSRMatrix *par_matrix ); +hypre_CSRMatrix *hypre_ParCSRMatrixToCSRMatrixAll_long_dbl ( hypre_ParCSRMatrix *par_matrix ); +HYPRE_Int hypre_ParCSRMatrixTruncate_flt (hypre_ParCSRMatrix *A, hypre_float tol, + HYPRE_Int max_row_elmts, HYPRE_Int rescale, + HYPRE_Int nrm_type); +HYPRE_Int hypre_ParCSRMatrixTruncate_dbl (hypre_ParCSRMatrix *A, hypre_double tol, + HYPRE_Int max_row_elmts, HYPRE_Int rescale, + HYPRE_Int nrm_type); +HYPRE_Int hypre_ParCSRMatrixTruncate_long_dbl (hypre_ParCSRMatrix *A, hypre_long_double tol, + HYPRE_Int max_row_elmts, HYPRE_Int rescale, + HYPRE_Int nrm_type); +hypre_ParCSRMatrix *hypre_ParCSRMatrixUnion_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixUnion_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixUnion_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +HYPRE_Int hypre_ParCSRMatrixMatvec_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, + hypre_float beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvec_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, + hypre_double beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvec_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, + hypre_long_double beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvec_FF_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_float beta, hypre_ParVector *y, + HYPRE_Int *CF_marker, HYPRE_Int fpt ); +HYPRE_Int hypre_ParCSRMatrixMatvec_FF_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_double beta, hypre_ParVector *y, + HYPRE_Int *CF_marker, HYPRE_Int fpt ); +HYPRE_Int hypre_ParCSRMatrixMatvec_FF_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_long_double beta, hypre_ParVector *y, + HYPRE_Int *CF_marker, HYPRE_Int fpt ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlace_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_float beta, + hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlace_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_double beta, + hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlace_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_long_double beta, + hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceHost_flt ( hypre_float alpha, + hypre_ParCSRMatrix *A, + hypre_ParVector *x, + hypre_float beta, + hypre_ParVector *b, + hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceHost_dbl ( hypre_double alpha, + hypre_ParCSRMatrix *A, + hypre_ParVector *x, + hypre_double beta, + hypre_ParVector *b, + hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceHost_long_dbl ( hypre_long_double alpha, + hypre_ParCSRMatrix *A, + hypre_ParVector *x, + hypre_long_double beta, + hypre_ParVector *b, + hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecT_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_float beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecT_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_double beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecT_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_long_double beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecTHost_flt ( hypre_float alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_float beta, + hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecTHost_dbl ( hypre_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_double beta, + hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecTHost_long_dbl ( hypre_long_double alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, hypre_long_double beta, + hypre_ParVector *y ); +hypre_ParCSRMatrix *hypre_ParCSRMatMat_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatMat_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatMat_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatMatHost_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatMatHost_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatMatHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRAP_flt ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRAP_dbl ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRAP_long_dbl ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRAPKT_flt ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keepTranspose ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRAPKT_dbl ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keepTranspose ); +hypre_ParCSRMatrix *hypre_ParCSRMatrixRAPKT_long_dbl ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keepTranspose ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixRAPKTHost_flt ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keep_transpose ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixRAPKTHost_dbl ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keep_transpose ); +hypre_ParCSRMatrix* hypre_ParCSRMatrixRAPKTHost_long_dbl ( hypre_ParCSRMatrix *R, hypre_ParCSRMatrix *A, + hypre_ParCSRMatrix *P, HYPRE_Int keep_transpose ); +hypre_ParCSRMatrix *hypre_ParCSRTMatMat_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B); +hypre_ParCSRMatrix *hypre_ParCSRTMatMat_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B); +hypre_ParCSRMatrix *hypre_ParCSRTMatMat_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B); +hypre_ParCSRMatrix *hypre_ParCSRTMatMatKT_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int keep_transpose); +hypre_ParCSRMatrix *hypre_ParCSRTMatMatKT_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int keep_transpose); +hypre_ParCSRMatrix *hypre_ParCSRTMatMatKT_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int keep_transpose); +hypre_ParCSRMatrix *hypre_ParCSRTMatMatKTHost_flt ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int keep_transpose); +hypre_ParCSRMatrix *hypre_ParCSRTMatMatKTHost_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int keep_transpose); +hypre_ParCSRMatrix *hypre_ParCSRTMatMatKTHost_long_dbl ( hypre_ParCSRMatrix *A, hypre_ParCSRMatrix *B, + HYPRE_Int keep_transpose); +HYPRE_Int HYPRE_Destroy2DSystem_flt ( HYPRE_ParCSR_System_Problem *sys_prob ); +HYPRE_Int HYPRE_Destroy2DSystem_dbl ( HYPRE_ParCSR_System_Problem *sys_prob ); +HYPRE_Int HYPRE_Destroy2DSystem_long_dbl ( HYPRE_ParCSR_System_Problem *sys_prob ); +HYPRE_ParCSR_System_Problem *HYPRE_Generate2DSystem_flt ( HYPRE_ParCSRMatrix H_L1, + HYPRE_ParCSRMatrix H_L2, HYPRE_ParVector H_b1, HYPRE_ParVector H_b2, HYPRE_ParVector H_x1, + HYPRE_ParVector H_x2, hypre_float *M_vals ); +HYPRE_ParCSR_System_Problem *HYPRE_Generate2DSystem_dbl ( HYPRE_ParCSRMatrix H_L1, + HYPRE_ParCSRMatrix H_L2, HYPRE_ParVector H_b1, HYPRE_ParVector H_b2, HYPRE_ParVector H_x1, + HYPRE_ParVector H_x2, hypre_double *M_vals ); +HYPRE_ParCSR_System_Problem *HYPRE_Generate2DSystem_long_dbl ( HYPRE_ParCSRMatrix H_L1, + HYPRE_ParCSRMatrix H_L2, HYPRE_ParVector H_b1, HYPRE_ParVector H_b2, HYPRE_ParVector H_x1, + HYPRE_ParVector H_x2, hypre_long_double *M_vals ); +HYPRE_Int hypre_ParVectorMassAxpy_flt ( hypre_float *alpha, hypre_ParVector **x, hypre_ParVector *y, + HYPRE_Int k, HYPRE_Int unroll); +HYPRE_Int hypre_ParVectorMassAxpy_dbl ( hypre_double *alpha, hypre_ParVector **x, hypre_ParVector *y, + HYPRE_Int k, HYPRE_Int unroll); +HYPRE_Int hypre_ParVectorMassAxpy_long_dbl ( hypre_long_double *alpha, hypre_ParVector **x, hypre_ParVector *y, + HYPRE_Int k, HYPRE_Int unroll); +HYPRE_Int hypre_ParVectorMassDotpTwo_flt ( hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector **z, + HYPRE_Int k, HYPRE_Int unroll, hypre_float *prod_x, hypre_float *prod_y ); +HYPRE_Int hypre_ParVectorMassDotpTwo_dbl ( hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector **z, + HYPRE_Int k, HYPRE_Int unroll, hypre_double *prod_x, hypre_double *prod_y ); +HYPRE_Int hypre_ParVectorMassDotpTwo_long_dbl ( hypre_ParVector *x, hypre_ParVector *y, hypre_ParVector **z, + HYPRE_Int k, HYPRE_Int unroll, hypre_long_double *prod_x, hypre_long_double *prod_y ); +HYPRE_Int hypre_ParVectorMassInnerProd_flt ( hypre_ParVector *x, hypre_ParVector **y, HYPRE_Int k, + HYPRE_Int unroll, hypre_float *prod ); +HYPRE_Int hypre_ParVectorMassInnerProd_dbl ( hypre_ParVector *x, hypre_ParVector **y, HYPRE_Int k, + HYPRE_Int unroll, hypre_double *prod ); +HYPRE_Int hypre_ParVectorMassInnerProd_long_dbl ( hypre_ParVector *x, hypre_ParVector **y, HYPRE_Int k, + HYPRE_Int unroll, hypre_long_double *prod ); +HYPRE_Int hypre_FillResponseParToVectorAll_flt ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseParToVectorAll_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +HYPRE_Int hypre_FillResponseParToVectorAll_long_dbl ( void *p_recv_contact_buf, HYPRE_Int contact_size, + HYPRE_Int contact_proc, void *ro, MPI_Comm comm, void **p_send_response_buf, + HYPRE_Int *response_message_size ); +hypre_ParVector *hypre_ParMultiVectorCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_Int num_vectors ); +hypre_ParVector *hypre_ParMultiVectorCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_Int num_vectors ); +hypre_ParVector *hypre_ParMultiVectorCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning, HYPRE_Int num_vectors ); +HYPRE_Int hypre_ParVectorAxpy_flt ( hypre_float alpha, hypre_ParVector *x, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorAxpy_dbl ( hypre_double alpha, hypre_ParVector *x, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorAxpy_long_dbl ( hypre_long_double alpha, hypre_ParVector *x, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorAxpyz_flt ( hypre_float alpha, hypre_ParVector *x, + hypre_float beta, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_ParVectorAxpyz_dbl ( hypre_double alpha, hypre_ParVector *x, + hypre_double beta, hypre_ParVector *y, + hypre_ParVector *z ); +HYPRE_Int hypre_ParVectorAxpyz_long_dbl ( hypre_long_double alpha, hypre_ParVector *x, + hypre_long_double beta, hypre_ParVector *y, + hypre_ParVector *z ); +hypre_ParVector *hypre_ParVectorCloneDeep_v2_flt ( hypre_ParVector *x, + HYPRE_MemoryLocation memory_location ); +hypre_ParVector *hypre_ParVectorCloneDeep_v2_dbl ( hypre_ParVector *x, + HYPRE_MemoryLocation memory_location ); +hypre_ParVector *hypre_ParVectorCloneDeep_v2_long_dbl ( hypre_ParVector *x, + HYPRE_MemoryLocation memory_location ); +hypre_ParVector *hypre_ParVectorCloneShallow_flt ( hypre_ParVector *x ); +hypre_ParVector *hypre_ParVectorCloneShallow_dbl ( hypre_ParVector *x ); +hypre_ParVector *hypre_ParVectorCloneShallow_long_dbl ( hypre_ParVector *x ); +HYPRE_Int hypre_ParVectorCopy_flt ( hypre_ParVector *x, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorCopy_dbl ( hypre_ParVector *x, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorCopy_long_dbl ( hypre_ParVector *x, hypre_ParVector *y ); +hypre_ParVector *hypre_ParVectorCreate_flt ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning_in ); +hypre_ParVector *hypre_ParVectorCreate_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning_in ); +hypre_ParVector *hypre_ParVectorCreate_long_dbl ( MPI_Comm comm, HYPRE_BigInt global_size, + HYPRE_BigInt *partitioning_in ); +HYPRE_Int hypre_ParVectorDestroy_flt ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorDestroy_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorDestroy_long_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorElmdivpy_flt ( hypre_ParVector *x, hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorElmdivpy_dbl ( hypre_ParVector *x, hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorElmdivpy_long_dbl ( hypre_ParVector *x, hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorElmdivpyMarked_flt ( hypre_ParVector *x, hypre_ParVector *b, + hypre_ParVector *y, HYPRE_Int *marker, + HYPRE_Int marker_val ); +HYPRE_Int hypre_ParVectorElmdivpyMarked_dbl ( hypre_ParVector *x, hypre_ParVector *b, + hypre_ParVector *y, HYPRE_Int *marker, + HYPRE_Int marker_val ); +HYPRE_Int hypre_ParVectorElmdivpyMarked_long_dbl ( hypre_ParVector *x, hypre_ParVector *b, + hypre_ParVector *y, HYPRE_Int *marker, + HYPRE_Int marker_val ); +HYPRE_Int hypre_ParVectorGetValues_flt ( hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, hypre_float *values); +HYPRE_Int hypre_ParVectorGetValues_dbl ( hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, hypre_double *values); +HYPRE_Int hypre_ParVectorGetValues_long_dbl ( hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, hypre_long_double *values); +HYPRE_Int hypre_ParVectorGetValues2_flt ( hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, HYPRE_BigInt base, hypre_float *values ); +HYPRE_Int hypre_ParVectorGetValues2_dbl ( hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, HYPRE_BigInt base, hypre_double *values ); +HYPRE_Int hypre_ParVectorGetValues2_long_dbl ( hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, HYPRE_BigInt base, hypre_long_double *values ); +HYPRE_Int hypre_ParVectorGetValuesHost_flt (hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, HYPRE_BigInt base, hypre_float *values); +HYPRE_Int hypre_ParVectorGetValuesHost_dbl (hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, HYPRE_BigInt base, hypre_double *values); +HYPRE_Int hypre_ParVectorGetValuesHost_long_dbl (hypre_ParVector *vector, HYPRE_Int num_values, + HYPRE_BigInt *indices, HYPRE_BigInt base, hypre_long_double *values); +HYPRE_Int hypre_ParVectorInitialize_flt ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorInitialize_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorInitialize_long_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorInitialize_v2_flt ( hypre_ParVector *vector, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_ParVectorInitialize_v2_dbl ( hypre_ParVector *vector, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_ParVectorInitialize_v2_long_dbl ( hypre_ParVector *vector, + HYPRE_MemoryLocation memory_location ); +hypre_float hypre_ParVectorInnerProd_flt ( hypre_ParVector *x, hypre_ParVector *y ); +hypre_double hypre_ParVectorInnerProd_dbl ( hypre_ParVector *x, hypre_ParVector *y ); +hypre_long_double hypre_ParVectorInnerProd_long_dbl ( hypre_ParVector *x, hypre_ParVector *y ); +hypre_float hypre_ParVectorLocalSumElts_flt ( hypre_ParVector *vector ); +hypre_double hypre_ParVectorLocalSumElts_dbl ( hypre_ParVector *vector ); +hypre_long_double hypre_ParVectorLocalSumElts_long_dbl ( hypre_ParVector *vector ); +HYPRE_Int hypre_ParVectorMigrate_flt (hypre_ParVector *x, HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_ParVectorMigrate_dbl (hypre_ParVector *x, HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_ParVectorMigrate_long_dbl (hypre_ParVector *x, HYPRE_MemoryLocation memory_location); +HYPRE_Int hypre_ParVectorPrint_flt ( hypre_ParVector *vector, const char *file_name ); +HYPRE_Int hypre_ParVectorPrint_dbl ( hypre_ParVector *vector, const char *file_name ); +HYPRE_Int hypre_ParVectorPrint_long_dbl ( hypre_ParVector *vector, const char *file_name ); +HYPRE_Int hypre_ParVectorPrintIJ_flt ( hypre_ParVector *vector, HYPRE_Int base_j, + const char *filename ); +HYPRE_Int hypre_ParVectorPrintIJ_dbl ( hypre_ParVector *vector, HYPRE_Int base_j, + const char *filename ); +HYPRE_Int hypre_ParVectorPrintIJ_long_dbl ( hypre_ParVector *vector, HYPRE_Int base_j, + const char *filename ); +hypre_ParVector *hypre_ParVectorRead_flt ( MPI_Comm comm, const char *file_name ); +hypre_ParVector *hypre_ParVectorRead_dbl ( MPI_Comm comm, const char *file_name ); +hypre_ParVector *hypre_ParVectorRead_long_dbl ( MPI_Comm comm, const char *file_name ); +HYPRE_Int hypre_ParVectorReadIJ_flt ( MPI_Comm comm, const char *filename, HYPRE_Int *base_j_ptr, + hypre_ParVector **vector_ptr ); +HYPRE_Int hypre_ParVectorReadIJ_dbl ( MPI_Comm comm, const char *filename, HYPRE_Int *base_j_ptr, + hypre_ParVector **vector_ptr ); +HYPRE_Int hypre_ParVectorReadIJ_long_dbl ( MPI_Comm comm, const char *filename, HYPRE_Int *base_j_ptr, + hypre_ParVector **vector_ptr ); +HYPRE_Int hypre_ParVectorResize_flt ( hypre_ParVector *vector, HYPRE_Int num_vectors ); +HYPRE_Int hypre_ParVectorResize_dbl ( hypre_ParVector *vector, HYPRE_Int num_vectors ); +HYPRE_Int hypre_ParVectorResize_long_dbl ( hypre_ParVector *vector, HYPRE_Int num_vectors ); +HYPRE_Int hypre_ParVectorScale_flt ( hypre_float alpha, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorScale_dbl ( hypre_double alpha, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorScale_long_dbl ( hypre_long_double alpha, hypre_ParVector *y ); +HYPRE_Int hypre_ParVectorSetComponent_flt ( hypre_ParVector *vector, HYPRE_Int component ); +HYPRE_Int hypre_ParVectorSetComponent_dbl ( hypre_ParVector *vector, HYPRE_Int component ); +HYPRE_Int hypre_ParVectorSetComponent_long_dbl ( hypre_ParVector *vector, HYPRE_Int component ); +HYPRE_Int hypre_ParVectorSetConstantValues_flt ( hypre_ParVector *v, hypre_float value ); +HYPRE_Int hypre_ParVectorSetConstantValues_dbl ( hypre_ParVector *v, hypre_double value ); +HYPRE_Int hypre_ParVectorSetConstantValues_long_dbl ( hypre_ParVector *v, hypre_long_double value ); +HYPRE_Int hypre_ParVectorSetDataOwner_flt ( hypre_ParVector *vector, HYPRE_Int owns_data ); +HYPRE_Int hypre_ParVectorSetDataOwner_dbl ( hypre_ParVector *vector, HYPRE_Int owns_data ); +HYPRE_Int hypre_ParVectorSetDataOwner_long_dbl ( hypre_ParVector *vector, HYPRE_Int owns_data ); +HYPRE_Int hypre_ParVectorSetLocalSize_flt ( hypre_ParVector *vector, HYPRE_Int local_size ); +HYPRE_Int hypre_ParVectorSetLocalSize_dbl ( hypre_ParVector *vector, HYPRE_Int local_size ); +HYPRE_Int hypre_ParVectorSetLocalSize_long_dbl ( hypre_ParVector *vector, HYPRE_Int local_size ); +HYPRE_Int hypre_ParVectorSetRandomValues_flt ( hypre_ParVector *v, HYPRE_Int seed ); +HYPRE_Int hypre_ParVectorSetRandomValues_dbl ( hypre_ParVector *v, HYPRE_Int seed ); +HYPRE_Int hypre_ParVectorSetRandomValues_long_dbl ( hypre_ParVector *v, HYPRE_Int seed ); +HYPRE_Int hypre_ParVectorSetZeros_flt ( hypre_ParVector *v ); +HYPRE_Int hypre_ParVectorSetZeros_dbl ( hypre_ParVector *v ); +HYPRE_Int hypre_ParVectorSetZeros_long_dbl ( hypre_ParVector *v ); +hypre_Vector *hypre_ParVectorToVectorAll_flt ( hypre_ParVector *par_v ); +hypre_Vector *hypre_ParVectorToVectorAll_dbl ( hypre_ParVector *par_v ); +hypre_Vector *hypre_ParVectorToVectorAll_long_dbl ( hypre_ParVector *par_v ); +hypre_ParVector *hypre_VectorToParVector_flt ( MPI_Comm comm, hypre_Vector *v, + HYPRE_BigInt *vec_starts ); +hypre_ParVector *hypre_VectorToParVector_dbl ( MPI_Comm comm, hypre_Vector *v, + HYPRE_BigInt *vec_starts ); +hypre_ParVector *hypre_VectorToParVector_long_dbl ( MPI_Comm comm, hypre_Vector *v, + HYPRE_BigInt *vec_starts ); + +#endif + +#endif diff --git a/src/parcsr_mv/par_csr_matrix.c b/src/parcsr_mv/par_csr_matrix.c index a868e706c2..fcaa990c0b 100644 --- a/src/parcsr_mv/par_csr_matrix.c +++ b/src/parcsr_mv/par_csr_matrix.c @@ -132,6 +132,10 @@ hypre_ParCSRMatrixCreate( MPI_Comm comm, hypre_ParCSRMatrixSocOffdJ(matrix) = NULL; #endif +#if defined(HYPRE_MIXED_PRECISION) + hypre_ParCSRMatrixPrecision(matrix) = HYPRE_OBJECT_PRECISION; +#endif + return matrix; } diff --git a/src/parcsr_mv/par_csr_matrix.h b/src/parcsr_mv/par_csr_matrix.h index 9b9917655c..91cf3572ae 100644 --- a/src/parcsr_mv/par_csr_matrix.h +++ b/src/parcsr_mv/par_csr_matrix.h @@ -83,6 +83,10 @@ typedef struct hypre_ParCSRMatrix_struct HYPRE_Int *soc_offd_j; #endif +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision matrix_precision; +#endif + } hypre_ParCSRMatrix; /*-------------------------------------------------------------------------- @@ -124,6 +128,10 @@ typedef struct hypre_ParCSRMatrix_struct #define hypre_ParCSRMatrixNumRows(matrix) hypre_CSRMatrixNumRows(hypre_ParCSRMatrixDiag(matrix)) #define hypre_ParCSRMatrixNumCols(matrix) hypre_CSRMatrixNumCols(hypre_ParCSRMatrixDiag(matrix)) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_ParCSRMatrixPrecision(matrix) ((matrix) -> matrix_precision) +#endif + static inline HYPRE_MemoryLocation hypre_ParCSRMatrixMemoryLocation(hypre_ParCSRMatrix *matrix) { diff --git a/src/parcsr_mv/par_vector.c b/src/parcsr_mv/par_vector.c index 738201b6e1..6808575409 100644 --- a/src/parcsr_mv/par_vector.c +++ b/src/parcsr_mv/par_vector.c @@ -67,6 +67,10 @@ hypre_ParVectorCreate( MPI_Comm comm, hypre_ParVectorOwnsData(vector) = 1; hypre_ParVectorActualLocalSize(vector) = 0; +#if defined(HYPRE_MIXED_PRECISION) + hypre_ParVectorPrecision(vector) = HYPRE_OBJECT_PRECISION; +#endif + return vector; } diff --git a/src/parcsr_mv/par_vector.h b/src/parcsr_mv/par_vector.h index 766229040d..d3ace8c02f 100644 --- a/src/parcsr_mv/par_vector.h +++ b/src/parcsr_mv/par_vector.h @@ -42,6 +42,9 @@ typedef struct hypre_ParVector_struct hypre_IJAssumedPart *assumed_partition; /* only populated if this partition needed (for setting off-proc elements, for example)*/ +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision vector_precision; +#endif } hypre_ParVector; /*-------------------------------------------------------------------------- @@ -66,6 +69,10 @@ typedef struct hypre_ParVector_struct #define hypre_ParVectorAssumedPartition(vector) ((vector) -> assumed_partition) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_ParVectorPrecision(vector) ((vector) -> vector_precision) +#endif + static inline HYPRE_MemoryLocation hypre_ParVectorMemoryLocation(hypre_ParVector *vector) { diff --git a/src/parcsr_mv/parcsr_mv_func_header b/src/parcsr_mv/parcsr_mv_func_header new file mode 100755 index 0000000000..4092850c50 --- /dev/null +++ b/src/parcsr_mv/parcsr_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=parcsr_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARCSR_MV_MUP_FUNC_HEADER +#define PARCSR_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=parcsr_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/parcsr_mv/parcsr_mv_functions.saved b/src/parcsr_mv/parcsr_mv_functions.saved new file mode 100644 index 0000000000..b1582c0092 --- /dev/null +++ b/src/parcsr_mv/parcsr_mv_functions.saved @@ -0,0 +1,288 @@ +hypre_MatTCommPkgCreate +hypre_MatTCommPkgCreate_core +hypre_RowsWithColumn +hypre_RowsWithColumn_original +hypre_csrmatrixtoparcsrmatrix +hypre_csrmatrixtoparcsrmatrix_withnewpartitioning +hypre_parcsrmatrixcreate +hypre_parcsrmatrixdestroy +hypre_parcsrmatrixgetcolpartiti +hypre_parcsrmatrixgetcomm +hypre_parcsrmatrixgetdims +hypre_parcsrmatrixgetlocalrange +hypre_parcsrmatrixgetrow +hypre_parcsrmatrixgetrowpartiti +hypre_parcsrmatrixinitialize +hypre_parcsrmatrixmatvec +hypre_parcsrmatrixmatvect +hypre_parcsrmatrixprint +hypre_parcsrmatrixread +hypre_parcsrmatrixrestorerow +hypre_parmultivectorcreate +hypre_parvectoraxpy +hypre_parvectorcloneshallow +hypre_parvectorcopy +hypre_parvectorcreate +hypre_parvectordestroy +hypre_parvectorinitialize +hypre_parvectorinnerprod +hypre_parvectorprint +hypre_parvectorread +hypre_parvectorscale +hypre_parvectorsetconstantvalue +hypre_parvectorsetrandomvalues +hypre_parcsrmatrixglobalnumrows +hypre_parcsrmatrixrowstarts +hypre_copyparvector +hypre_paraxpy +hypre_parinnerprod +hypre_parvectortovectorall +hypre_scaleparvector +hypre_setparvectorconstantvalue +hypre_setparvectordataowner +hypre_setparvectorrandomvalues +hypre_vectortoparvector +hypre_ParCSRMatrixGenerateFFFC +hypre_ParCSRMatrixGenerateFFFC3 +hypre_ParCSRMatrixGenerateFFFCD3 +hypre_ParCSRMatrixGenerateFFFCHost +HYPRE_CSRMatrixToParCSRMatrix +HYPRE_CSRMatrixToParCSRMatrix_WithNewPartitioning +HYPRE_ParCSRMatrixCreate +HYPRE_ParCSRMatrixDestroy +HYPRE_ParCSRMatrixGetColPartitioning +HYPRE_ParCSRMatrixGetComm +HYPRE_ParCSRMatrixGetDims +HYPRE_ParCSRMatrixGetGlobalRowPartitioning +HYPRE_ParCSRMatrixGetLocalRange +HYPRE_ParCSRMatrixGetRow +HYPRE_ParCSRMatrixGetRowPartitioning +HYPRE_ParCSRMatrixInitialize +HYPRE_ParCSRMatrixMatvec +HYPRE_ParCSRMatrixMatvecT +HYPRE_ParCSRMatrixPrint +HYPRE_ParCSRMatrixRead +HYPRE_ParCSRMatrixRestoreRow +HYPRE_ParMultiVectorCreate +HYPRE_ParVectorAxpy +HYPRE_ParVectorCloneShallow +HYPRE_ParVectorCopy +HYPRE_ParVectorCreate +HYPRE_ParVectorDestroy +HYPRE_ParVectorGetValues +HYPRE_ParVectorInitialize +HYPRE_ParVectorInnerProd +HYPRE_ParVectorPrint +HYPRE_ParVectorPrintBinaryIJ +HYPRE_ParVectorRead +HYPRE_ParVectorScale +HYPRE_ParVectorSetConstantValues +HYPRE_ParVectorSetRandomValues +HYPRE_VectorToParVector +hypre_FillResponseIJDetermineSendProcs +hypre_NewCommPkgDestroy +hypre_ParCSRCommPkgCreateApart +hypre_ParCSRCommPkgCreateApart_core +hypre_PrintCommpkg +hypre_RangeFillResponseIJDetermineRecvProcs +hypre_NumbersArray +hypre_NumbersDeleteNode +hypre_NumbersEnter +hypre_NumbersNEntered +hypre_NumbersNewNode +hypre_NumbersQuery +hypre_ParAat_RowSizes +hypre_ParCSRAAt +hypre_ParCSRMatrixExtractAExt +hypre_AssumedPartitionCreate +hypre_AssumedPartitionDestroy +hypre_GetAssumedPartitionProcFromRow +hypre_GetAssumedPartitionRowRange +hypre_LocateAssumedPartition +hypre_ParCSRMatrixCreateAssumedPartition +hypre_ParVectorCreateAssumedPartition +hypre_BooleanMatTCommPkgCreate +hypre_BooleanMatvecCommPkgCreate +hypre_ParBooleanAAt +hypre_ParBooleanMatmul +hypre_ParCSRBooleanMatrixExtractAExt +hypre_ParCSRBooleanMatrixExtractBExt +hypre_BooleanGenerateDiagAndOffd +hypre_BuildCSRBooleanMatrixMPIDataType +hypre_CSRBooleanMatrixBigInitialize +hypre_CSRBooleanMatrixCreate +hypre_CSRBooleanMatrixDestroy +hypre_CSRBooleanMatrixInitialize +hypre_CSRBooleanMatrixPrint +hypre_CSRBooleanMatrixRead +hypre_CSRBooleanMatrixSetDataOwner +hypre_CSRBooleanMatrixToParCSRBooleanMatrix +hypre_ParCSRBooleanMatrixCreate +hypre_ParCSRBooleanMatrixDestroy +hypre_ParCSRBooleanMatrixGetLocalRange +hypre_ParCSRBooleanMatrixGetRow +hypre_ParCSRBooleanMatrixInitialize +hypre_ParCSRBooleanMatrixPrint +hypre_ParCSRBooleanMatrixPrintIJ +hypre_ParCSRBooleanMatrixRead +hypre_ParCSRBooleanMatrixRestoreRow +hypre_ParCSRBooleanMatrixSetColStartsOwner +hypre_ParCSRBooleanMatrixSetDataOwner +hypre_ParCSRBooleanMatrixSetNNZ +hypre_ParCSRBooleanMatrixSetRowStartsOwner +hypre_BuildCSRJDataType +hypre_BuildCSRMatrixMPIDataType +hypre_MatvecCommPkgCreate +hypre_MatvecCommPkgDestroy +hypre_ParCSRCommHandleCreate +hypre_ParCSRCommHandleCreate_v2 +hypre_ParCSRCommHandleDestroy +hypre_ParCSRCommPkgCreate +hypre_ParCSRCommPkgCreateAndFill +hypre_ParCSRCommPkgCreate_core +hypre_ParCSRCommPkgUpdateVecStarts +hypre_ParCSRFindExtendCommPkg +hypre_ParCSRMatrixBlkFilter +hypre_ParCSRMatrixBlkFilterHost +hypre_ParCSRMatrixCopy_C +hypre_ParCSRMatrixZero_F +hypre_ParMatMinus_F +hypre_ParMatmul_FC +hypre_ParMatmul_RowSizes_Marked +hypre_ParMatScaleDiagInv_F +hypre_ExchangeExternalRowsInit +hypre_ExchangeExternalRowsWait +hypre_ParcsrBdiagInvScal +hypre_ParCSRDiagScaleVector +hypre_ParCSRDiagScaleVectorHost +hypre_ParcsrGetExternalRowsInit +hypre_ParcsrGetExternalRowsWait +hypre_ParCSRMatrixAdd +hypre_ParCSRMatrixAddHost +hypre_ParCSRMatrixAminvDB +hypre_ParCSRMatrixBlockColSum +hypre_ParCSRMatrixBlockColSumHost +hypre_ParCSRMatrixColSum +hypre_ParCSRMatrixColSumHost +hypre_ParCSRMatrixCompressOffdMap +hypre_ParCSRMatrixDiagScale +hypre_ParCSRMatrixDiagScaleHost +hypre_ParCSRMatrixDropSmallEntries +hypre_ParCSRMatrixDropSmallEntriesHost +hypre_ParCSRMatrixExtractBExt +hypre_ParCSRMatrixExtractBExt_Arrays +hypre_ParCSRMatrixExtractBExt_Arrays_Overlap +hypre_ParCSRMatrixExtractBExt_Overlap +hypre_ParCSRMatrixExtractRowSubmatrices +hypre_ParCSRMatrixExtractSubmatrices +hypre_ParCSRMatrixExtractSubmatrixFC +hypre_ParCSRMatrixFnorm +hypre_ParCSRMatrixGenSpanningTree +hypre_ParCSRMatrixInfNorm +hypre_ParCSRMatrixLocalSumElts +hypre_ParCSRMatrixLocalTranspose +hypre_ParCSRMatrixReorder +hypre_ParCSRMatrixScale +hypre_ParCSRMatrixTranspose +hypre_ParCSRMatrixTransposeHost +hypre_ParMatmul +hypre_ParMatmul_RowSizes +hypre_ParTMatmul +hypre_ParvecBdiagInvScal +GenerateDiagAndOffd +hypre_CSRMatrixToParCSRMatrix +hypre_FillResponseParToCSRMatrix +hypre_MergeDiagAndOffd +hypre_MergeDiagAndOffdHost +hypre_ParCSRMatrixClone +hypre_ParCSRMatrixClone_v2 +hypre_ParCSRMatrixCopy +hypre_ParCSRMatrixCopyColMapOffdToDevice +hypre_ParCSRMatrixCopyColMapOffdToHost +hypre_ParCSRMatrixCreate +hypre_ParCSRMatrixCreateFromDenseBlockMatrix +hypre_ParCSRMatrixCreateFromParVector +hypre_ParCSRMatrixDestroy +hypre_ParCSRMatrixGetLocalRange +hypre_ParCSRMatrixGetRow +hypre_ParCSRMatrixGetRowHost +hypre_ParCSRMatrixInitialize +hypre_ParCSRMatrixInitialize_v2 +hypre_ParCSRMatrixMigrate +hypre_ParCSRMatrixPrint +hypre_ParCSRMatrixPrintBinaryIJ +hypre_ParCSRMatrixPrintIJ +hypre_ParCSRMatrixRead +hypre_ParCSRMatrixReadIJ +hypre_ParCSRMatrixRestoreRow +hypre_ParCSRMatrixSetConstantValues +hypre_ParCSRMatrixSetDataOwner +hypre_ParCSRMatrixSetDNumNonzeros +hypre_ParCSRMatrixSetNumNonzeros +hypre_ParCSRMatrixSetNumNonzeros_core +hypre_ParCSRMatrixSetNumRownnz +hypre_ParCSRMatrixSetPatternOnly +hypre_ParCSRMatrixToCSRMatrixAll +hypre_ParCSRMatrixToCSRMatrixAll_v2 +hypre_ParCSRMatrixTruncate +hypre_ParCSRMatrixUnion +hypre_ParCSRMatrixStatsArrayCompute +hypre_ParCSRMatrixStatsComputePassOneLocal +hypre_ParCSRMatrixStatsComputePassOneLocalHost +hypre_ParCSRMatrixStatsComputePassTwoLocal +hypre_ParCSRMatrixStatsComputePassTwoLocalHost +hypre_ParCSRMatrixMatvec +hypre_ParCSRMatrixMatvec_FF +hypre_ParCSRMatrixMatvecOutOfPlace +hypre_ParCSRMatrixMatvecOutOfPlaceHost +hypre_ParCSRMatrixMatvecT +hypre_ParCSRMatrixMatvecTHost +hypre_ParCSRMatMat +hypre_ParCSRMatMatHost +hypre_ParCSRMatrixRAP +hypre_ParCSRMatrixRAPKT +hypre_ParCSRMatrixRAPKTHost +hypre_ParCSRTMatMat +hypre_ParCSRTMatMatKT +hypre_ParCSRTMatMatKTHost +HYPRE_Destroy2DSystem +HYPRE_Generate2DSystem +hypre_ParVectorMassAxpy +hypre_ParVectorMassDotpTwo +hypre_ParVectorMassInnerProd +hypre_FillResponseParToVectorAll +hypre_ParMultiVectorCreate +hypre_ParVectorAxpy +hypre_ParVectorAxpyz +hypre_ParVectorCloneDeep_v2 +hypre_ParVectorCloneShallow +hypre_ParVectorCopy +hypre_ParVectorCreate +hypre_ParVectorDestroy +hypre_ParVectorElmdivpy +hypre_ParVectorElmdivpyMarked +hypre_ParVectorGetValues +hypre_ParVectorGetValues2 +hypre_ParVectorGetValuesHost +hypre_ParVectorInitialize +hypre_ParVectorInitialize_v2 +hypre_ParVectorInnerProd +hypre_ParVectorLocalSumElts +hypre_ParVectorMigrate +hypre_ParVectorPrint +hypre_ParVectorPrintBinaryIJ +hypre_ParVectorPrintIJ +hypre_ParVectorRead +hypre_ParVectorReadIJ +hypre_ParVectorResize +hypre_ParVectorScale +hypre_ParVectorSetComponent +hypre_ParVectorSetConstantValues +hypre_ParVectorSetDataOwner +hypre_ParVectorSetLocalSize +hypre_ParVectorSetRandomValues +hypre_ParVectorSetZeros +hypre_ParVectorStridedCopy +hypre_ParVectorToVectorAll +hypre_ParVectorToVectorAll_v2 +hypre_VectorToParVector diff --git a/src/parcsr_mv/parcsr_mv_mp.c b/src/parcsr_mv/parcsr_mv_mp.c new file mode 100644 index 0000000000..5b42b5fcc2 --- /dev/null +++ b/src/parcsr_mv/parcsr_mv_mp.c @@ -0,0 +1,52 @@ +/****************************************************************************** + * 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 seq_mv mixed-precision interface + * + *****************************************************************************/ + +#include "_hypre_parcsr_mv.h" + +#ifdef HYPRE_MIXED_PRECISION + +/****************************************************************************** + * + * Member functions for hypre_ParVector class. + * + *****************************************************************************/ + +/*-------------------------------------------------------------------------- + * Mixed-precision hypre_ParVectorCopy + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_ParVectorCopy_mp( hypre_ParVector *x, + hypre_ParVector *y ) +{ + hypre_Vector_mp *x_local = (hypre_Vector_mp *)hypre_ParVectorLocalVector(x); + hypre_Vector_mp *y_local = (hypre_Vector_mp *)hypre_ParVectorLocalVector(y); + return hypre_SeqVectorCopy_mp(x_local, y_local); +} + +/*-------------------------------------------------------------------------- + * Mixed-Precision hypre_ParVectorAxpy + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_ParVectorAxpy_mp( hypre_double alpha, + hypre_ParVector *x, + hypre_ParVector *y ) +{ + hypre_Vector_mp *x_local = (hypre_Vector_mp *)hypre_ParVectorLocalVector(x); + hypre_Vector_mp *y_local = (hypre_Vector_mp *)hypre_ParVectorLocalVector(y); + + return hypre_SeqVectorAxpy_mp( alpha, x_local, y_local); +} + +#endif diff --git a/src/parcsr_mv/parcsr_mv_mup_func.h b/src/parcsr_mv/parcsr_mv_mup_func.h new file mode 100644 index 0000000000..be258059c1 --- /dev/null +++ b/src/parcsr_mv/parcsr_mv_mup_func.h @@ -0,0 +1,308 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'parcsr_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef PARCSR_MV_MUP_FUNC_HEADER +#define PARCSR_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_MatTCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MatTCommPkgCreate ) +#define hypre_MatTCommPkgCreate_core HYPRE_MULTIPRECISION_FUNC ( hypre_MatTCommPkgCreate_core ) +#define hypre_RowsWithColumn HYPRE_MULTIPRECISION_FUNC ( hypre_RowsWithColumn ) +#define hypre_RowsWithColumn_original HYPRE_MULTIPRECISION_FUNC ( hypre_RowsWithColumn_original ) +#define hypre_csrmatrixtoparcsrmatrix HYPRE_MULTIPRECISION_FUNC ( hypre_csrmatrixtoparcsrmatrix ) +#define hypre_csrmatrixtoparcsrmatrix_withnewpartitioning HYPRE_MULTIPRECISION_FUNC ( hypre_csrmatrixtoparcsrmatrix_withnewpartitioning ) +#define hypre_parcsrmatrixcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixcreate ) +#define hypre_parcsrmatrixdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixdestroy ) +#define hypre_parcsrmatrixgetcolpartiti HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixgetcolpartiti ) +#define hypre_parcsrmatrixgetcomm HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixgetcomm ) +#define hypre_parcsrmatrixgetdims HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixgetdims ) +#define hypre_parcsrmatrixgetlocalrange HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixgetlocalrange ) +#define hypre_parcsrmatrixgetrow HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixgetrow ) +#define hypre_parcsrmatrixgetrowpartiti HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixgetrowpartiti ) +#define hypre_parcsrmatrixinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixinitialize ) +#define hypre_parcsrmatrixmatvec HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixmatvec ) +#define hypre_parcsrmatrixmatvect HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixmatvect ) +#define hypre_parcsrmatrixprint HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixprint ) +#define hypre_parcsrmatrixread HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixread ) +#define hypre_parcsrmatrixrestorerow HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixrestorerow ) +#define hypre_parmultivectorcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parmultivectorcreate ) +#define hypre_parvectoraxpy HYPRE_MULTIPRECISION_FUNC ( hypre_parvectoraxpy ) +#define hypre_parvectorcloneshallow HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorcloneshallow ) +#define hypre_parvectorcopy HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorcopy ) +#define hypre_parvectorcreate HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorcreate ) +#define hypre_parvectordestroy HYPRE_MULTIPRECISION_FUNC ( hypre_parvectordestroy ) +#define hypre_parvectorinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorinitialize ) +#define hypre_parvectorinnerprod HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorinnerprod ) +#define hypre_parvectorprint HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorprint ) +#define hypre_parvectorread HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorread ) +#define hypre_parvectorscale HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorscale ) +#define hypre_parvectorsetconstantvalue HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorsetconstantvalue ) +#define hypre_parvectorsetrandomvalues HYPRE_MULTIPRECISION_FUNC ( hypre_parvectorsetrandomvalues ) +#define hypre_parcsrmatrixglobalnumrows HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixglobalnumrows ) +#define hypre_parcsrmatrixrowstarts HYPRE_MULTIPRECISION_FUNC ( hypre_parcsrmatrixrowstarts ) +#define hypre_copyparvector HYPRE_MULTIPRECISION_FUNC ( hypre_copyparvector ) +#define hypre_paraxpy HYPRE_MULTIPRECISION_FUNC ( hypre_paraxpy ) +#define hypre_parinnerprod HYPRE_MULTIPRECISION_FUNC ( hypre_parinnerprod ) +#define hypre_parvectortovectorall HYPRE_MULTIPRECISION_FUNC ( hypre_parvectortovectorall ) +#define hypre_scaleparvector HYPRE_MULTIPRECISION_FUNC ( hypre_scaleparvector ) +#define hypre_setparvectorconstantvalue HYPRE_MULTIPRECISION_FUNC ( hypre_setparvectorconstantvalue ) +#define hypre_setparvectordataowner HYPRE_MULTIPRECISION_FUNC ( hypre_setparvectordataowner ) +#define hypre_setparvectorrandomvalues HYPRE_MULTIPRECISION_FUNC ( hypre_setparvectorrandomvalues ) +#define hypre_vectortoparvector HYPRE_MULTIPRECISION_FUNC ( hypre_vectortoparvector ) +#define hypre_ParCSRMatrixGenerateFFFC HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGenerateFFFC ) +#define hypre_ParCSRMatrixGenerateFFFC3 HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGenerateFFFC3 ) +#define hypre_ParCSRMatrixGenerateFFFCD3 HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGenerateFFFCD3 ) +#define hypre_ParCSRMatrixGenerateFFFCHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGenerateFFFCHost ) +#define HYPRE_CSRMatrixToParCSRMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixToParCSRMatrix ) +#define HYPRE_CSRMatrixToParCSRMatrix_WithNewPartitioning HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixToParCSRMatrix_WithNewPartitioning ) +#define HYPRE_ParCSRMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixCreate ) +#define HYPRE_ParCSRMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixDestroy ) +#define HYPRE_ParCSRMatrixGetColPartitioning HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetColPartitioning ) +#define HYPRE_ParCSRMatrixGetComm HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetComm ) +#define HYPRE_ParCSRMatrixGetDims HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetDims ) +#define HYPRE_ParCSRMatrixGetGlobalRowPartitioning HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetGlobalRowPartitioning ) +#define HYPRE_ParCSRMatrixGetLocalRange HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetLocalRange ) +#define HYPRE_ParCSRMatrixGetRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetRow ) +#define HYPRE_ParCSRMatrixGetRowPartitioning HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixGetRowPartitioning ) +#define HYPRE_ParCSRMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixInitialize ) +#define HYPRE_ParCSRMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixMatvec ) +#define HYPRE_ParCSRMatrixMatvecT HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixMatvecT ) +#define HYPRE_ParCSRMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixPrint ) +#define HYPRE_ParCSRMatrixRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixRead ) +#define HYPRE_ParCSRMatrixRestoreRow HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParCSRMatrixRestoreRow ) +#define HYPRE_ParMultiVectorCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParMultiVectorCreate ) +#define HYPRE_ParVectorAxpy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorAxpy ) +#define HYPRE_ParVectorCloneShallow HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorCloneShallow ) +#define HYPRE_ParVectorCopy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorCopy ) +#define HYPRE_ParVectorCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorCreate ) +#define HYPRE_ParVectorDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorDestroy ) +#define HYPRE_ParVectorGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorGetValues ) +#define HYPRE_ParVectorInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorInitialize ) +#define HYPRE_ParVectorInnerProd HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorInnerProd ) +#define HYPRE_ParVectorPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorPrint ) +#define HYPRE_ParVectorPrintBinaryIJ HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorPrintBinaryIJ ) +#define HYPRE_ParVectorRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorRead ) +#define HYPRE_ParVectorScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorScale ) +#define HYPRE_ParVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorSetConstantValues ) +#define HYPRE_ParVectorSetRandomValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_ParVectorSetRandomValues ) +#define HYPRE_VectorToParVector HYPRE_MULTIPRECISION_FUNC ( HYPRE_VectorToParVector ) +#define hypre_FillResponseIJDetermineSendProcs HYPRE_MULTIPRECISION_FUNC ( hypre_FillResponseIJDetermineSendProcs ) +#define hypre_NewCommPkgDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_NewCommPkgDestroy ) +#define hypre_ParCSRCommPkgCreateApart HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommPkgCreateApart ) +#define hypre_ParCSRCommPkgCreateApart_core HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommPkgCreateApart_core ) +#define hypre_PrintCommpkg HYPRE_MULTIPRECISION_FUNC ( hypre_PrintCommpkg ) +#define hypre_RangeFillResponseIJDetermineRecvProcs HYPRE_MULTIPRECISION_FUNC ( hypre_RangeFillResponseIJDetermineRecvProcs ) +#define hypre_NumbersArray HYPRE_MULTIPRECISION_FUNC ( hypre_NumbersArray ) +#define hypre_NumbersDeleteNode HYPRE_MULTIPRECISION_FUNC ( hypre_NumbersDeleteNode ) +#define hypre_NumbersEnter HYPRE_MULTIPRECISION_FUNC ( hypre_NumbersEnter ) +#define hypre_NumbersNEntered HYPRE_MULTIPRECISION_FUNC ( hypre_NumbersNEntered ) +#define hypre_NumbersNewNode HYPRE_MULTIPRECISION_FUNC ( hypre_NumbersNewNode ) +#define hypre_NumbersQuery HYPRE_MULTIPRECISION_FUNC ( hypre_NumbersQuery ) +#define hypre_ParAat_RowSizes HYPRE_MULTIPRECISION_FUNC ( hypre_ParAat_RowSizes ) +#define hypre_ParCSRAAt HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRAAt ) +#define hypre_ParCSRMatrixExtractAExt HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractAExt ) +#define hypre_AssumedPartitionCreate HYPRE_MULTIPRECISION_FUNC ( hypre_AssumedPartitionCreate ) +#define hypre_AssumedPartitionDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_AssumedPartitionDestroy ) +#define hypre_GetAssumedPartitionProcFromRow HYPRE_MULTIPRECISION_FUNC ( hypre_GetAssumedPartitionProcFromRow ) +#define hypre_GetAssumedPartitionRowRange HYPRE_MULTIPRECISION_FUNC ( hypre_GetAssumedPartitionRowRange ) +#define hypre_LocateAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_LocateAssumedPartition ) +#define hypre_ParCSRMatrixCreateAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCreateAssumedPartition ) +#define hypre_ParVectorCreateAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorCreateAssumedPartition ) +#define hypre_BooleanMatTCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BooleanMatTCommPkgCreate ) +#define hypre_BooleanMatvecCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BooleanMatvecCommPkgCreate ) +#define hypre_ParBooleanAAt HYPRE_MULTIPRECISION_FUNC ( hypre_ParBooleanAAt ) +#define hypre_ParBooleanMatmul HYPRE_MULTIPRECISION_FUNC ( hypre_ParBooleanMatmul ) +#define hypre_ParCSRBooleanMatrixExtractAExt HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixExtractAExt ) +#define hypre_ParCSRBooleanMatrixExtractBExt HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixExtractBExt ) +#define hypre_BooleanGenerateDiagAndOffd HYPRE_MULTIPRECISION_FUNC ( hypre_BooleanGenerateDiagAndOffd ) +#define hypre_BuildCSRBooleanMatrixMPIDataType HYPRE_MULTIPRECISION_FUNC ( hypre_BuildCSRBooleanMatrixMPIDataType ) +#define hypre_CSRBooleanMatrixBigInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixBigInitialize ) +#define hypre_CSRBooleanMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixCreate ) +#define hypre_CSRBooleanMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixDestroy ) +#define hypre_CSRBooleanMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixInitialize ) +#define hypre_CSRBooleanMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixPrint ) +#define hypre_CSRBooleanMatrixRead HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixRead ) +#define hypre_CSRBooleanMatrixSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixSetDataOwner ) +#define hypre_CSRBooleanMatrixToParCSRBooleanMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_CSRBooleanMatrixToParCSRBooleanMatrix ) +#define hypre_ParCSRBooleanMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixCreate ) +#define hypre_ParCSRBooleanMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixDestroy ) +#define hypre_ParCSRBooleanMatrixGetLocalRange HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixGetLocalRange ) +#define hypre_ParCSRBooleanMatrixGetRow HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixGetRow ) +#define hypre_ParCSRBooleanMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixInitialize ) +#define hypre_ParCSRBooleanMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixPrint ) +#define hypre_ParCSRBooleanMatrixPrintIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixPrintIJ ) +#define hypre_ParCSRBooleanMatrixRead HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixRead ) +#define hypre_ParCSRBooleanMatrixRestoreRow HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixRestoreRow ) +#define hypre_ParCSRBooleanMatrixSetColStartsOwner HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixSetColStartsOwner ) +#define hypre_ParCSRBooleanMatrixSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixSetDataOwner ) +#define hypre_ParCSRBooleanMatrixSetNNZ HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixSetNNZ ) +#define hypre_ParCSRBooleanMatrixSetRowStartsOwner HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRBooleanMatrixSetRowStartsOwner ) +#define hypre_BuildCSRJDataType HYPRE_MULTIPRECISION_FUNC ( hypre_BuildCSRJDataType ) +#define hypre_BuildCSRMatrixMPIDataType HYPRE_MULTIPRECISION_FUNC ( hypre_BuildCSRMatrixMPIDataType ) +#define hypre_MatvecCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MatvecCommPkgCreate ) +#define hypre_MatvecCommPkgDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MatvecCommPkgDestroy ) +#define hypre_ParCSRCommHandleCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommHandleCreate ) +#define hypre_ParCSRCommHandleCreate_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommHandleCreate_v2 ) +#define hypre_ParCSRCommHandleDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommHandleDestroy ) +#define hypre_ParCSRCommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommPkgCreate ) +#define hypre_ParCSRCommPkgCreateAndFill HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommPkgCreateAndFill ) +#define hypre_ParCSRCommPkgCreate_core HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommPkgCreate_core ) +#define hypre_ParCSRCommPkgUpdateVecStarts HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRCommPkgUpdateVecStarts ) +#define hypre_ParCSRFindExtendCommPkg HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRFindExtendCommPkg ) +#define hypre_ParCSRMatrixBlkFilter HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixBlkFilter ) +#define hypre_ParCSRMatrixBlkFilterHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixBlkFilterHost ) +#define hypre_ParCSRMatrixCopy_C HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCopy_C ) +#define hypre_ParCSRMatrixZero_F HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixZero_F ) +#define hypre_ParMatMinus_F HYPRE_MULTIPRECISION_FUNC ( hypre_ParMatMinus_F ) +#define hypre_ParMatmul_FC HYPRE_MULTIPRECISION_FUNC ( hypre_ParMatmul_FC ) +#define hypre_ParMatmul_RowSizes_Marked HYPRE_MULTIPRECISION_FUNC ( hypre_ParMatmul_RowSizes_Marked ) +#define hypre_ParMatScaleDiagInv_F HYPRE_MULTIPRECISION_FUNC ( hypre_ParMatScaleDiagInv_F ) +#define hypre_ExchangeExternalRowsInit HYPRE_MULTIPRECISION_FUNC ( hypre_ExchangeExternalRowsInit ) +#define hypre_ExchangeExternalRowsWait HYPRE_MULTIPRECISION_FUNC ( hypre_ExchangeExternalRowsWait ) +#define hypre_ParcsrBdiagInvScal HYPRE_MULTIPRECISION_FUNC ( hypre_ParcsrBdiagInvScal ) +#define hypre_ParCSRDiagScaleVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRDiagScaleVector ) +#define hypre_ParCSRDiagScaleVectorHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRDiagScaleVectorHost ) +#define hypre_ParcsrGetExternalRowsInit HYPRE_MULTIPRECISION_FUNC ( hypre_ParcsrGetExternalRowsInit ) +#define hypre_ParcsrGetExternalRowsWait HYPRE_MULTIPRECISION_FUNC ( hypre_ParcsrGetExternalRowsWait ) +#define hypre_ParCSRMatrixAdd HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixAdd ) +#define hypre_ParCSRMatrixAddHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixAddHost ) +#define hypre_ParCSRMatrixAminvDB HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixAminvDB ) +#define hypre_ParCSRMatrixBlockColSum HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixBlockColSum ) +#define hypre_ParCSRMatrixBlockColSumHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixBlockColSumHost ) +#define hypre_ParCSRMatrixColSum HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixColSum ) +#define hypre_ParCSRMatrixColSumHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixColSumHost ) +#define hypre_ParCSRMatrixCompressOffdMap HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCompressOffdMap ) +#define hypre_ParCSRMatrixDiagScale HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixDiagScale ) +#define hypre_ParCSRMatrixDiagScaleHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixDiagScaleHost ) +#define hypre_ParCSRMatrixDropSmallEntries HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixDropSmallEntries ) +#define hypre_ParCSRMatrixDropSmallEntriesHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixDropSmallEntriesHost ) +#define hypre_ParCSRMatrixExtractBExt HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractBExt ) +#define hypre_ParCSRMatrixExtractBExt_Arrays HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractBExt_Arrays ) +#define hypre_ParCSRMatrixExtractBExt_Arrays_Overlap HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractBExt_Arrays_Overlap ) +#define hypre_ParCSRMatrixExtractBExt_Overlap HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractBExt_Overlap ) +#define hypre_ParCSRMatrixExtractRowSubmatrices HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractRowSubmatrices ) +#define hypre_ParCSRMatrixExtractSubmatrices HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractSubmatrices ) +#define hypre_ParCSRMatrixExtractSubmatrixFC HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixExtractSubmatrixFC ) +#define hypre_ParCSRMatrixFnorm HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixFnorm ) +#define hypre_ParCSRMatrixGenSpanningTree HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGenSpanningTree ) +#define hypre_ParCSRMatrixInfNorm HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixInfNorm ) +#define hypre_ParCSRMatrixLocalSumElts HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixLocalSumElts ) +#define hypre_ParCSRMatrixLocalTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixLocalTranspose ) +#define hypre_ParCSRMatrixReorder HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixReorder ) +#define hypre_ParCSRMatrixScale HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixScale ) +#define hypre_ParCSRMatrixTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixTranspose ) +#define hypre_ParCSRMatrixTransposeHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixTransposeHost ) +#define hypre_ParMatmul HYPRE_MULTIPRECISION_FUNC ( hypre_ParMatmul ) +#define hypre_ParMatmul_RowSizes HYPRE_MULTIPRECISION_FUNC ( hypre_ParMatmul_RowSizes ) +#define hypre_ParTMatmul HYPRE_MULTIPRECISION_FUNC ( hypre_ParTMatmul ) +#define hypre_ParvecBdiagInvScal HYPRE_MULTIPRECISION_FUNC ( hypre_ParvecBdiagInvScal ) +#define GenerateDiagAndOffd HYPRE_MULTIPRECISION_FUNC ( GenerateDiagAndOffd ) +#define hypre_CSRMatrixToParCSRMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixToParCSRMatrix ) +#define hypre_FillResponseParToCSRMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_FillResponseParToCSRMatrix ) +#define hypre_MergeDiagAndOffd HYPRE_MULTIPRECISION_FUNC ( hypre_MergeDiagAndOffd ) +#define hypre_MergeDiagAndOffdHost HYPRE_MULTIPRECISION_FUNC ( hypre_MergeDiagAndOffdHost ) +#define hypre_ParCSRMatrixClone HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixClone ) +#define hypre_ParCSRMatrixClone_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixClone_v2 ) +#define hypre_ParCSRMatrixCopy HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCopy ) +#define hypre_ParCSRMatrixCopyColMapOffdToDevice HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCopyColMapOffdToDevice ) +#define hypre_ParCSRMatrixCopyColMapOffdToHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCopyColMapOffdToHost ) +#define hypre_ParCSRMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCreate ) +#define hypre_ParCSRMatrixCreateFromDenseBlockMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCreateFromDenseBlockMatrix ) +#define hypre_ParCSRMatrixCreateFromParVector HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixCreateFromParVector ) +#define hypre_ParCSRMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixDestroy ) +#define hypre_ParCSRMatrixGetLocalRange HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGetLocalRange ) +#define hypre_ParCSRMatrixGetRow HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGetRow ) +#define hypre_ParCSRMatrixGetRowHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixGetRowHost ) +#define hypre_ParCSRMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixInitialize ) +#define hypre_ParCSRMatrixInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixInitialize_v2 ) +#define hypre_ParCSRMatrixMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMigrate ) +#define hypre_ParCSRMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixPrint ) +#define hypre_ParCSRMatrixPrintBinaryIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixPrintBinaryIJ ) +#define hypre_ParCSRMatrixPrintIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixPrintIJ ) +#define hypre_ParCSRMatrixRead HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixRead ) +#define hypre_ParCSRMatrixReadIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixReadIJ ) +#define hypre_ParCSRMatrixRestoreRow HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixRestoreRow ) +#define hypre_ParCSRMatrixSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetConstantValues ) +#define hypre_ParCSRMatrixSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetDataOwner ) +#define hypre_ParCSRMatrixSetDNumNonzeros HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetDNumNonzeros ) +#define hypre_ParCSRMatrixSetNumNonzeros HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetNumNonzeros ) +#define hypre_ParCSRMatrixSetNumNonzeros_core HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetNumNonzeros_core ) +#define hypre_ParCSRMatrixSetNumRownnz HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetNumRownnz ) +#define hypre_ParCSRMatrixSetPatternOnly HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixSetPatternOnly ) +#define hypre_ParCSRMatrixToCSRMatrixAll HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixToCSRMatrixAll ) +#define hypre_ParCSRMatrixToCSRMatrixAll_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixToCSRMatrixAll_v2 ) +#define hypre_ParCSRMatrixTruncate HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixTruncate ) +#define hypre_ParCSRMatrixUnion HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixUnion ) +#define hypre_ParCSRMatrixStatsArrayCompute HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixStatsArrayCompute ) +#define hypre_ParCSRMatrixStatsComputePassOneLocal HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixStatsComputePassOneLocal ) +#define hypre_ParCSRMatrixStatsComputePassOneLocalHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixStatsComputePassOneLocalHost ) +#define hypre_ParCSRMatrixStatsComputePassTwoLocal HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixStatsComputePassTwoLocal ) +#define hypre_ParCSRMatrixStatsComputePassTwoLocalHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixStatsComputePassTwoLocalHost ) +#define hypre_ParCSRMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMatvec ) +#define hypre_ParCSRMatrixMatvec_FF HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMatvec_FF ) +#define hypre_ParCSRMatrixMatvecOutOfPlace HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMatvecOutOfPlace ) +#define hypre_ParCSRMatrixMatvecOutOfPlaceHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMatvecOutOfPlaceHost ) +#define hypre_ParCSRMatrixMatvecT HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMatvecT ) +#define hypre_ParCSRMatrixMatvecTHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixMatvecTHost ) +#define hypre_ParCSRMatMat HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatMat ) +#define hypre_ParCSRMatMatHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatMatHost ) +#define hypre_ParCSRMatrixRAP HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixRAP ) +#define hypre_ParCSRMatrixRAPKT HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixRAPKT ) +#define hypre_ParCSRMatrixRAPKTHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixRAPKTHost ) +#define hypre_ParCSRTMatMat HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRTMatMat ) +#define hypre_ParCSRTMatMatKT HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRTMatMatKT ) +#define hypre_ParCSRTMatMatKTHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRTMatMatKTHost ) +#define HYPRE_Destroy2DSystem HYPRE_MULTIPRECISION_FUNC ( HYPRE_Destroy2DSystem ) +#define HYPRE_Generate2DSystem HYPRE_MULTIPRECISION_FUNC ( HYPRE_Generate2DSystem ) +#define hypre_ParVectorMassAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorMassAxpy ) +#define hypre_ParVectorMassDotpTwo HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorMassDotpTwo ) +#define hypre_ParVectorMassInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorMassInnerProd ) +#define hypre_FillResponseParToVectorAll HYPRE_MULTIPRECISION_FUNC ( hypre_FillResponseParToVectorAll ) +#define hypre_ParMultiVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParMultiVectorCreate ) +#define hypre_ParVectorAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorAxpy ) +#define hypre_ParVectorAxpyz HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorAxpyz ) +#define hypre_ParVectorCloneDeep_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorCloneDeep_v2 ) +#define hypre_ParVectorCloneShallow HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorCloneShallow ) +#define hypre_ParVectorCopy HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorCopy ) +#define hypre_ParVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorCreate ) +#define hypre_ParVectorDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorDestroy ) +#define hypre_ParVectorElmdivpy HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorElmdivpy ) +#define hypre_ParVectorElmdivpyMarked HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorElmdivpyMarked ) +#define hypre_ParVectorGetValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorGetValues ) +#define hypre_ParVectorGetValues2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorGetValues2 ) +#define hypre_ParVectorGetValuesHost HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorGetValuesHost ) +#define hypre_ParVectorInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorInitialize ) +#define hypre_ParVectorInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorInitialize_v2 ) +#define hypre_ParVectorInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorInnerProd ) +#define hypre_ParVectorLocalSumElts HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorLocalSumElts ) +#define hypre_ParVectorMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorMigrate ) +#define hypre_ParVectorPrint HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorPrint ) +#define hypre_ParVectorPrintBinaryIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorPrintBinaryIJ ) +#define hypre_ParVectorPrintIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorPrintIJ ) +#define hypre_ParVectorRead HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorRead ) +#define hypre_ParVectorReadIJ HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorReadIJ ) +#define hypre_ParVectorResize HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorResize ) +#define hypre_ParVectorScale HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorScale ) +#define hypre_ParVectorSetComponent HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSetComponent ) +#define hypre_ParVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSetConstantValues ) +#define hypre_ParVectorSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSetDataOwner ) +#define hypre_ParVectorSetLocalSize HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSetLocalSize ) +#define hypre_ParVectorSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSetRandomValues ) +#define hypre_ParVectorSetZeros HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorSetZeros ) +#define hypre_ParVectorStridedCopy HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorStridedCopy ) +#define hypre_ParVectorToVectorAll HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorToVectorAll ) +#define hypre_ParVectorToVectorAll_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorToVectorAll_v2 ) +#define hypre_VectorToParVector HYPRE_MULTIPRECISION_FUNC ( hypre_VectorToParVector ) + +#endif diff --git a/src/parcsr_mv/protos.h b/src/parcsr_mv/protos.h index 7b29da12d2..2f75ce269c 100644 --- a/src/parcsr_mv/protos.h +++ b/src/parcsr_mv/protos.h @@ -98,27 +98,27 @@ HYPRE_Int HYPRE_ParVectorGetValues ( HYPRE_ParVector vector, HYPRE_Int num_value HYPRE_Int hypre_ParCSRMatrixGenerateFFFCHost( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFC( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3(hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFCD3(hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr, HYPRE_Real **D_lambda_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr, HYPRE_Real **D_lambda_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateFFFC3Device(hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **A_FC_ptr, - hypre_ParCSRMatrix **A_FF_ptr ) ; + hypre_ParCSRMatrix **A_FF_ptr ); HYPRE_Int hypre_ParCSRMatrixGenerateCFDevice( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, - HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACF_ptr) ; + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACF_ptr); HYPRE_Int hypre_ParCSRMatrixGenerateCCDevice( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, - HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACC_ptr) ; + HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACC_ptr); HYPRE_Int hypre_ParCSRMatrixGenerate1DCFDevice( hypre_ParCSRMatrix *A, HYPRE_Int *CF_marker, HYPRE_BigInt *cpts_starts, hypre_ParCSRMatrix *S, hypre_ParCSRMatrix **ACX_ptr, - hypre_ParCSRMatrix **AXC_ptr ) ; + hypre_ParCSRMatrix **AXC_ptr ); /* new_commpkg.c */ HYPRE_Int hypre_PrintCommpkg ( hypre_ParCSRMatrix *A, const char *file_name ); @@ -403,6 +403,8 @@ HYPRE_Int hypre_ParCSRMatrixExtractSubmatrixFC( hypre_ParCSRMatrix *A, HYPRE_Int HYPRE_Real strength_thresh); HYPRE_Int hypre_ParCSRMatrixDiagScale( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, hypre_ParVector *par_rd ); +HYPRE_Int hypre_ParCSRMatrixDiagScaleHost( hypre_ParCSRMatrix *par_A, hypre_ParVector *par_ld, + hypre_ParVector *par_rd ); HYPRE_Int hypre_ParCSRMatrixReorder ( hypre_ParCSRMatrix *A ); HYPRE_Int hypre_ParCSRMatrixAdd( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, HYPRE_Complex beta, hypre_ParCSRMatrix *B, hypre_ParCSRMatrix **Cout); @@ -464,6 +466,7 @@ HYPRE_Int hypre_ParCSRMatrixInitialize_v2( hypre_ParCSRMatrix *matrix, HYPRE_MemoryLocation memory_location ); HYPRE_Int hypre_ParCSRMatrixInitialize ( hypre_ParCSRMatrix *matrix ); HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros ( hypre_ParCSRMatrix *matrix ); +HYPRE_Int hypre_ParCSRMatrixSetNumNonzeros_core( hypre_ParCSRMatrix *matrix, const char* format ); HYPRE_Int hypre_ParCSRMatrixSetDNumNonzeros ( hypre_ParCSRMatrix *matrix ); HYPRE_Int hypre_ParCSRMatrixSetNumRownnz ( hypre_ParCSRMatrix *matrix ); HYPRE_Int hypre_ParCSRMatrixSetDataOwner ( hypre_ParCSRMatrix *matrix, HYPRE_Int owns_data ); @@ -491,6 +494,9 @@ HYPRE_Int hypre_ParCSRMatrixGetLocalRange ( hypre_ParCSRMatrix *matrix, HYPRE_Bi HYPRE_BigInt *row_end, HYPRE_BigInt *col_start, HYPRE_BigInt *col_end ); HYPRE_Int hypre_ParCSRMatrixGetRow ( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, HYPRE_Int *size, HYPRE_BigInt **col_ind, HYPRE_Complex **values ); +HYPRE_Int hypre_ParCSRMatrixGetRowHost( hypre_ParCSRMatrix *mat, HYPRE_BigInt row, + HYPRE_Int *size, HYPRE_BigInt **col_ind, + HYPRE_Complex **values ); HYPRE_Int hypre_ParCSRMatrixRestoreRow ( hypre_ParCSRMatrix *matrix, HYPRE_BigInt row, HYPRE_Int *size, HYPRE_BigInt **col_ind, HYPRE_Complex **values ); hypre_ParCSRMatrix *hypre_CSRMatrixToParCSRMatrix ( MPI_Comm comm, hypre_CSRMatrix *A, @@ -533,6 +539,12 @@ HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlace ( HYPRE_Complex alpha, hypre_ParCSR HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceDevice ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *b, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecOutOfPlaceHost( HYPRE_Complex alpha, + hypre_ParCSRMatrix *A, + hypre_ParVector *x, + HYPRE_Complex beta, + hypre_ParVector *b, + hypre_ParVector *y ); // y = alpha*A*x + beta*y HYPRE_Int hypre_ParCSRMatrixMatvec ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y ); @@ -541,6 +553,9 @@ HYPRE_Int hypre_ParCSRMatrixMatvecT ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A HYPRE_Int hypre_ParCSRMatrixMatvecTDevice ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y ); +HYPRE_Int hypre_ParCSRMatrixMatvecTHost( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, + hypre_ParVector *x, HYPRE_Complex beta, + hypre_ParVector *y ); HYPRE_Int hypre_ParCSRMatrixMatvecT_unpack( hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int num_cols, HYPRE_Complex *recv_data, HYPRE_Complex *local_data ); HYPRE_Int hypre_ParCSRMatrixMatvec_FF ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, diff --git a/src/parcsr_mv/protos_mp.h b/src/parcsr_mv/protos_mp.h new file mode 100644 index 0000000000..e8fb57bd98 --- /dev/null +++ b/src/parcsr_mv/protos_mp.h @@ -0,0 +1,21 @@ +/****************************************************************************** + * 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) + ******************************************************************************/ + +/* Mixed precision function protos */ +/* parcsr_mv_mp.c */ + +#ifdef HYPRE_MIXED_PRECISION +HYPRE_Int +hypre_ParVectorCopy_mp( hypre_ParVector *x, + hypre_ParVector *y ); + +HYPRE_Int +hypre_ParVectorAxpy_mp( hypre_double alpha, + hypre_ParVector *x, + hypre_ParVector *y ); + +#endif diff --git a/src/seq_block_mv/Makefile b/src/seq_block_mv/Makefile index 0ec88cf5c2..f6cb0a3d6d 100644 --- a/src/seq_block_mv/Makefile +++ b/src/seq_block_mv/Makefile @@ -19,15 +19,26 @@ HEADERS =\ _hypre_seq_block_mv.h FILES =\ + + CUFILES =\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ dense_block_matrix.c\ dense_block_matmult.c -# CUFILES =\ +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif + -COBJS = ${FILES:.c=.o} -#CUOBJS = ${CUFILES:.c=.obj} -#OBJS = ${COBJS} ${CUOBJS} -OBJS = ${COBJS} SONAME = libHYPRE_seq_block_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -40,19 +51,62 @@ all: lib: libHYPRE_seq_block_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/_hypre_seq_block_mv.h $(HYPRE_BUILD_DIR)/include - + cp -fR $(srcdir)/seq_block_mv_mup_func.h $(HYPRE_BUILD_DIR)/include + install: libHYPRE_seq_block_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/_hypre_seq_block_mv.h $(HYPRE_INC_INSTALL) - -clean: + cp -fR $(srcdir)/seq_block_mv_mup_func.h $(HYPRE_INC_INSTALL) + +clean: clean_mup rm -f *.o *.obj libHYPRE* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_seq_block_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/seq_block_mv/_hypre_seq_block_mv.h b/src/seq_block_mv/_hypre_seq_block_mv.h index 129c54dfc9..d7e8143632 100644 --- a/src/seq_block_mv/_hypre_seq_block_mv.h +++ b/src/seq_block_mv/_hypre_seq_block_mv.h @@ -13,6 +13,10 @@ #include #include "seq_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "seq_block_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -50,6 +54,10 @@ typedef struct hypre_DenseBlockMatrix_struct HYPRE_Complex *data; /* Matrix coefficients */ HYPRE_Complex **data_aop; /* Array of pointers to data */ HYPRE_MemoryLocation memory_location; /* Memory location of data array */ + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision matrix_precision; +#endif } hypre_DenseBlockMatrix; /*-------------------------------------------------------------------------- @@ -80,6 +88,10 @@ typedef struct hypre_DenseBlockMatrix_struct (matrix) -> row_stride * i + \ (matrix) -> col_stride * j]) +#ifdef HYPRE_MIXED_PRECISION +#define hypre_DenseBlockMatrixPrecision(matrix) ((matrix) -> matrix_precision) +#endif + #endif /****************************************************************************** * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other diff --git a/src/seq_block_mv/dense_block_matrix.c b/src/seq_block_mv/dense_block_matrix.c index f9970f8d7c..8a07bc7f63 100644 --- a/src/seq_block_mv/dense_block_matrix.c +++ b/src/seq_block_mv/dense_block_matrix.c @@ -54,6 +54,10 @@ hypre_DenseBlockMatrixCreate( HYPRE_Int row_major, hypre_DenseBlockMatrixDataAOP(A) = NULL; hypre_DenseBlockMatrixMemoryLocation(A) = hypre_HandleMemoryLocation(hypre_handle()); +#if defined(HYPRE_MIXED_PRECISION) + hypre_DenseBlockMatrixPrecision(A) = HYPRE_OBJECT_PRECISION; +#endif + if (row_major) { hypre_DenseBlockMatrixRowStride(A) = 1; diff --git a/src/seq_block_mv/dense_block_matrix.h b/src/seq_block_mv/dense_block_matrix.h index 75ec0bbacb..89b6851a44 100644 --- a/src/seq_block_mv/dense_block_matrix.h +++ b/src/seq_block_mv/dense_block_matrix.h @@ -32,6 +32,10 @@ typedef struct hypre_DenseBlockMatrix_struct HYPRE_Complex *data; /* Matrix coefficients */ HYPRE_Complex **data_aop; /* Array of pointers to data */ HYPRE_MemoryLocation memory_location; /* Memory location of data array */ + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision matrix_precision; +#endif } hypre_DenseBlockMatrix; /*-------------------------------------------------------------------------- @@ -62,4 +66,8 @@ typedef struct hypre_DenseBlockMatrix_struct (matrix) -> row_stride * i + \ (matrix) -> col_stride * j]) +#ifdef HYPRE_MIXED_PRECISION +#define hypre_DenseBlockMatrixPrecision(matrix) ((matrix) -> matrix_precision) +#endif + #endif diff --git a/src/seq_block_mv/headers b/src/seq_block_mv/headers index 4215eed053..8463a00cd8 100755 --- a/src/seq_block_mv/headers +++ b/src/seq_block_mv/headers @@ -26,6 +26,10 @@ cat > $INTERNAL_HEADER <<@ #include #include "seq_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "seq_block_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/seq_block_mv/seq_block_mv_func_header b/src/seq_block_mv/seq_block_mv_func_header new file mode 100755 index 0000000000..691cb8bd99 --- /dev/null +++ b/src/seq_block_mv/seq_block_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=seq_block_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'seq_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SEQ_BLOCK_MV_MUP_FUNC_HEADER +#define SEQ_BLOCK_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=seq_block_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/seq_block_mv/seq_block_mv_functions.saved b/src/seq_block_mv/seq_block_mv_functions.saved new file mode 100644 index 0000000000..a44e472994 --- /dev/null +++ b/src/seq_block_mv/seq_block_mv_functions.saved @@ -0,0 +1,12 @@ +hypre_DenseBlockMatrixMultiply +hypre_DenseBlockMatrixMultiplyHost +hypre_DenseBlockMatrixBuildAOP +hypre_DenseBlockMatrixClone +hypre_DenseBlockMatrixCopy +hypre_DenseBlockMatrixCreate +hypre_DenseBlockMatrixCreateByBlock +hypre_DenseBlockMatrixDestroy +hypre_DenseBlockMatrixInitialize +hypre_DenseBlockMatrixInitializeOn +hypre_DenseBlockMatrixMigrate +hypre_DenseBlockMatrixPrint diff --git a/src/seq_block_mv/seq_block_mv_mup_func.h b/src/seq_block_mv/seq_block_mv_mup_func.h new file mode 100644 index 0000000000..81f3a3a0fb --- /dev/null +++ b/src/seq_block_mv/seq_block_mv_mup_func.h @@ -0,0 +1,32 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'seq_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SEQ_BLOCK_MV_MUP_FUNC_HEADER +#define SEQ_BLOCK_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_DenseBlockMatrixMultiply HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixMultiply ) +#define hypre_DenseBlockMatrixMultiplyHost HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixMultiplyHost ) +#define hypre_DenseBlockMatrixBuildAOP HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixBuildAOP ) +#define hypre_DenseBlockMatrixClone HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixClone ) +#define hypre_DenseBlockMatrixCopy HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixCopy ) +#define hypre_DenseBlockMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixCreate ) +#define hypre_DenseBlockMatrixCreateByBlock HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixCreateByBlock ) +#define hypre_DenseBlockMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixDestroy ) +#define hypre_DenseBlockMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixInitialize ) +#define hypre_DenseBlockMatrixInitializeOn HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixInitializeOn ) +#define hypre_DenseBlockMatrixMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixMigrate ) +#define hypre_DenseBlockMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_DenseBlockMatrixPrint ) + +#endif diff --git a/src/seq_mv/HYPRE_seq_mv.h b/src/seq_mv/HYPRE_seq_mv.h index 57e812a8d0..b18191fccb 100644 --- a/src/seq_mv/HYPRE_seq_mv.h +++ b/src/seq_mv/HYPRE_seq_mv.h @@ -16,6 +16,10 @@ #include "HYPRE_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "seq_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/seq_mv/Makefile b/src/seq_mv/Makefile index d7a41d87fa..0702d29e68 100644 --- a/src/seq_mv/Makefile +++ b/src/seq_mv/Makefile @@ -21,22 +21,11 @@ HEADERS =\ multiblock_matrix.h\ seq_mv.h\ seq_mv.hpp\ - vector.h + vector.h\ + protos_mp.h FILES =\ - csr_filter.c\ - csr_matop.c\ - csr_matrix.c\ - csr_matvec.c\ - genpart.c\ - HYPRE_csr_matrix.c\ - HYPRE_mapped_matrix.c\ - HYPRE_multiblock_matrix.c\ - HYPRE_vector.c\ - mapped_matrix.c\ - multiblock_matrix.c\ - vector.c\ - vector_batched.c + seq_mv_mp.c CUFILES =\ csr_matop_device.c\ @@ -77,9 +66,32 @@ CUFILES =\ csr_sptrans_device.c\ vector_device.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +####################### +# Multiprecision files +####################### +MuP_FILES = \ + csr_filter.c\ + csr_matop.c\ + csr_matrix.c\ + csr_matvec.c\ + genpart.c\ + mapped_matrix.c\ + multiblock_matrix.c\ + vector.c\ + vector_batched.c\ + HYPRE_csr_matrix.c\ + HYPRE_mapped_matrix.c\ + HYPRE_multiblock_matrix.c\ + HYPRE_vector.c + +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_seq_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -94,19 +106,30 @@ all: lib: libHYPRE_seq_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/seq_mv.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/seq_mv_mup_func.h $(HYPRE_BUILD_DIR)/include +# cp -fR $(srcdir)/protos_mp.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_seq_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/seq_mv.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/seq_mv_mup_func.h $(HYPRE_INC_INSTALL) +# cp -fR $(srcdir)/protos_mp.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: deleteautogen +clean: deleteautogen clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + autogen: @for number in 1 2 3 4 5 6 7 8 9 10; do \ fn=csr_spgemm_device_numer$$number.c; \ @@ -130,9 +153,43 @@ deleteautogen: rm -f csr_spgemm_device_symbl10.c ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_seq_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/seq_mv/csr_matrix.c b/src/seq_mv/csr_matrix.c index 4e618a84db..b8e2b00cb0 100644 --- a/src/seq_mv/csr_matrix.c +++ b/src/seq_mv/csr_matrix.c @@ -50,6 +50,10 @@ hypre_CSRMatrixCreate( HYPRE_Int num_rows, hypre_CSRMatrixCsrsvData(matrix) = NULL; #endif +#if defined(HYPRE_MIXED_PRECISION) + hypre_CSRMatrixPrecision(matrix) = HYPRE_OBJECT_PRECISION; +#endif + return matrix; } diff --git a/src/seq_mv/csr_matrix.h b/src/seq_mv/csr_matrix.h index 2a7c0c09cd..78b12718ec 100644 --- a/src/seq_mv/csr_matrix.h +++ b/src/seq_mv/csr_matrix.h @@ -55,6 +55,10 @@ typedef struct hypre_CsrsvData *csrsv_data; hypre_GpuMatData *mat_data; #endif + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision matrix_precision; +#endif } hypre_CSRMatrix; /*-------------------------------------------------------------------------- @@ -83,8 +87,9 @@ typedef struct #define hypre_CSRMatrixGPUMatData(matrix) ((matrix) -> mat_data) #endif -HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionBegin( hypre_CSRMatrix *A ); -HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionEnd( hypre_CSRMatrix *A ); +#ifdef HYPRE_MIXED_PRECISION +#define hypre_CSRMatrixPrecision(matrix) ((matrix) -> matrix_precision) +#endif /*-------------------------------------------------------------------------- * CSR Boolean Matrix diff --git a/src/seq_mv/headers b/src/seq_mv/headers index 81f32d156d..b2ed51d1e1 100755 --- a/src/seq_mv/headers +++ b/src/seq_mv/headers @@ -27,6 +27,10 @@ cat > $INTERNAL_HEADER <<@ #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "seq_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -42,6 +46,7 @@ cat mapped_matrix.h >> $INTERNAL_HEADER cat multiblock_matrix.h >> $INTERNAL_HEADER cat vector.h >> $INTERNAL_HEADER cat protos.h >> $INTERNAL_HEADER +cat protos_mp.h >> $INTERNAL_HEADER #../utilities/protos *.c >> $INTERNAL_HEADER diff --git a/src/seq_mv/protos.h b/src/seq_mv/protos.h index 6d16377a16..1dacd9625c 100644 --- a/src/seq_mv/protos.h +++ b/src/seq_mv/protos.h @@ -147,6 +147,8 @@ hypre_CSRMatrix *hypre_CSRMatrixUnion( hypre_CSRMatrix *A, HYPRE_BigInt *col_map_offd_A, HYPRE_BigInt *col_map_offd_B, HYPRE_BigInt **col_map_offd_C ); +HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionBegin( hypre_CSRMatrix *A ); +HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionEnd( hypre_CSRMatrix *A ); HYPRE_Int hypre_CSRMatrixPrefetch( hypre_CSRMatrix *A, HYPRE_MemoryLocation memory_location); HYPRE_Int hypre_CSRMatrixCheckSetNumNonzeros( hypre_CSRMatrix *matrix ); HYPRE_Int hypre_CSRMatrixResize( hypre_CSRMatrix *matrix, HYPRE_Int new_num_rows, diff --git a/src/seq_mv/protos_mp.h b/src/seq_mv/protos_mp.h new file mode 100644 index 0000000000..4ac2727020 --- /dev/null +++ b/src/seq_mv/protos_mp.h @@ -0,0 +1,21 @@ +/****************************************************************************** + * 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) + ******************************************************************************/ + +/* Mixed precision function protos */ +/* hypre_seq_mv_mp.h */ + +#ifdef HYPRE_MIXED_PRECISION +HYPRE_Int +hypre_SeqVectorCopy_mp( hypre_Vector_mp *x, + hypre_Vector_mp *y ); + +HYPRE_Int +hypre_SeqVectorAxpy_mp( hypre_double alpha, + hypre_Vector_mp *x, + hypre_Vector_mp *y ); + +#endif diff --git a/src/seq_mv/seq_mv.h b/src/seq_mv/seq_mv.h index 7a5e040618..0a528df8c3 100644 --- a/src/seq_mv/seq_mv.h +++ b/src/seq_mv/seq_mv.h @@ -14,6 +14,10 @@ #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "seq_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -75,6 +79,10 @@ typedef struct hypre_CsrsvData *csrsv_data; hypre_GpuMatData *mat_data; #endif + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision matrix_precision; +#endif } hypre_CSRMatrix; /*-------------------------------------------------------------------------- @@ -103,8 +111,9 @@ typedef struct #define hypre_CSRMatrixGPUMatData(matrix) ((matrix) -> mat_data) #endif -HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionBegin( hypre_CSRMatrix *A ); -HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionEnd( hypre_CSRMatrix *A ); +#ifdef HYPRE_MIXED_PRECISION +#define hypre_CSRMatrixPrecision(matrix) ((matrix) -> matrix_precision) +#endif /*-------------------------------------------------------------------------- * CSR Boolean Matrix @@ -257,8 +266,38 @@ typedef struct With rowwise storage, vj[i] = data[ j + num_vectors*i] */ HYPRE_Int vecstride, idxstride; /* ... so vj[i] = data[ j*vecstride + i*idxstride ] regardless of row_storage.*/ + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision vector_precision; +#endif + } hypre_Vector; +typedef struct +{ + void *data; + HYPRE_Int size; /* Number of elements of a single vector component */ + HYPRE_Int component; /* Index of a multivector component + (used for set/get routines )*/ + HYPRE_Int owns_data; /* Does the Vector create/destroy `data'? */ + HYPRE_MemoryLocation memory_location; /* memory location of data array */ + + /* For multivectors...*/ + HYPRE_Int num_vectors; /* the above "size" is size of one vector */ + HYPRE_Int multivec_storage_method; + /* ...if 0, store colwise v0[0], v0[1], ..., v1[0], v1[1], ... v2[0]... */ + /* ...if 1, store rowwise v0[0], v1[0], ..., v0[1], v1[1], ... */ + /* With colwise storage, vj[i] = data[ j*size + i] + With rowwise storage, vj[i] = data[ j + num_vectors*i] */ + HYPRE_Int vecstride, idxstride; + /* ... so vj[i] = data[ j*vecstride + i*idxstride ] regardless of row_storage.*/ + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision vector_precision; +#endif + +} hypre_Vector_mp; + /*-------------------------------------------------------------------------- * Accessor functions for the Vector structure *--------------------------------------------------------------------------*/ @@ -276,6 +315,10 @@ typedef struct #define hypre_VectorEntryIJ(vector, i, j) \ ((vector) -> data[((vector) -> vecstride) * j + ((vector) -> idxstride) * i]) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_VectorPrecision(vector) ((vector) -> vector_precision) +#endif + #endif /****************************************************************************** * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other @@ -426,6 +469,8 @@ hypre_CSRMatrix *hypre_CSRMatrixUnion( hypre_CSRMatrix *A, HYPRE_BigInt *col_map_offd_A, HYPRE_BigInt *col_map_offd_B, HYPRE_BigInt **col_map_offd_C ); +HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionBegin( hypre_CSRMatrix *A ); +HYPRE_Int hypre_CSRMatrixGetLoadBalancedPartitionEnd( hypre_CSRMatrix *A ); HYPRE_Int hypre_CSRMatrixPrefetch( hypre_CSRMatrix *A, HYPRE_MemoryLocation memory_location); HYPRE_Int hypre_CSRMatrixCheckSetNumNonzeros( hypre_CSRMatrix *matrix ); HYPRE_Int hypre_CSRMatrixResize( hypre_CSRMatrix *matrix, HYPRE_Int new_num_rows, @@ -664,6 +709,29 @@ HYPRE_Int hypre_SeqVectorStridedCopyDevice( hypre_Vector *vector, HYPRE_Int istride, HYPRE_Int ostride, HYPRE_Int size, HYPRE_Complex *data ); HYPRE_Int hypre_SeqVectorPrefetch(hypre_Vector *x, HYPRE_MemoryLocation memory_location); +/****************************************************************************** + * 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) + ******************************************************************************/ + +#include "seq_mv.h" + +/* Mixed precision function protos */ +/* hypre_seq_mv_mp.h */ + +#ifdef HYPRE_MIXED_PRECISION +HYPRE_Int +hypre_SeqVectorCopy_mp( hypre_Vector_mp *x, + hypre_Vector_mp *y ); + +HYPRE_Int +hypre_SeqVectorAxpy_mp( hypre_double alpha, + hypre_Vector_mp *x, + hypre_Vector_mp *y ); + +#endif #ifdef __cplusplus } diff --git a/src/seq_mv/seq_mv.hpp b/src/seq_mv/seq_mv.hpp index 273e965090..471f122238 100644 --- a/src/seq_mv/seq_mv.hpp +++ b/src/seq_mv/seq_mv.hpp @@ -7,6 +7,10 @@ #ifndef SEQ_MV_HPP #define SEQ_MV_HPP +#ifdef HYPRE_MIXED_PRECISION +#include "seq_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/seq_mv/seq_mv_func_header b/src/seq_mv/seq_mv_func_header new file mode 100755 index 0000000000..d75050390a --- /dev/null +++ b/src/seq_mv/seq_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=seq_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'seq_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SEQ_MV_MUP_FUNC_HEADER +#define SEQ_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=seq_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/seq_mv/seq_mv_functions.saved b/src/seq_mv/seq_mv_functions.saved new file mode 100644 index 0000000000..cd3f1f5e68 --- /dev/null +++ b/src/seq_mv/seq_mv_functions.saved @@ -0,0 +1,151 @@ +hypre_CSRMatrixTruncateDiag +hypre_CSRMatrixAdd +hypre_CSRMatrixAddFirstPass +hypre_CSRMatrixAddHost +hypre_CSRMatrixAddPartial +hypre_CSRMatrixAddSecondPass +hypre_CSRMatrixComputeRowSum +hypre_CSRMatrixComputeRowSumHost +hypre_CSRMatrixDeleteZeros +hypre_CSRMatrixDiagScale +hypre_CSRMatrixDiagScaleHost +hypre_CSRMatrixExtractDiagonal +hypre_CSRMatrixExtractDiagonalHost +hypre_CSRMatrixFnorm +hypre_CSRMatrixMultiply +hypre_CSRMatrixMultiplyHost +hypre_CSRMatrixReorder +hypre_CSRMatrixReorderHost +hypre_CSRMatrixScale +hypre_CSRMatrixSetConstantValues +hypre_CSRMatrixSplit +hypre_CSRMatrixSumElts +hypre_CSRMatrixTranspose +hypre_CSRMatrixTransposeHost +hypre_CSRMatrixBigInitialize +hypre_CSRMatrixBigJtoJ +hypre_CSRMatrixCheckSetNumNonzeros +hypre_CSRMatrixClone +hypre_CSRMatrixClone_v2 +hypre_CSRMatrixCopy +hypre_CSRMatrixCreate +hypre_CSRMatrixDestroy +hypre_CSRMatrixGetLoadBalancedPartitionBegin +hypre_CSRMatrixGetLoadBalancedPartitionEnd +hypre_CSRMatrixInitialize +hypre_CSRMatrixInitialize_v2 +hypre_CSRMatrixJtoBigJ +hypre_CSRMatrixMigrate +hypre_CSRMatrixPermute +hypre_CSRMatrixPermuteHost +hypre_CSRMatrixPrefetch +hypre_CSRMatrixPrint +hypre_CSRMatrixPrintHB +hypre_CSRMatrixPrintIJ +hypre_CSRMatrixPrintMM +hypre_CSRMatrixRead +hypre_CSRMatrixResize +hypre_CSRMatrixSetDataOwner +hypre_CSRMatrixSetPatternOnly +hypre_CSRMatrixSetRownnz +hypre_CSRMatrixSetRownnzHost +hypre_CSRMatrixUnion +hypre_CSRMatrixMatvec +hypre_CSRMatrixMatvec_FF +hypre_CSRMatrixMatvecOutOfPlace +hypre_CSRMatrixMatvecOutOfPlaceHost +hypre_CSRMatrixMatvecT +hypre_CSRMatrixMatvecTHost +hypre_GenerateLocalPartitioning +hypre_GeneratePartitioning +HYPRE_CSRMatrixCreate +HYPRE_CSRMatrixDestroy +HYPRE_CSRMatrixGetNumRows +HYPRE_CSRMatrixInitialize +HYPRE_CSRMatrixPrint +HYPRE_CSRMatrixRead +HYPRE_MappedMatrixAssemble +HYPRE_MappedMatrixCreate +HYPRE_MappedMatrixDestroy +HYPRE_MappedMatrixGetColIndex +HYPRE_MappedMatrixGetMatrix +HYPRE_MappedMatrixInitialize +HYPRE_MappedMatrixLimitedDestroy +HYPRE_MappedMatrixPrint +HYPRE_MappedMatrixSetColMap +HYPRE_MappedMatrixSetMapData +HYPRE_MappedMatrixSetMatrix +HYPRE_MultiblockMatrixAssemble +HYPRE_MultiblockMatrixCreate +HYPRE_MultiblockMatrixDestroy +HYPRE_MultiblockMatrixInitialize +HYPRE_MultiblockMatrixLimitedDestroy +HYPRE_MultiblockMatrixPrint +HYPRE_MultiblockMatrixSetNumSubmatrices +HYPRE_MultiblockMatrixSetSubmatrixType +HYPRE_VectorCreate +HYPRE_VectorDestroy +HYPRE_VectorInitialize +HYPRE_VectorPrint +HYPRE_VectorRead +hypre_MappedMatrixAssemble +hypre_MappedMatrixCreate +hypre_MappedMatrixDestroy +hypre_MappedMatrixGetColIndex +hypre_MappedMatrixGetMatrix +hypre_MappedMatrixInitialize +hypre_MappedMatrixLimitedDestroy +hypre_MappedMatrixPrint +hypre_MappedMatrixSetColMap +hypre_MappedMatrixSetMapData +hypre_MappedMatrixSetMatrix +hypre_MultiblockMatrixAssemble +hypre_MultiblockMatrixCreate +hypre_MultiblockMatrixDestroy +hypre_MultiblockMatrixInitialize +hypre_MultiblockMatrixLimitedDestroy +hypre_MultiblockMatrixPrint +hypre_MultiblockMatrixSetNumSubmatrices +hypre_MultiblockMatrixSetSubmatrix +hypre_MultiblockMatrixSetSubmatrixType +hypre_SeqVectorMassAxpy +hypre_SeqVectorMassAxpy4 +hypre_SeqVectorMassAxpy8 +hypre_SeqVectorMassDotpTwo +hypre_SeqVectorMassDotpTwo4 +hypre_SeqVectorMassDotpTwo8 +hypre_SeqVectorMassInnerProd +hypre_SeqVectorMassInnerProd4 +hypre_SeqVectorMassInnerProd8 +hypre_SeqMultiVectorCreate +hypre_SeqVectorAxpy +hypre_SeqVectorAxpyHost +hypre_SeqVectorAxpyz +hypre_SeqVectorAxpyzHost +hypre_SeqVectorCloneDeep +hypre_SeqVectorCloneDeep_v2 +hypre_SeqVectorCloneShallow +hypre_SeqVectorCopy +hypre_SeqVectorCreate +hypre_SeqVectorDestroy +hypre_SeqVectorElmdivpy +hypre_SeqVectorElmdivpyHost +hypre_SeqVectorElmdivpyMarked +hypre_SeqVectorInitialize +hypre_SeqVectorInitialize_v2 +hypre_SeqVectorInnerProd +hypre_SeqVectorInnerProdHost +hypre_SeqVectorMigrate +hypre_SeqVectorPrint +hypre_SeqVectorRead +hypre_SeqVectorResize +hypre_SeqVectorScale +hypre_SeqVectorScaleHost +hypre_SeqVectorSetConstantValues +hypre_SeqVectorSetConstantValuesHost +hypre_SeqVectorSetDataOwner +hypre_SeqVectorSetRandomValues +hypre_SeqVectorSetSize +hypre_SeqVectorStridedCopy +hypre_SeqVectorSumElts +hypre_SeqVectorSumEltsHost diff --git a/src/seq_mv/seq_mv_mp.c b/src/seq_mv/seq_mv_mp.c new file mode 100644 index 0000000000..573949131e --- /dev/null +++ b/src/seq_mv/seq_mv_mp.c @@ -0,0 +1,182 @@ +/****************************************************************************** + * 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 seq_mv mixed-precision interface + * + *****************************************************************************/ + +#include "seq_mv.h" +#include "hypre_utilities_mup.h" + +#if defined(HYPRE_MIXED_PRECISION) + +/****************************************************************************** + * + * Member functions for hypre_Vector class. + * + *****************************************************************************/ + +/*-------------------------------------------------------------------------- + * Mixed precision hypre_SeqVectorCopy + * copies data from x to y + * if size of x is larger than y only the first size_y elements of x are + * copied to y + *--------------------------------------------------------------------------*/ +HYPRE_Int +hypre_SeqVectorCopy_mp( hypre_Vector_mp *x, + hypre_Vector_mp *y ) +{ +/* +#ifdef HYPRE_PROFILE + hypre_profile_times[HYPRE_TIMER_ID_BLAS1] -= hypre_MPI_Wtime(); +#endif + + hypre_GpuProfilingPushRange("SeqVectorCopy"); +*/ + /* determine type of output vector data ==> Precision of y. */ + HYPRE_Precision precision = hypre_VectorPrecision (y); + + HYPRE_Int i; + HYPRE_Int ierr = 0; + + size_t size = hypre_min(hypre_VectorSize(x), hypre_VectorSize(y)) * hypre_VectorNumVectors(x); +/* + if(precision == HYPRE_REAL_SINGLE) + { + hypre_double *x_data = hypre_VectorData(x); + hypre_float *y_data = hypre_VectorData(y); +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + y_data[i] = (hypre_float)x_data[i]; + } + else if(precision == HYPRE_REAL_DOUBLE) + { + hypre_float *x_data = (hypre_float *)hypre_VectorData(x); + hypre_double *y_data = hypre_VectorData(y); +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif +// for (i = 0; i < size; i++) +// y_data[i] = (hypre_double)x_data[i]; + for (i = 0; i < size; i++) +// (hypre_VectorData(y))[i] = (hypre_double)(hypre_VectorData(x))[i]; + ((hypre_double *)y->data)[i] = (hypre_double)((hypre_float *)(x->data))[i]; + } + else if(precision == HYPRE_REAL_LONGDOUBLE) + { + hypre_double *x_data = hypre_VectorData(x); + hypre_long_double *y_data = hypre_VectorData(y); +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + y_data[i] = (hypre_long_double)x_data[i]; + } + else + { + hypre_printf_dbl("Error: Undefined precision type for Vector Copy! \n"); + ierr = 2; + } +*/ + + + switch (precision) + { + case HYPRE_REAL_SINGLE: +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + ((hypre_float *)hypre_VectorData(y))[i] = (hypre_float)((hypre_double *)hypre_VectorData(x))[i]; + break; + case HYPRE_REAL_DOUBLE: +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + ((hypre_double *)hypre_VectorData(y))[i] = (hypre_double)((hypre_float *)hypre_VectorData(x))[i]; + break; + case HYPRE_REAL_LONGDOUBLE: +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + ((hypre_long_double *)hypre_VectorData(y))[i] = (hypre_long_double)((hypre_double *)hypre_VectorData(x))[i]; + break; + default: + hypre_error_w_msg_mp(HYPRE_ERROR_GENERIC, "Error: Undefined precision type for Vector Copy!\n"); + } + +/* +#ifdef HYPRE_PROFILE + hypre_profile_times[HYPRE_TIMER_ID_BLAS1] += hypre_MPI_Wtime(); +#endif + hypre_GpuProfilingPopRange(); +*/ + return hypre_error_flag; +} + +/*-------------------------------------------------------------------------- + * Mixed-precision hypre_SeqVectorAxpy + *--------------------------------------------------------------------------*/ + +HYPRE_Int +hypre_SeqVectorAxpy_mp( hypre_double alpha, + hypre_Vector_mp *x, + hypre_Vector_mp *y ) +{ +/* +#ifdef HYPRE_PROFILE + hypre_profile_times[HYPRE_TIMER_ID_BLAS1] -= hypre_MPI_Wtime(); +#endif +*/ + /* determine type of output vector data ==> Precision of y. */ + HYPRE_Precision precision = hypre_VectorPrecision (y); + + HYPRE_Int size = hypre_VectorSize(x); + HYPRE_Int i; + size *=hypre_VectorNumVectors(x); + + switch (precision) + { + case HYPRE_REAL_SINGLE: +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + ((hypre_float *)hypre_VectorData(y))[i] += (hypre_float)(alpha * ((hypre_double *)hypre_VectorData(x))[i]); + break; + case HYPRE_REAL_DOUBLE: +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + ((hypre_double *)hypre_VectorData(y))[i] += (hypre_double)(alpha * ((hypre_float *)hypre_VectorData(x))[i]); + break; + case HYPRE_REAL_LONGDOUBLE: +#ifdef HYPRE_USING_OPENMP +#pragma omp parallel for private(i) HYPRE_SMP_SCHEDULE +#endif + for (i = 0; i < size; i++) + ((hypre_long_double *)hypre_VectorData(y))[i] += (hypre_long_double)(alpha * ((hypre_double *)hypre_VectorData(x))[i]); + break; + default: + hypre_error_w_msg_mp(HYPRE_ERROR_GENERIC, "Error: Undefined precision type for Vector Axpy!\n"); + } +/* +#ifdef HYPRE_PROFILE + hypre_profile_times[HYPRE_TIMER_ID_BLAS1] += hypre_MPI_Wtime(); +#endif +*/ + return hypre_error_flag; +} + +#endif diff --git a/src/seq_mv/seq_mv_mup_func.h b/src/seq_mv/seq_mv_mup_func.h new file mode 100644 index 0000000000..016c9e759f --- /dev/null +++ b/src/seq_mv/seq_mv_mup_func.h @@ -0,0 +1,171 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'seq_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SEQ_MV_MUP_FUNC_HEADER +#define SEQ_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_CSRMatrixTruncateDiag HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixTruncateDiag ) +#define hypre_CSRMatrixAdd HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixAdd ) +#define hypre_CSRMatrixAddFirstPass HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixAddFirstPass ) +#define hypre_CSRMatrixAddHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixAddHost ) +#define hypre_CSRMatrixAddPartial HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixAddPartial ) +#define hypre_CSRMatrixAddSecondPass HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixAddSecondPass ) +#define hypre_CSRMatrixComputeRowSum HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixComputeRowSum ) +#define hypre_CSRMatrixComputeRowSumHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixComputeRowSumHost ) +#define hypre_CSRMatrixDeleteZeros HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixDeleteZeros ) +#define hypre_CSRMatrixDiagScale HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixDiagScale ) +#define hypre_CSRMatrixDiagScaleHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixDiagScaleHost ) +#define hypre_CSRMatrixExtractDiagonal HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixExtractDiagonal ) +#define hypre_CSRMatrixExtractDiagonalHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixExtractDiagonalHost ) +#define hypre_CSRMatrixFnorm HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixFnorm ) +#define hypre_CSRMatrixMultiply HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMultiply ) +#define hypre_CSRMatrixMultiplyHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMultiplyHost ) +#define hypre_CSRMatrixReorder HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixReorder ) +#define hypre_CSRMatrixReorderHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixReorderHost ) +#define hypre_CSRMatrixScale HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixScale ) +#define hypre_CSRMatrixSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSetConstantValues ) +#define hypre_CSRMatrixSplit HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSplit ) +#define hypre_CSRMatrixSumElts HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSumElts ) +#define hypre_CSRMatrixTranspose HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixTranspose ) +#define hypre_CSRMatrixTransposeHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixTransposeHost ) +#define hypre_CSRMatrixBigInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixBigInitialize ) +#define hypre_CSRMatrixBigJtoJ HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixBigJtoJ ) +#define hypre_CSRMatrixCheckSetNumNonzeros HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixCheckSetNumNonzeros ) +#define hypre_CSRMatrixClone HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixClone ) +#define hypre_CSRMatrixClone_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixClone_v2 ) +#define hypre_CSRMatrixCopy HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixCopy ) +#define hypre_CSRMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixCreate ) +#define hypre_CSRMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixDestroy ) +#define hypre_CSRMatrixGetLoadBalancedPartitionBegin HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixGetLoadBalancedPartitionBegin ) +#define hypre_CSRMatrixGetLoadBalancedPartitionEnd HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixGetLoadBalancedPartitionEnd ) +#define hypre_CSRMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixInitialize ) +#define hypre_CSRMatrixInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixInitialize_v2 ) +#define hypre_CSRMatrixJtoBigJ HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixJtoBigJ ) +#define hypre_CSRMatrixMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMigrate ) +#define hypre_CSRMatrixPermute HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPermute ) +#define hypre_CSRMatrixPermuteHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPermuteHost ) +#define hypre_CSRMatrixPrefetch HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPrefetch ) +#define hypre_CSRMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPrint ) +#define hypre_CSRMatrixPrintHB HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPrintHB ) +#define hypre_CSRMatrixPrintIJ HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPrintIJ ) +#define hypre_CSRMatrixPrintMM HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixPrintMM ) +#define hypre_CSRMatrixRead HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixRead ) +#define hypre_CSRMatrixResize HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixResize ) +#define hypre_CSRMatrixSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSetDataOwner ) +#define hypre_CSRMatrixSetPatternOnly HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSetPatternOnly ) +#define hypre_CSRMatrixSetRownnz HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSetRownnz ) +#define hypre_CSRMatrixSetRownnzHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixSetRownnzHost ) +#define hypre_CSRMatrixUnion HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixUnion ) +#define hypre_CSRMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMatvec ) +#define hypre_CSRMatrixMatvec_FF HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMatvec_FF ) +#define hypre_CSRMatrixMatvecOutOfPlace HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMatvecOutOfPlace ) +#define hypre_CSRMatrixMatvecOutOfPlaceHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMatvecOutOfPlaceHost ) +#define hypre_CSRMatrixMatvecT HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMatvecT ) +#define hypre_CSRMatrixMatvecTHost HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixMatvecTHost ) +#define hypre_GenerateLocalPartitioning HYPRE_MULTIPRECISION_FUNC ( hypre_GenerateLocalPartitioning ) +#define hypre_GeneratePartitioning HYPRE_MULTIPRECISION_FUNC ( hypre_GeneratePartitioning ) +#define HYPRE_CSRMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixCreate ) +#define HYPRE_CSRMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixDestroy ) +#define HYPRE_CSRMatrixGetNumRows HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixGetNumRows ) +#define HYPRE_CSRMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixInitialize ) +#define HYPRE_CSRMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixPrint ) +#define HYPRE_CSRMatrixRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_CSRMatrixRead ) +#define HYPRE_MappedMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixAssemble ) +#define HYPRE_MappedMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixCreate ) +#define HYPRE_MappedMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixDestroy ) +#define HYPRE_MappedMatrixGetColIndex HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixGetColIndex ) +#define HYPRE_MappedMatrixGetMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixGetMatrix ) +#define HYPRE_MappedMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixInitialize ) +#define HYPRE_MappedMatrixLimitedDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixLimitedDestroy ) +#define HYPRE_MappedMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixPrint ) +#define HYPRE_MappedMatrixSetColMap HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixSetColMap ) +#define HYPRE_MappedMatrixSetMapData HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixSetMapData ) +#define HYPRE_MappedMatrixSetMatrix HYPRE_MULTIPRECISION_FUNC ( HYPRE_MappedMatrixSetMatrix ) +#define HYPRE_MultiblockMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixAssemble ) +#define HYPRE_MultiblockMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixCreate ) +#define HYPRE_MultiblockMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixDestroy ) +#define HYPRE_MultiblockMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixInitialize ) +#define HYPRE_MultiblockMatrixLimitedDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixLimitedDestroy ) +#define HYPRE_MultiblockMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixPrint ) +#define HYPRE_MultiblockMatrixSetNumSubmatrices HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixSetNumSubmatrices ) +#define HYPRE_MultiblockMatrixSetSubmatrixType HYPRE_MULTIPRECISION_FUNC ( HYPRE_MultiblockMatrixSetSubmatrixType ) +#define HYPRE_VectorCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_VectorCreate ) +#define HYPRE_VectorDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_VectorDestroy ) +#define HYPRE_VectorInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_VectorInitialize ) +#define HYPRE_VectorPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_VectorPrint ) +#define HYPRE_VectorRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_VectorRead ) +#define hypre_MappedMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixAssemble ) +#define hypre_MappedMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixCreate ) +#define hypre_MappedMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixDestroy ) +#define hypre_MappedMatrixGetColIndex HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixGetColIndex ) +#define hypre_MappedMatrixGetMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixGetMatrix ) +#define hypre_MappedMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixInitialize ) +#define hypre_MappedMatrixLimitedDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixLimitedDestroy ) +#define hypre_MappedMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixPrint ) +#define hypre_MappedMatrixSetColMap HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixSetColMap ) +#define hypre_MappedMatrixSetMapData HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixSetMapData ) +#define hypre_MappedMatrixSetMatrix HYPRE_MULTIPRECISION_FUNC ( hypre_MappedMatrixSetMatrix ) +#define hypre_MultiblockMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixAssemble ) +#define hypre_MultiblockMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixCreate ) +#define hypre_MultiblockMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixDestroy ) +#define hypre_MultiblockMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixInitialize ) +#define hypre_MultiblockMatrixLimitedDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixLimitedDestroy ) +#define hypre_MultiblockMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixPrint ) +#define hypre_MultiblockMatrixSetNumSubmatrices HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixSetNumSubmatrices ) +#define hypre_MultiblockMatrixSetSubmatrix HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixSetSubmatrix ) +#define hypre_MultiblockMatrixSetSubmatrixType HYPRE_MULTIPRECISION_FUNC ( hypre_MultiblockMatrixSetSubmatrixType ) +#define hypre_SeqVectorMassAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassAxpy ) +#define hypre_SeqVectorMassAxpy4 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassAxpy4 ) +#define hypre_SeqVectorMassAxpy8 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassAxpy8 ) +#define hypre_SeqVectorMassDotpTwo HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassDotpTwo ) +#define hypre_SeqVectorMassDotpTwo4 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassDotpTwo4 ) +#define hypre_SeqVectorMassDotpTwo8 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassDotpTwo8 ) +#define hypre_SeqVectorMassInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassInnerProd ) +#define hypre_SeqVectorMassInnerProd4 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassInnerProd4 ) +#define hypre_SeqVectorMassInnerProd8 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMassInnerProd8 ) +#define hypre_SeqMultiVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SeqMultiVectorCreate ) +#define hypre_SeqVectorAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorAxpy ) +#define hypre_SeqVectorAxpyHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorAxpyHost ) +#define hypre_SeqVectorAxpyz HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorAxpyz ) +#define hypre_SeqVectorAxpyzHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorAxpyzHost ) +#define hypre_SeqVectorCloneDeep HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorCloneDeep ) +#define hypre_SeqVectorCloneDeep_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorCloneDeep_v2 ) +#define hypre_SeqVectorCloneShallow HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorCloneShallow ) +#define hypre_SeqVectorCopy HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorCopy ) +#define hypre_SeqVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorCreate ) +#define hypre_SeqVectorDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorDestroy ) +#define hypre_SeqVectorElmdivpy HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorElmdivpy ) +#define hypre_SeqVectorElmdivpyHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorElmdivpyHost ) +#define hypre_SeqVectorElmdivpyMarked HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorElmdivpyMarked ) +#define hypre_SeqVectorInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorInitialize ) +#define hypre_SeqVectorInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorInitialize_v2 ) +#define hypre_SeqVectorInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorInnerProd ) +#define hypre_SeqVectorInnerProdHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorInnerProdHost ) +#define hypre_SeqVectorMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorMigrate ) +#define hypre_SeqVectorPrint HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorPrint ) +#define hypre_SeqVectorRead HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorRead ) +#define hypre_SeqVectorResize HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorResize ) +#define hypre_SeqVectorScale HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorScale ) +#define hypre_SeqVectorScaleHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorScaleHost ) +#define hypre_SeqVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSetConstantValues ) +#define hypre_SeqVectorSetConstantValuesHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSetConstantValuesHost ) +#define hypre_SeqVectorSetDataOwner HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSetDataOwner ) +#define hypre_SeqVectorSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSetRandomValues ) +#define hypre_SeqVectorSetSize HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSetSize ) +#define hypre_SeqVectorStridedCopy HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorStridedCopy ) +#define hypre_SeqVectorSumElts HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSumElts ) +#define hypre_SeqVectorSumEltsHost HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorSumEltsHost ) + +#endif diff --git a/src/seq_mv/vector.c b/src/seq_mv/vector.c index d1ad6340c0..0499a7a675 100644 --- a/src/seq_mv/vector.c +++ b/src/seq_mv/vector.c @@ -35,6 +35,10 @@ hypre_SeqVectorCreate( HYPRE_Int size ) hypre_VectorMemoryLocation(vector) = hypre_HandleMemoryLocation(hypre_handle()); +#if defined(HYPRE_MIXED_PRECISION) + hypre_VectorPrecision(vector) = HYPRE_OBJECT_PRECISION; +#endif + return vector; } diff --git a/src/seq_mv/vector.h b/src/seq_mv/vector.h index dab51adfaf..7f64dfe073 100644 --- a/src/seq_mv/vector.h +++ b/src/seq_mv/vector.h @@ -36,8 +36,38 @@ typedef struct With rowwise storage, vj[i] = data[ j + num_vectors*i] */ HYPRE_Int vecstride, idxstride; /* ... so vj[i] = data[ j*vecstride + i*idxstride ] regardless of row_storage.*/ + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision vector_precision; +#endif + } hypre_Vector; +typedef struct +{ + void *data; + HYPRE_Int size; /* Number of elements of a single vector component */ + HYPRE_Int component; /* Index of a multivector component + (used for set/get routines )*/ + HYPRE_Int owns_data; /* Does the Vector create/destroy `data'? */ + HYPRE_MemoryLocation memory_location; /* memory location of data array */ + + /* For multivectors...*/ + HYPRE_Int num_vectors; /* the above "size" is size of one vector */ + HYPRE_Int multivec_storage_method; + /* ...if 0, store colwise v0[0], v0[1], ..., v1[0], v1[1], ... v2[0]... */ + /* ...if 1, store rowwise v0[0], v1[0], ..., v0[1], v1[1], ... */ + /* With colwise storage, vj[i] = data[ j*size + i] + With rowwise storage, vj[i] = data[ j + num_vectors*i] */ + HYPRE_Int vecstride, idxstride; + /* ... so vj[i] = data[ j*vecstride + i*idxstride ] regardless of row_storage.*/ + +#if defined(HYPRE_MIXED_PRECISION) + HYPRE_Precision vector_precision; +#endif + +} hypre_Vector_mp; + /*-------------------------------------------------------------------------- * Accessor functions for the Vector structure *--------------------------------------------------------------------------*/ @@ -55,4 +85,8 @@ typedef struct #define hypre_VectorEntryIJ(vector, i, j) \ ((vector) -> data[((vector) -> vecstride) * j + ((vector) -> idxstride) * i]) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_VectorPrecision(vector) ((vector) -> vector_precision) +#endif + #endif diff --git a/src/sstruct_ls/HYPRE_sstruct_ls.h b/src/sstruct_ls/HYPRE_sstruct_ls.h index d1c9d18c52..85de6324d3 100644 --- a/src/sstruct_ls/HYPRE_sstruct_ls.h +++ b/src/sstruct_ls/HYPRE_sstruct_ls.h @@ -16,6 +16,10 @@ #include "HYPRE_parcsr_ls.h" #include "HYPRE_lobpcg.h" +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/sstruct_ls/Makefile b/src/sstruct_ls/Makefile index a7d4175cb7..858052cd88 100644 --- a/src/sstruct_ls/Makefile +++ b/src/sstruct_ls/Makefile @@ -39,6 +39,19 @@ HEADERS =\ sys_pfmg.h FILES =\ + +CUFILES =\ + fac_amr_fcoarsen.c\ + fac_amr_rap.c\ + fac_restrict2.c\ + fac_setup2.c\ + fac_zero_stencilcoef.c\ + node_relax.c\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ F90_HYPRE_sstruct_bicgstab.c\ F90_HYPRE_sstruct_gmres.c\ F90_HYPRE_sstruct_flexgmres.c\ @@ -49,16 +62,6 @@ FILES =\ F90_HYPRE_sstruct_pcg.c\ F90_HYPRE_sstruct_split.c\ F90_HYPRE_sstruct_sys_pfmg.c\ - HYPRE_sstruct_bicgstab.c\ - HYPRE_sstruct_gmres.c\ - HYPRE_sstruct_flexgmres.c\ - HYPRE_sstruct_lgmres.c\ - HYPRE_sstruct_InterFAC.c\ - HYPRE_sstruct_int.c\ - HYPRE_sstruct_maxwell.c\ - HYPRE_sstruct_pcg.c\ - HYPRE_sstruct_split.c\ - HYPRE_sstruct_sys_pfmg.c\ bsearch.c\ fac.c\ fac_amr_zero_data.c\ @@ -95,19 +98,26 @@ FILES =\ sys_pfmg_setup_rap.c\ sys_pfmg_solve.c\ sys_semi_interp.c\ - sys_semi_restrict.c - -CUFILES =\ - fac_amr_fcoarsen.c\ - fac_amr_rap.c\ - fac_restrict2.c\ - fac_setup2.c\ - fac_zero_stencilcoef.c\ - node_relax.c\ + sys_semi_restrict.c\ + HYPRE_sstruct_bicgstab.c\ + HYPRE_sstruct_gmres.c\ + HYPRE_sstruct_flexgmres.c\ + HYPRE_sstruct_lgmres.c\ + HYPRE_sstruct_InterFAC.c\ + HYPRE_sstruct_int.c\ + HYPRE_sstruct_maxwell.c\ + HYPRE_sstruct_pcg.c\ + HYPRE_sstruct_split.c\ + HYPRE_sstruct_sys_pfmg.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_sstruct_ls-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -118,23 +128,66 @@ SONAME = libHYPRE_sstruct_ls-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_sstruct_ls${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/sstruct_ls_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_sstruct_ls${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_sstruct_ls.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/sstruct_ls_mup_func.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_sstruct_ls.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/sstruct_ls/_hypre_sstruct_ls.h b/src/sstruct_ls/_hypre_sstruct_ls.h index daac65e569..befabfd832 100644 --- a/src/sstruct_ls/_hypre_sstruct_ls.h +++ b/src/sstruct_ls/_hypre_sstruct_ls.h @@ -23,6 +23,10 @@ #include "_hypre_parcsr_ls.h" #include "multivector.h" +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/sstruct_ls/eliminate_rowscols.h b/src/sstruct_ls/eliminate_rowscols.h index 6ca9d907a0..3344b47d89 100644 --- a/src/sstruct_ls/eliminate_rowscols.h +++ b/src/sstruct_ls/eliminate_rowscols.h @@ -8,6 +8,10 @@ #ifndef hypre_PARCSR_ELIMINATE_ROWSCOLS #define hypre_PARCSR_ELIMINATE_ROWSCOLS +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/sstruct_ls/nd1_amge_interpolation.h b/src/sstruct_ls/nd1_amge_interpolation.h index 049b33a83b..96f7fde065 100644 --- a/src/sstruct_ls/nd1_amge_interpolation.h +++ b/src/sstruct_ls/nd1_amge_interpolation.h @@ -8,6 +8,10 @@ #ifndef hypre_ND1_AMGE_INTERPOLATION #define hypre_ND1_AMGE_INTERPOLATION +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_ls_mup_func.h" +#endif + /* Function: hypre_ND1AMGeInterpolation diff --git a/src/sstruct_ls/sstruct_ls_func_header b/src/sstruct_ls/sstruct_ls_func_header new file mode 100755 index 0000000000..fb09f6d075 --- /dev/null +++ b/src/sstruct_ls/sstruct_ls_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=sstruct_ls_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'sstruct_ls_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SSTRUCT_LS_MUP_FUNC_HEADER +#define SSTRUCT_LS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=sstruct_ls_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/sstruct_ls/sstruct_ls_functions.saved b/src/sstruct_ls/sstruct_ls_functions.saved new file mode 100644 index 0000000000..62647a44cb --- /dev/null +++ b/src/sstruct_ls/sstruct_ls_functions.saved @@ -0,0 +1,488 @@ +hypre_LowerBinarySearch +hypre_UpperBinarySearch +hypre_CSRMatrixEliminateColsOffd +hypre_CSRMatrixEliminateRowsColsDiag +hypre_CSRMatrixEliminateRowsOffd +hypre_ParCSRMatrixEliminateRowsCols +hypre_sstructbicgstabcreate +hypre_sstructbicgstabdestroy +hypre_sstructbicgstabgetfinalre +hypre_sstructbicgstabgetnumiter +hypre_sstructbicgstabgetresidua +hypre_sstructbicgstabsetabsolutetol +hypre_sstructbicgstabsetlogging +hypre_sstructbicgstabsetmaxiter +hypre_sstructbicgstabsetminiter +hypre_sstructbicgstabsetprecond +hypre_sstructbicgstabsetprintle +hypre_sstructbicgstabsetstopcri +hypre_sstructbicgstabsettol +hypre_sstructbicgstabsetup +hypre_sstructbicgstabsolve +hypre_sstructflexgmrescreate +hypre_sstructflexgmresdestroy +hypre_sstructflexgmresgetfinalrelat +hypre_sstructflexgmresgetnumiterati +hypre_sstructflexgmresgetresidual +hypre_sstructflexgmressetabsolutetol +hypre_sstructflexgmressetkdim +hypre_sstructflexgmressetlogging +hypre_sstructflexgmressetmaxiter +hypre_sstructflexgmressetminiter +hypre_sstructflexgmressetprecond +hypre_sstructflexgmressetprintlevel +hypre_sstructflexgmressettol +hypre_sstructflexgmressetup +hypre_sstructflexgmressolve +hypre_sstructgmrescreate +hypre_sstructgmresdestroy +hypre_sstructgmresgetfinalrelat +hypre_sstructgmresgetnumiterati +hypre_sstructgmresgetresidual +hypre_sstructgmressetabsolutetol +hypre_sstructgmressetkdim +hypre_sstructgmressetlogging +hypre_sstructgmressetmaxiter +hypre_sstructgmressetminiter +hypre_sstructgmressetprecond +hypre_sstructgmressetprintlevel +hypre_sstructgmressetstopcrit +hypre_sstructgmressettol +hypre_sstructgmressetup +hypre_sstructgmressolve +hypre_sstructfacamrrap +hypre_sstructfaccreate +hypre_sstructfacdestroy2 +hypre_sstructfacgetfinalrelativ +hypre_sstructfacgetnumiteration +hypre_sstructfacsetcoarsesolver +hypre_sstructfacsetjacobiweigh +hypre_sstructfacsetlogging +hypre_sstructfacsetmaxiter +hypre_sstructfacsetmaxlevels +hypre_sstructfacsetnonzeroguess +hypre_sstructfacsetnumpostrelax +hypre_sstructfacsetnumprerelax +hypre_sstructfacsetplevels +hypre_sstructfacsetprefinements +hypre_sstructfacsetrelaxtype +hypre_sstructfacsetrelchange +hypre_sstructfacsettol +hypre_sstructfacsetup2 +hypre_sstructfacsetzeroguess +hypre_sstructfacsolve3 +hypre_sstructfaczeroamrmatrixdata +hypre_sstructfaczeroamrvectordata +hypre_sstructfaczerocfsten +hypre_sstructfaczerofcsten +hypre_sstructpvectorsetrandomva +hypre_sstructsetrandomvalues +hypre_sstructsetupinterpreter +hypre_sstructsetupmatvec +hypre_sstructvectorsetrandomval +hypre_sstructlgmrescreate +hypre_sstructlgmresdestroy +hypre_sstructlgmresgetfinalrelat +hypre_sstructlgmresgetnumiterati +hypre_sstructlgmresgetresidual +hypre_sstructlgmressetabsolutetol +hypre_sstructlgmressetaugdim +hypre_sstructlgmressetkdim +hypre_sstructlgmressetlogging +hypre_sstructlgmressetmaxiter +hypre_sstructlgmressetminiter +hypre_sstructlgmressetprecond +hypre_sstructlgmressetprintlevel +hypre_sstructlgmressettol +hypre_sstructlgmressetup +hypre_sstructlgmressolve +hypre_maxwellgrad +hypre_sstructmaxwellcreate +hypre_sstructmaxwelldestroy +hypre_sstructmaxwelleliminatero +hypre_sstructmaxwellgetfinalrel +hypre_sstructmaxwellgetnumitera +hypre_sstructmaxwellphysbdy +hypre_sstructmaxwellprintloggin +hypre_sstructmaxwellsetconstant +hypre_sstructmaxwellsetgrad +hypre_sstructmaxwellsetlogging +hypre_sstructmaxwellsetmaxiter +hypre_sstructmaxwellsetnumpostr +hypre_sstructmaxwellsetnumprere +hypre_sstructmaxwellsetprintlev +hypre_sstructmaxwellsetrelchang +hypre_sstructmaxwellsetrfactors +hypre_sstructmaxwellsettol +hypre_sstructmaxwellsetup +hypre_sstructmaxwellsolve +hypre_sstructmaxwellsolve2 +hypre_sstructmaxwellzerovector +hypre_sstructdiagscale +hypre_sstructdiagscalesetup +hypre_sstructpcgcreate +hypre_sstructpcgdestroy +hypre_sstructpcggetfinalrelativ +hypre_sstructpcggetnumiteration +hypre_sstructpcggetresidual +hypre_sstructpcgsetabsolutetol +hypre_sstructpcgsetlogging +hypre_sstructpcgsetmaxiter +hypre_sstructpcgsetprecond +hypre_sstructpcgsetprintlevel +hypre_sstructpcgsetrelchange +hypre_sstructpcgsettol +hypre_sstructpcgsettwonorm +hypre_sstructpcgsetup +hypre_sstructpcgsolve +hypre_sstructsplitcreate +hypre_sstructsplitdestroy +hypre_sstructsplitgetfinalrelat +hypre_sstructsplitgetnumiterati +hypre_sstructsplitsetmaxiter +hypre_sstructsplitsetnonzerogue +hypre_sstructsplitsetstructsolv +hypre_sstructsplitsettol +hypre_sstructsplitsetup +hypre_sstructsplitsetzeroguess +hypre_sstructsplitsolve +hypre_sstructsyspfmgcreate +hypre_sstructsyspfmgdestroy +hypre_sstructsyspfmggetfinalrel +hypre_sstructsyspfmggetnumitera +hypre_sstructsyspfmgsetdxyz +hypre_sstructsyspfmgsetjacobiweigh +hypre_sstructsyspfmgsetlogging +hypre_sstructsyspfmgsetmaxiter +hypre_sstructsyspfmgsetnonzerog +hypre_sstructsyspfmgsetnumpostr +hypre_sstructsyspfmgsetnumprere +hypre_sstructsyspfmgsetprintlev +hypre_sstructsyspfmgsetrelaxtyp +hypre_sstructsyspfmgsetrelchang +hypre_sstructsyspfmgsetskiprela +hypre_sstructsyspfmgsettol +hypre_sstructsyspfmgsetup +hypre_sstructsyspfmgsetzerogues +hypre_sstructsyspfmgsolve +hypre_AMR_FCoarsen +hypre_AMR_RAP +hypre_ZeroAMRMatrixData +hypre_ZeroAMRVectorData +hypre_AMR_CFCoarsen +hypre_CFInterfaceExtents +hypre_CFInterfaceExtents2 +hypre_CF_StenBox +hypre_FAC_IdentityInterp2 +hypre_FacSemiInterpCreate2 +hypre_FacSemiInterpDestroy2 +hypre_FacSemiInterpSetup2 +hypre_FAC_WeightedInterp2 +hypre_FACCreate +hypre_FACDestroy2 +hypre_FACGetFinalRelativeResidualNorm +hypre_FACGetNumIterations +hypre_FACPrintLogging +hypre_FACSetCoarseSolverType +hypre_FACSetJacobiWeight +hypre_FACSetLogging +hypre_FACSetMaxIter +hypre_FACSetMaxLevels +hypre_FACSetNumPostSmooth +hypre_FACSetNumPreSmooth +hypre_FACSetPLevels +hypre_FACSetPRefinements +hypre_FACSetRelaxType +hypre_FACSetRelChange +hypre_FACSetTol +hypre_FACSetZeroGuess +hypre_FacLocalRelax +hypre_FACRestrict2 +hypre_FacSemiRestrictCreate2 +hypre_FacSemiRestrictDestroy2 +hypre_FacSemiRestrictSetup2 +hypre_FacSetup2 +hypre_FACSolve3 +hypre_FacZeroCData +hypre_FacZeroCFSten +hypre_FacZeroFCSten +HYPRE_SStructBiCGSTABCreate +HYPRE_SStructBiCGSTABDestroy +HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm +HYPRE_SStructBiCGSTABGetNumIterations +HYPRE_SStructBiCGSTABGetResidual +HYPRE_SStructBiCGSTABSetAbsoluteTol +HYPRE_SStructBiCGSTABSetLogging +HYPRE_SStructBiCGSTABSetMaxIter +HYPRE_SStructBiCGSTABSetMinIter +HYPRE_SStructBiCGSTABSetPrecond +HYPRE_SStructBiCGSTABSetPrintLevel +HYPRE_SStructBiCGSTABSetStopCrit +HYPRE_SStructBiCGSTABSetTol +HYPRE_SStructBiCGSTABSetup +HYPRE_SStructBiCGSTABSolve +HYPRE_SStructFlexGMRESCreate +HYPRE_SStructFlexGMRESDestroy +HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm +HYPRE_SStructFlexGMRESGetNumIterations +HYPRE_SStructFlexGMRESGetResidual +HYPRE_SStructFlexGMRESSetAbsoluteTol +HYPRE_SStructFlexGMRESSetKDim +HYPRE_SStructFlexGMRESSetLogging +HYPRE_SStructFlexGMRESSetMaxIter +HYPRE_SStructFlexGMRESSetMinIter +HYPRE_SStructFlexGMRESSetModifyPC +HYPRE_SStructFlexGMRESSetPrecond +HYPRE_SStructFlexGMRESSetPrintLevel +HYPRE_SStructFlexGMRESSetTol +HYPRE_SStructFlexGMRESSetup +HYPRE_SStructFlexGMRESSolve +HYPRE_SStructGMRESCreate +HYPRE_SStructGMRESDestroy +HYPRE_SStructGMRESGetFinalRelativeResidualNorm +HYPRE_SStructGMRESGetNumIterations +HYPRE_SStructGMRESGetResidual +HYPRE_SStructGMRESSetAbsoluteTol +HYPRE_SStructGMRESSetKDim +HYPRE_SStructGMRESSetLogging +HYPRE_SStructGMRESSetMaxIter +HYPRE_SStructGMRESSetMinIter +HYPRE_SStructGMRESSetPrecond +HYPRE_SStructGMRESSetPrintLevel +HYPRE_SStructGMRESSetStopCrit +HYPRE_SStructGMRESSetTol +HYPRE_SStructGMRESSetup +HYPRE_SStructGMRESSolve +HYPRE_SStructFACAMR_RAP +HYPRE_SStructFACCreate +HYPRE_SStructFACDestroy2 +HYPRE_SStructFACGetFinalRelativeResidualNorm +HYPRE_SStructFACGetNumIterations +HYPRE_SStructFACSetCoarseSolverType +HYPRE_SStructFACSetJacobiWeight +HYPRE_SStructFACSetLogging +HYPRE_SStructFACSetMaxIter +HYPRE_SStructFACSetMaxLevels +HYPRE_SStructFACSetNonZeroGuess +HYPRE_SStructFACSetNumPostRelax +HYPRE_SStructFACSetNumPreRelax +HYPRE_SStructFACSetPLevels +HYPRE_SStructFACSetPRefinements +HYPRE_SStructFACSetRelaxType +HYPRE_SStructFACSetRelChange +HYPRE_SStructFACSetTol +HYPRE_SStructFACSetup2 +HYPRE_SStructFACSetZeroGuess +HYPRE_SStructFACSolve3 +HYPRE_SStructFACZeroAMRMatrixData +HYPRE_SStructFACZeroAMRVectorData +HYPRE_SStructFACZeroCFSten +HYPRE_SStructFACZeroFCSten +hypre_SStructPVectorSetRandomValues +hypre_SStructSetRandomValues +HYPRE_SStructSetupInterpreter +HYPRE_SStructSetupMatvec +hypre_SStructVectorSetRandomValues +HYPRE_SStructLGMRESCreate +HYPRE_SStructLGMRESDestroy +HYPRE_SStructLGMRESGetFinalRelativeResidualNorm +HYPRE_SStructLGMRESGetNumIterations +HYPRE_SStructLGMRESGetResidual +HYPRE_SStructLGMRESSetAbsoluteTol +HYPRE_SStructLGMRESSetAugDim +HYPRE_SStructLGMRESSetKDim +HYPRE_SStructLGMRESSetLogging +HYPRE_SStructLGMRESSetMaxIter +HYPRE_SStructLGMRESSetMinIter +HYPRE_SStructLGMRESSetPrecond +HYPRE_SStructLGMRESSetPrintLevel +HYPRE_SStructLGMRESSetTol +HYPRE_SStructLGMRESSetup +HYPRE_SStructLGMRESSolve +HYPRE_MaxwellGrad +HYPRE_SStructMaxwellCreate +HYPRE_SStructMaxwellDestroy +HYPRE_SStructMaxwellEliminateRowsCols +HYPRE_SStructMaxwellGetFinalRelativeResidualNorm +HYPRE_SStructMaxwellGetNumIterations +HYPRE_SStructMaxwellPhysBdy +HYPRE_SStructMaxwellPrintLogging +HYPRE_SStructMaxwellSetConstantCoef +HYPRE_SStructMaxwellSetGrad +HYPRE_SStructMaxwellSetLogging +HYPRE_SStructMaxwellSetMaxIter +HYPRE_SStructMaxwellSetNumPostRelax +HYPRE_SStructMaxwellSetNumPreRelax +HYPRE_SStructMaxwellSetPrintLevel +HYPRE_SStructMaxwellSetRelChange +HYPRE_SStructMaxwellSetRfactors +HYPRE_SStructMaxwellSetTol +HYPRE_SStructMaxwellSetup +HYPRE_SStructMaxwellSolve +HYPRE_SStructMaxwellSolve2 +HYPRE_SStructMaxwellZeroVector +HYPRE_SStructDiagScale +HYPRE_SStructDiagScaleSetup +HYPRE_SStructPCGCreate +HYPRE_SStructPCGDestroy +HYPRE_SStructPCGGetFinalRelativeResidualNorm +HYPRE_SStructPCGGetNumIterations +HYPRE_SStructPCGGetResidual +HYPRE_SStructPCGSetAbsoluteTol +HYPRE_SStructPCGSetLogging +HYPRE_SStructPCGSetMaxIter +HYPRE_SStructPCGSetPrecond +HYPRE_SStructPCGSetPrintLevel +HYPRE_SStructPCGSetRelChange +HYPRE_SStructPCGSetTol +HYPRE_SStructPCGSetTwoNorm +HYPRE_SStructPCGSetup +HYPRE_SStructPCGSolve +HYPRE_SStructSplitCreate +HYPRE_SStructSplitDestroy +HYPRE_SStructSplitGetFinalRelativeResidualNorm +HYPRE_SStructSplitGetNumIterations +HYPRE_SStructSplitSetMaxIter +HYPRE_SStructSplitSetNonZeroGuess +HYPRE_SStructSplitSetStructSolver +HYPRE_SStructSplitSetTol +HYPRE_SStructSplitSetup +HYPRE_SStructSplitSetZeroGuess +HYPRE_SStructSplitSolve +HYPRE_SStructSysPFMGCreate +HYPRE_SStructSysPFMGDestroy +HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm +HYPRE_SStructSysPFMGGetNumIterations +HYPRE_SStructSysPFMGSetDxyz +HYPRE_SStructSysPFMGSetJacobiWeight +HYPRE_SStructSysPFMGSetLogging +HYPRE_SStructSysPFMGSetMaxIter +HYPRE_SStructSysPFMGSetNonZeroGuess +HYPRE_SStructSysPFMGSetNumPostRelax +HYPRE_SStructSysPFMGSetNumPreRelax +HYPRE_SStructSysPFMGSetPrintLevel +HYPRE_SStructSysPFMGSetRelaxType +HYPRE_SStructSysPFMGSetRelChange +HYPRE_SStructSysPFMGSetSkipRelax +HYPRE_SStructSysPFMGSetTol +HYPRE_SStructSysPFMGSetup +HYPRE_SStructSysPFMGSetZeroGuess +HYPRE_SStructSysPFMGSolve +hypre_SStructKrylovIdentity +hypre_SStructKrylovIdentitySetup +hypre_SStructKrylovAxpy +hypre_SStructKrylovCAlloc +hypre_SStructKrylovClearVector +hypre_SStructKrylovCommInfo +hypre_SStructKrylovCopyVector +hypre_SStructKrylovCreateVector +hypre_SStructKrylovCreateVectorArray +hypre_SStructKrylovDestroyVector +hypre_SStructKrylovFree +hypre_SStructKrylovInnerProd +hypre_SStructKrylovMatvec +hypre_SStructKrylovMatvecCreate +hypre_SStructKrylovMatvecDestroy +hypre_SStructKrylovScaleVector +hypre_Maxwell_Grad +hypre_Maxwell_PhysBdy +hypre_Maxwell_VarBdy +hypre_Maxwell_PNedelec_Bdy +hypre_Maxwell_PNedelec +hypre_CollapseStencilToStencil +hypre_CreatePTopology +hypre_DestroyPTopology +hypre_Maxwell_PTopology +hypre_TriDiagSolve +hypre_MaxwellSolve2 +hypre_MaxwellSolve +hypre_MaxwellGetFinalRelativeResidualNorm +hypre_MaxwellGetNumIterations +hypre_MaxwellPrintLogging +hypre_MaxwellSetConstantCoef +hypre_MaxwellSetGrad +hypre_MaxwellSetLogging +hypre_MaxwellSetMaxIter +hypre_MaxwellSetNumPostRelax +hypre_MaxwellSetNumPreRelax +hypre_MaxwellSetPrintLevel +hypre_MaxwellSetRelChange +hypre_MaxwellSetRfactors +hypre_MaxwellSetTol +hypre_MaxwellTVCreate +hypre_MaxwellTVDestroy +hypre_BoxContraction +hypre_CoarsenPGrid +hypre_MaxwellTV_Setup +hypre_ParVectorZeroBCValues +hypre_SeqVectorZeroBCValues +hypre_HarmonicExtension +hypre_ND1AMGeInterpolation +hypre_NodeRelax +hypre_NodeRelaxCreate +hypre_NodeRelaxDestroy +hypre_NodeRelaxSetMaxIter +hypre_NodeRelaxSetNodeset +hypre_NodeRelaxSetNodesetRank +hypre_NodeRelaxSetNumNodesets +hypre_NodeRelaxSetTempVec +hypre_NodeRelaxSetTol +hypre_NodeRelaxSetup +hypre_NodeRelaxSetWeight +hypre_NodeRelaxSetZeroGuess +hypre_SStructAMRInterCommunication +hypre_SStructIndexScaleC_F +hypre_SStructIndexScaleF_C +hypre_SStructOwnInfo +hypre_SStructOwnInfoDataDestroy +hypre_SStructRecvInfo +hypre_SStructRecvInfoDataDestroy +hypre_SStructSendInfo +hypre_SStructSendInfoDataDestroy +hypre_MaxwellOffProcRowCreate +hypre_MaxwellOffProcRowDestroy +hypre_SStructSharedDOF_ParcsrMatRowsComm +hypre_SysPFMGCreate +hypre_SysPFMGDestroy +hypre_SysPFMGGetFinalRelativeResidualNorm +hypre_SysPFMGGetNumIterations +hypre_SysPFMGPrintLogging +hypre_SysPFMGSetDxyz +hypre_SysPFMGSetJacobiWeight +hypre_SysPFMGSetLogging +hypre_SysPFMGSetMaxIter +hypre_SysPFMGSetNumPostRelax +hypre_SysPFMGSetNumPreRelax +hypre_SysPFMGSetPrintLevel +hypre_SysPFMGSetRelaxType +hypre_SysPFMGSetRelChange +hypre_SysPFMGSetSkipRelax +hypre_SysPFMGSetTol +hypre_SysPFMGSetZeroGuess +hypre_SysPFMGRelax +hypre_SysPFMGRelaxCreate +hypre_SysPFMGRelaxDestroy +hypre_SysPFMGRelaxSetJacobiWeight +hypre_SysPFMGRelaxSetMaxIter +hypre_SysPFMGRelaxSetPostRelax +hypre_SysPFMGRelaxSetPreRelax +hypre_SysPFMGRelaxSetTempVec +hypre_SysPFMGRelaxSetTol +hypre_SysPFMGRelaxSetType +hypre_SysPFMGRelaxSetup +hypre_SysPFMGRelaxSetZeroGuess +hypre_SysPFMGCreateInterpOp +hypre_SysPFMGSetupInterpOp +hypre_SysPFMGSetup +hypre_SysStructCoarsen +hypre_SysPFMGCreateRAPOp +hypre_SysPFMGSetupRAPOp +hypre_SysPFMGSolve +hypre_SysSemiInterp +hypre_SysSemiInterpCreate +hypre_SysSemiInterpDestroy +hypre_SysSemiInterpSetup +hypre_SysSemiRestrict +hypre_SysSemiRestrictCreate +hypre_SysSemiRestrictDestroy +hypre_SysSemiRestrictSetup diff --git a/src/sstruct_ls/sstruct_ls_mup_func.h b/src/sstruct_ls/sstruct_ls_mup_func.h new file mode 100644 index 0000000000..5ff5406612 --- /dev/null +++ b/src/sstruct_ls/sstruct_ls_mup_func.h @@ -0,0 +1,508 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'sstruct_ls_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SSTRUCT_LS_MUP_FUNC_HEADER +#define SSTRUCT_LS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_LowerBinarySearch HYPRE_MULTIPRECISION_FUNC ( hypre_LowerBinarySearch ) +#define hypre_UpperBinarySearch HYPRE_MULTIPRECISION_FUNC ( hypre_UpperBinarySearch ) +#define hypre_CSRMatrixEliminateColsOffd HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixEliminateColsOffd ) +#define hypre_CSRMatrixEliminateRowsColsDiag HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixEliminateRowsColsDiag ) +#define hypre_CSRMatrixEliminateRowsOffd HYPRE_MULTIPRECISION_FUNC ( hypre_CSRMatrixEliminateRowsOffd ) +#define hypre_ParCSRMatrixEliminateRowsCols HYPRE_MULTIPRECISION_FUNC ( hypre_ParCSRMatrixEliminateRowsCols ) +#define hypre_sstructbicgstabcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabcreate ) +#define hypre_sstructbicgstabdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabdestroy ) +#define hypre_sstructbicgstabgetfinalre HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabgetfinalre ) +#define hypre_sstructbicgstabgetnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabgetnumiter ) +#define hypre_sstructbicgstabgetresidua HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabgetresidua ) +#define hypre_sstructbicgstabsetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetabsolutetol ) +#define hypre_sstructbicgstabsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetlogging ) +#define hypre_sstructbicgstabsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetmaxiter ) +#define hypre_sstructbicgstabsetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetminiter ) +#define hypre_sstructbicgstabsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetprecond ) +#define hypre_sstructbicgstabsetprintle HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetprintle ) +#define hypre_sstructbicgstabsetstopcri HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetstopcri ) +#define hypre_sstructbicgstabsettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsettol ) +#define hypre_sstructbicgstabsetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsetup ) +#define hypre_sstructbicgstabsolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructbicgstabsolve ) +#define hypre_sstructflexgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmrescreate ) +#define hypre_sstructflexgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmresdestroy ) +#define hypre_sstructflexgmresgetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmresgetfinalrelat ) +#define hypre_sstructflexgmresgetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmresgetnumiterati ) +#define hypre_sstructflexgmresgetresidual HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmresgetresidual ) +#define hypre_sstructflexgmressetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetabsolutetol ) +#define hypre_sstructflexgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetkdim ) +#define hypre_sstructflexgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetlogging ) +#define hypre_sstructflexgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetmaxiter ) +#define hypre_sstructflexgmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetminiter ) +#define hypre_sstructflexgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetprecond ) +#define hypre_sstructflexgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetprintlevel ) +#define hypre_sstructflexgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressettol ) +#define hypre_sstructflexgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressetup ) +#define hypre_sstructflexgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructflexgmressolve ) +#define hypre_sstructgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmrescreate ) +#define hypre_sstructgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmresdestroy ) +#define hypre_sstructgmresgetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmresgetfinalrelat ) +#define hypre_sstructgmresgetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmresgetnumiterati ) +#define hypre_sstructgmresgetresidual HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmresgetresidual ) +#define hypre_sstructgmressetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetabsolutetol ) +#define hypre_sstructgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetkdim ) +#define hypre_sstructgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetlogging ) +#define hypre_sstructgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetmaxiter ) +#define hypre_sstructgmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetminiter ) +#define hypre_sstructgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetprecond ) +#define hypre_sstructgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetprintlevel ) +#define hypre_sstructgmressetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetstopcrit ) +#define hypre_sstructgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressettol ) +#define hypre_sstructgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressetup ) +#define hypre_sstructgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgmressolve ) +#define hypre_sstructfacamrrap HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacamrrap ) +#define hypre_sstructfaccreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfaccreate ) +#define hypre_sstructfacdestroy2 HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacdestroy2 ) +#define hypre_sstructfacgetfinalrelativ HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacgetfinalrelativ ) +#define hypre_sstructfacgetnumiteration HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacgetnumiteration ) +#define hypre_sstructfacsetcoarsesolver HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetcoarsesolver ) +#define hypre_sstructfacsetjacobiweigh HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetjacobiweigh ) +#define hypre_sstructfacsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetlogging ) +#define hypre_sstructfacsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetmaxiter ) +#define hypre_sstructfacsetmaxlevels HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetmaxlevels ) +#define hypre_sstructfacsetnonzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetnonzeroguess ) +#define hypre_sstructfacsetnumpostrelax HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetnumpostrelax ) +#define hypre_sstructfacsetnumprerelax HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetnumprerelax ) +#define hypre_sstructfacsetplevels HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetplevels ) +#define hypre_sstructfacsetprefinements HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetprefinements ) +#define hypre_sstructfacsetrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetrelaxtype ) +#define hypre_sstructfacsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetrelchange ) +#define hypre_sstructfacsettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsettol ) +#define hypre_sstructfacsetup2 HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetup2 ) +#define hypre_sstructfacsetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsetzeroguess ) +#define hypre_sstructfacsolve3 HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfacsolve3 ) +#define hypre_sstructfaczeroamrmatrixdata HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfaczeroamrmatrixdata ) +#define hypre_sstructfaczeroamrvectordata HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfaczeroamrvectordata ) +#define hypre_sstructfaczerocfsten HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfaczerocfsten ) +#define hypre_sstructfaczerofcsten HYPRE_MULTIPRECISION_FUNC ( hypre_sstructfaczerofcsten ) +#define hypre_sstructpvectorsetrandomva HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpvectorsetrandomva ) +#define hypre_sstructsetrandomvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsetrandomvalues ) +#define hypre_sstructsetupinterpreter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsetupinterpreter ) +#define hypre_sstructsetupmatvec HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsetupmatvec ) +#define hypre_sstructvectorsetrandomval HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorsetrandomval ) +#define hypre_sstructlgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmrescreate ) +#define hypre_sstructlgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmresdestroy ) +#define hypre_sstructlgmresgetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmresgetfinalrelat ) +#define hypre_sstructlgmresgetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmresgetnumiterati ) +#define hypre_sstructlgmresgetresidual HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmresgetresidual ) +#define hypre_sstructlgmressetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetabsolutetol ) +#define hypre_sstructlgmressetaugdim HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetaugdim ) +#define hypre_sstructlgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetkdim ) +#define hypre_sstructlgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetlogging ) +#define hypre_sstructlgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetmaxiter ) +#define hypre_sstructlgmressetminiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetminiter ) +#define hypre_sstructlgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetprecond ) +#define hypre_sstructlgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetprintlevel ) +#define hypre_sstructlgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressettol ) +#define hypre_sstructlgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressetup ) +#define hypre_sstructlgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructlgmressolve ) +#define hypre_maxwellgrad HYPRE_MULTIPRECISION_FUNC ( hypre_maxwellgrad ) +#define hypre_sstructmaxwellcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellcreate ) +#define hypre_sstructmaxwelldestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwelldestroy ) +#define hypre_sstructmaxwelleliminatero HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwelleliminatero ) +#define hypre_sstructmaxwellgetfinalrel HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellgetfinalrel ) +#define hypre_sstructmaxwellgetnumitera HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellgetnumitera ) +#define hypre_sstructmaxwellphysbdy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellphysbdy ) +#define hypre_sstructmaxwellprintloggin HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellprintloggin ) +#define hypre_sstructmaxwellsetconstant HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetconstant ) +#define hypre_sstructmaxwellsetgrad HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetgrad ) +#define hypre_sstructmaxwellsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetlogging ) +#define hypre_sstructmaxwellsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetmaxiter ) +#define hypre_sstructmaxwellsetnumpostr HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetnumpostr ) +#define hypre_sstructmaxwellsetnumprere HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetnumprere ) +#define hypre_sstructmaxwellsetprintlev HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetprintlev ) +#define hypre_sstructmaxwellsetrelchang HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetrelchang ) +#define hypre_sstructmaxwellsetrfactors HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetrfactors ) +#define hypre_sstructmaxwellsettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsettol ) +#define hypre_sstructmaxwellsetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsetup ) +#define hypre_sstructmaxwellsolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsolve ) +#define hypre_sstructmaxwellsolve2 HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellsolve2 ) +#define hypre_sstructmaxwellzerovector HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmaxwellzerovector ) +#define hypre_sstructdiagscale HYPRE_MULTIPRECISION_FUNC ( hypre_sstructdiagscale ) +#define hypre_sstructdiagscalesetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructdiagscalesetup ) +#define hypre_sstructpcgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgcreate ) +#define hypre_sstructpcgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgdestroy ) +#define hypre_sstructpcggetfinalrelativ HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcggetfinalrelativ ) +#define hypre_sstructpcggetnumiteration HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcggetnumiteration ) +#define hypre_sstructpcggetresidual HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcggetresidual ) +#define hypre_sstructpcgsetabsolutetol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetabsolutetol ) +#define hypre_sstructpcgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetlogging ) +#define hypre_sstructpcgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetmaxiter ) +#define hypre_sstructpcgsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetprecond ) +#define hypre_sstructpcgsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetprintlevel ) +#define hypre_sstructpcgsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetrelchange ) +#define hypre_sstructpcgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsettol ) +#define hypre_sstructpcgsettwonorm HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsettwonorm ) +#define hypre_sstructpcgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsetup ) +#define hypre_sstructpcgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructpcgsolve ) +#define hypre_sstructsplitcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitcreate ) +#define hypre_sstructsplitdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitdestroy ) +#define hypre_sstructsplitgetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitgetfinalrelat ) +#define hypre_sstructsplitgetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitgetnumiterati ) +#define hypre_sstructsplitsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsetmaxiter ) +#define hypre_sstructsplitsetnonzerogue HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsetnonzerogue ) +#define hypre_sstructsplitsetstructsolv HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsetstructsolv ) +#define hypre_sstructsplitsettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsettol ) +#define hypre_sstructsplitsetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsetup ) +#define hypre_sstructsplitsetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsetzeroguess ) +#define hypre_sstructsplitsolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsplitsolve ) +#define hypre_sstructsyspfmgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgcreate ) +#define hypre_sstructsyspfmgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgdestroy ) +#define hypre_sstructsyspfmggetfinalrel HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmggetfinalrel ) +#define hypre_sstructsyspfmggetnumitera HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmggetnumitera ) +#define hypre_sstructsyspfmgsetdxyz HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetdxyz ) +#define hypre_sstructsyspfmgsetjacobiweigh HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetjacobiweigh ) +#define hypre_sstructsyspfmgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetlogging ) +#define hypre_sstructsyspfmgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetmaxiter ) +#define hypre_sstructsyspfmgsetnonzerog HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetnonzerog ) +#define hypre_sstructsyspfmgsetnumpostr HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetnumpostr ) +#define hypre_sstructsyspfmgsetnumprere HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetnumprere ) +#define hypre_sstructsyspfmgsetprintlev HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetprintlev ) +#define hypre_sstructsyspfmgsetrelaxtyp HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetrelaxtyp ) +#define hypre_sstructsyspfmgsetrelchang HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetrelchang ) +#define hypre_sstructsyspfmgsetskiprela HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetskiprela ) +#define hypre_sstructsyspfmgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsettol ) +#define hypre_sstructsyspfmgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetup ) +#define hypre_sstructsyspfmgsetzerogues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsetzerogues ) +#define hypre_sstructsyspfmgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_sstructsyspfmgsolve ) +#define hypre_AMR_FCoarsen HYPRE_MULTIPRECISION_FUNC ( hypre_AMR_FCoarsen ) +#define hypre_AMR_RAP HYPRE_MULTIPRECISION_FUNC ( hypre_AMR_RAP ) +#define hypre_ZeroAMRMatrixData HYPRE_MULTIPRECISION_FUNC ( hypre_ZeroAMRMatrixData ) +#define hypre_ZeroAMRVectorData HYPRE_MULTIPRECISION_FUNC ( hypre_ZeroAMRVectorData ) +#define hypre_AMR_CFCoarsen HYPRE_MULTIPRECISION_FUNC ( hypre_AMR_CFCoarsen ) +#define hypre_CFInterfaceExtents HYPRE_MULTIPRECISION_FUNC ( hypre_CFInterfaceExtents ) +#define hypre_CFInterfaceExtents2 HYPRE_MULTIPRECISION_FUNC ( hypre_CFInterfaceExtents2 ) +#define hypre_CF_StenBox HYPRE_MULTIPRECISION_FUNC ( hypre_CF_StenBox ) +#define hypre_FAC_IdentityInterp2 HYPRE_MULTIPRECISION_FUNC ( hypre_FAC_IdentityInterp2 ) +#define hypre_FacSemiInterpCreate2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSemiInterpCreate2 ) +#define hypre_FacSemiInterpDestroy2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSemiInterpDestroy2 ) +#define hypre_FacSemiInterpSetup2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSemiInterpSetup2 ) +#define hypre_FAC_WeightedInterp2 HYPRE_MULTIPRECISION_FUNC ( hypre_FAC_WeightedInterp2 ) +#define hypre_FACCreate HYPRE_MULTIPRECISION_FUNC ( hypre_FACCreate ) +#define hypre_FACDestroy2 HYPRE_MULTIPRECISION_FUNC ( hypre_FACDestroy2 ) +#define hypre_FACGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_FACGetFinalRelativeResidualNorm ) +#define hypre_FACGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_FACGetNumIterations ) +#define hypre_FACPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_FACPrintLogging ) +#define hypre_FACSetCoarseSolverType HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetCoarseSolverType ) +#define hypre_FACSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetJacobiWeight ) +#define hypre_FACSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetLogging ) +#define hypre_FACSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetMaxIter ) +#define hypre_FACSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetMaxLevels ) +#define hypre_FACSetNumPostSmooth HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetNumPostSmooth ) +#define hypre_FACSetNumPreSmooth HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetNumPreSmooth ) +#define hypre_FACSetPLevels HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetPLevels ) +#define hypre_FACSetPRefinements HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetPRefinements ) +#define hypre_FACSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetRelaxType ) +#define hypre_FACSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetRelChange ) +#define hypre_FACSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetTol ) +#define hypre_FACSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_FACSetZeroGuess ) +#define hypre_FacLocalRelax HYPRE_MULTIPRECISION_FUNC ( hypre_FacLocalRelax ) +#define hypre_FACRestrict2 HYPRE_MULTIPRECISION_FUNC ( hypre_FACRestrict2 ) +#define hypre_FacSemiRestrictCreate2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSemiRestrictCreate2 ) +#define hypre_FacSemiRestrictDestroy2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSemiRestrictDestroy2 ) +#define hypre_FacSemiRestrictSetup2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSemiRestrictSetup2 ) +#define hypre_FacSetup2 HYPRE_MULTIPRECISION_FUNC ( hypre_FacSetup2 ) +#define hypre_FACSolve3 HYPRE_MULTIPRECISION_FUNC ( hypre_FACSolve3 ) +#define hypre_FacZeroCData HYPRE_MULTIPRECISION_FUNC ( hypre_FacZeroCData ) +#define hypre_FacZeroCFSten HYPRE_MULTIPRECISION_FUNC ( hypre_FacZeroCFSten ) +#define hypre_FacZeroFCSten HYPRE_MULTIPRECISION_FUNC ( hypre_FacZeroFCSten ) +#define HYPRE_SStructBiCGSTABCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABCreate ) +#define HYPRE_SStructBiCGSTABDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABDestroy ) +#define HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm ) +#define HYPRE_SStructBiCGSTABGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABGetNumIterations ) +#define HYPRE_SStructBiCGSTABGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABGetResidual ) +#define HYPRE_SStructBiCGSTABSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetAbsoluteTol ) +#define HYPRE_SStructBiCGSTABSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetLogging ) +#define HYPRE_SStructBiCGSTABSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetMaxIter ) +#define HYPRE_SStructBiCGSTABSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetMinIter ) +#define HYPRE_SStructBiCGSTABSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetPrecond ) +#define HYPRE_SStructBiCGSTABSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetPrintLevel ) +#define HYPRE_SStructBiCGSTABSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetStopCrit ) +#define HYPRE_SStructBiCGSTABSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetTol ) +#define HYPRE_SStructBiCGSTABSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSetup ) +#define HYPRE_SStructBiCGSTABSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructBiCGSTABSolve ) +#define HYPRE_SStructFlexGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESCreate ) +#define HYPRE_SStructFlexGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESDestroy ) +#define HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_SStructFlexGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESGetNumIterations ) +#define HYPRE_SStructFlexGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESGetResidual ) +#define HYPRE_SStructFlexGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetAbsoluteTol ) +#define HYPRE_SStructFlexGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetKDim ) +#define HYPRE_SStructFlexGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetLogging ) +#define HYPRE_SStructFlexGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetMaxIter ) +#define HYPRE_SStructFlexGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetMinIter ) +#define HYPRE_SStructFlexGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetModifyPC ) +#define HYPRE_SStructFlexGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetPrecond ) +#define HYPRE_SStructFlexGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetPrintLevel ) +#define HYPRE_SStructFlexGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetTol ) +#define HYPRE_SStructFlexGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSetup ) +#define HYPRE_SStructFlexGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFlexGMRESSolve ) +#define HYPRE_SStructGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESCreate ) +#define HYPRE_SStructGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESDestroy ) +#define HYPRE_SStructGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_SStructGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESGetNumIterations ) +#define HYPRE_SStructGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESGetResidual ) +#define HYPRE_SStructGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetAbsoluteTol ) +#define HYPRE_SStructGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetKDim ) +#define HYPRE_SStructGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetLogging ) +#define HYPRE_SStructGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetMaxIter ) +#define HYPRE_SStructGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetMinIter ) +#define HYPRE_SStructGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetPrecond ) +#define HYPRE_SStructGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetPrintLevel ) +#define HYPRE_SStructGMRESSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetStopCrit ) +#define HYPRE_SStructGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetTol ) +#define HYPRE_SStructGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSetup ) +#define HYPRE_SStructGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGMRESSolve ) +#define HYPRE_SStructFACAMR_RAP HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACAMR_RAP ) +#define HYPRE_SStructFACCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACCreate ) +#define HYPRE_SStructFACDestroy2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACDestroy2 ) +#define HYPRE_SStructFACGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACGetFinalRelativeResidualNorm ) +#define HYPRE_SStructFACGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACGetNumIterations ) +#define HYPRE_SStructFACSetCoarseSolverType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetCoarseSolverType ) +#define HYPRE_SStructFACSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetJacobiWeight ) +#define HYPRE_SStructFACSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetLogging ) +#define HYPRE_SStructFACSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetMaxIter ) +#define HYPRE_SStructFACSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetMaxLevels ) +#define HYPRE_SStructFACSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetNonZeroGuess ) +#define HYPRE_SStructFACSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetNumPostRelax ) +#define HYPRE_SStructFACSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetNumPreRelax ) +#define HYPRE_SStructFACSetPLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetPLevels ) +#define HYPRE_SStructFACSetPRefinements HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetPRefinements ) +#define HYPRE_SStructFACSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetRelaxType ) +#define HYPRE_SStructFACSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetRelChange ) +#define HYPRE_SStructFACSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetTol ) +#define HYPRE_SStructFACSetup2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetup2 ) +#define HYPRE_SStructFACSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSetZeroGuess ) +#define HYPRE_SStructFACSolve3 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACSolve3 ) +#define HYPRE_SStructFACZeroAMRMatrixData HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACZeroAMRMatrixData ) +#define HYPRE_SStructFACZeroAMRVectorData HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACZeroAMRVectorData ) +#define HYPRE_SStructFACZeroCFSten HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACZeroCFSten ) +#define HYPRE_SStructFACZeroFCSten HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructFACZeroFCSten ) +#define hypre_SStructPVectorSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorSetRandomValues ) +#define hypre_SStructSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructSetRandomValues ) +#define HYPRE_SStructSetupInterpreter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSetupInterpreter ) +#define HYPRE_SStructSetupMatvec HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSetupMatvec ) +#define hypre_SStructVectorSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorSetRandomValues ) +#define HYPRE_SStructLGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESCreate ) +#define HYPRE_SStructLGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESDestroy ) +#define HYPRE_SStructLGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_SStructLGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESGetNumIterations ) +#define HYPRE_SStructLGMRESGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESGetResidual ) +#define HYPRE_SStructLGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetAbsoluteTol ) +#define HYPRE_SStructLGMRESSetAugDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetAugDim ) +#define HYPRE_SStructLGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetKDim ) +#define HYPRE_SStructLGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetLogging ) +#define HYPRE_SStructLGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetMaxIter ) +#define HYPRE_SStructLGMRESSetMinIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetMinIter ) +#define HYPRE_SStructLGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetPrecond ) +#define HYPRE_SStructLGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetPrintLevel ) +#define HYPRE_SStructLGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetTol ) +#define HYPRE_SStructLGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSetup ) +#define HYPRE_SStructLGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructLGMRESSolve ) +#define HYPRE_MaxwellGrad HYPRE_MULTIPRECISION_FUNC ( HYPRE_MaxwellGrad ) +#define HYPRE_SStructMaxwellCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellCreate ) +#define HYPRE_SStructMaxwellDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellDestroy ) +#define HYPRE_SStructMaxwellEliminateRowsCols HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellEliminateRowsCols ) +#define HYPRE_SStructMaxwellGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellGetFinalRelativeResidualNorm ) +#define HYPRE_SStructMaxwellGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellGetNumIterations ) +#define HYPRE_SStructMaxwellPhysBdy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellPhysBdy ) +#define HYPRE_SStructMaxwellPrintLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellPrintLogging ) +#define HYPRE_SStructMaxwellSetConstantCoef HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetConstantCoef ) +#define HYPRE_SStructMaxwellSetGrad HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetGrad ) +#define HYPRE_SStructMaxwellSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetLogging ) +#define HYPRE_SStructMaxwellSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetMaxIter ) +#define HYPRE_SStructMaxwellSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetNumPostRelax ) +#define HYPRE_SStructMaxwellSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetNumPreRelax ) +#define HYPRE_SStructMaxwellSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetPrintLevel ) +#define HYPRE_SStructMaxwellSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetRelChange ) +#define HYPRE_SStructMaxwellSetRfactors HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetRfactors ) +#define HYPRE_SStructMaxwellSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetTol ) +#define HYPRE_SStructMaxwellSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSetup ) +#define HYPRE_SStructMaxwellSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSolve ) +#define HYPRE_SStructMaxwellSolve2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellSolve2 ) +#define HYPRE_SStructMaxwellZeroVector HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMaxwellZeroVector ) +#define HYPRE_SStructDiagScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructDiagScale ) +#define HYPRE_SStructDiagScaleSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructDiagScaleSetup ) +#define HYPRE_SStructPCGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGCreate ) +#define HYPRE_SStructPCGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGDestroy ) +#define HYPRE_SStructPCGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGGetFinalRelativeResidualNorm ) +#define HYPRE_SStructPCGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGGetNumIterations ) +#define HYPRE_SStructPCGGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGGetResidual ) +#define HYPRE_SStructPCGSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetAbsoluteTol ) +#define HYPRE_SStructPCGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetLogging ) +#define HYPRE_SStructPCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetMaxIter ) +#define HYPRE_SStructPCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetPrecond ) +#define HYPRE_SStructPCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetPrintLevel ) +#define HYPRE_SStructPCGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetRelChange ) +#define HYPRE_SStructPCGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetTol ) +#define HYPRE_SStructPCGSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetTwoNorm ) +#define HYPRE_SStructPCGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSetup ) +#define HYPRE_SStructPCGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructPCGSolve ) +#define HYPRE_SStructSplitCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitCreate ) +#define HYPRE_SStructSplitDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitDestroy ) +#define HYPRE_SStructSplitGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitGetFinalRelativeResidualNorm ) +#define HYPRE_SStructSplitGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitGetNumIterations ) +#define HYPRE_SStructSplitSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSetMaxIter ) +#define HYPRE_SStructSplitSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSetNonZeroGuess ) +#define HYPRE_SStructSplitSetStructSolver HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSetStructSolver ) +#define HYPRE_SStructSplitSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSetTol ) +#define HYPRE_SStructSplitSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSetup ) +#define HYPRE_SStructSplitSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSetZeroGuess ) +#define HYPRE_SStructSplitSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSplitSolve ) +#define HYPRE_SStructSysPFMGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGCreate ) +#define HYPRE_SStructSysPFMGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGDestroy ) +#define HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm ) +#define HYPRE_SStructSysPFMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGGetNumIterations ) +#define HYPRE_SStructSysPFMGSetDxyz HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetDxyz ) +#define HYPRE_SStructSysPFMGSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetJacobiWeight ) +#define HYPRE_SStructSysPFMGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetLogging ) +#define HYPRE_SStructSysPFMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetMaxIter ) +#define HYPRE_SStructSysPFMGSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetNonZeroGuess ) +#define HYPRE_SStructSysPFMGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetNumPostRelax ) +#define HYPRE_SStructSysPFMGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetNumPreRelax ) +#define HYPRE_SStructSysPFMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetPrintLevel ) +#define HYPRE_SStructSysPFMGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetRelaxType ) +#define HYPRE_SStructSysPFMGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetRelChange ) +#define HYPRE_SStructSysPFMGSetSkipRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetSkipRelax ) +#define HYPRE_SStructSysPFMGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetTol ) +#define HYPRE_SStructSysPFMGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetup ) +#define HYPRE_SStructSysPFMGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSetZeroGuess ) +#define HYPRE_SStructSysPFMGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructSysPFMGSolve ) +#define hypre_SStructKrylovIdentity HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovIdentity ) +#define hypre_SStructKrylovIdentitySetup HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovIdentitySetup ) +#define hypre_SStructKrylovAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovAxpy ) +#define hypre_SStructKrylovCAlloc HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovCAlloc ) +#define hypre_SStructKrylovClearVector HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovClearVector ) +#define hypre_SStructKrylovCommInfo HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovCommInfo ) +#define hypre_SStructKrylovCopyVector HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovCopyVector ) +#define hypre_SStructKrylovCreateVector HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovCreateVector ) +#define hypre_SStructKrylovCreateVectorArray HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovCreateVectorArray ) +#define hypre_SStructKrylovDestroyVector HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovDestroyVector ) +#define hypre_SStructKrylovFree HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovFree ) +#define hypre_SStructKrylovInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovInnerProd ) +#define hypre_SStructKrylovMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovMatvec ) +#define hypre_SStructKrylovMatvecCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovMatvecCreate ) +#define hypre_SStructKrylovMatvecDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovMatvecDestroy ) +#define hypre_SStructKrylovScaleVector HYPRE_MULTIPRECISION_FUNC ( hypre_SStructKrylovScaleVector ) +#define hypre_Maxwell_Grad HYPRE_MULTIPRECISION_FUNC ( hypre_Maxwell_Grad ) +#define hypre_Maxwell_PhysBdy HYPRE_MULTIPRECISION_FUNC ( hypre_Maxwell_PhysBdy ) +#define hypre_Maxwell_VarBdy HYPRE_MULTIPRECISION_FUNC ( hypre_Maxwell_VarBdy ) +#define hypre_Maxwell_PNedelec_Bdy HYPRE_MULTIPRECISION_FUNC ( hypre_Maxwell_PNedelec_Bdy ) +#define hypre_Maxwell_PNedelec HYPRE_MULTIPRECISION_FUNC ( hypre_Maxwell_PNedelec ) +#define hypre_CollapseStencilToStencil HYPRE_MULTIPRECISION_FUNC ( hypre_CollapseStencilToStencil ) +#define hypre_CreatePTopology HYPRE_MULTIPRECISION_FUNC ( hypre_CreatePTopology ) +#define hypre_DestroyPTopology HYPRE_MULTIPRECISION_FUNC ( hypre_DestroyPTopology ) +#define hypre_Maxwell_PTopology HYPRE_MULTIPRECISION_FUNC ( hypre_Maxwell_PTopology ) +#define hypre_TriDiagSolve HYPRE_MULTIPRECISION_FUNC ( hypre_TriDiagSolve ) +#define hypre_MaxwellSolve2 HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSolve2 ) +#define hypre_MaxwellSolve HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSolve ) +#define hypre_MaxwellGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellGetFinalRelativeResidualNorm ) +#define hypre_MaxwellGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellGetNumIterations ) +#define hypre_MaxwellPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellPrintLogging ) +#define hypre_MaxwellSetConstantCoef HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetConstantCoef ) +#define hypre_MaxwellSetGrad HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetGrad ) +#define hypre_MaxwellSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetLogging ) +#define hypre_MaxwellSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetMaxIter ) +#define hypre_MaxwellSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetNumPostRelax ) +#define hypre_MaxwellSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetNumPreRelax ) +#define hypre_MaxwellSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetPrintLevel ) +#define hypre_MaxwellSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetRelChange ) +#define hypre_MaxwellSetRfactors HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetRfactors ) +#define hypre_MaxwellSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellSetTol ) +#define hypre_MaxwellTVCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellTVCreate ) +#define hypre_MaxwellTVDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellTVDestroy ) +#define hypre_BoxContraction HYPRE_MULTIPRECISION_FUNC ( hypre_BoxContraction ) +#define hypre_CoarsenPGrid HYPRE_MULTIPRECISION_FUNC ( hypre_CoarsenPGrid ) +#define hypre_MaxwellTV_Setup HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellTV_Setup ) +#define hypre_ParVectorZeroBCValues HYPRE_MULTIPRECISION_FUNC ( hypre_ParVectorZeroBCValues ) +#define hypre_SeqVectorZeroBCValues HYPRE_MULTIPRECISION_FUNC ( hypre_SeqVectorZeroBCValues ) +#define hypre_HarmonicExtension HYPRE_MULTIPRECISION_FUNC ( hypre_HarmonicExtension ) +#define hypre_ND1AMGeInterpolation HYPRE_MULTIPRECISION_FUNC ( hypre_ND1AMGeInterpolation ) +#define hypre_NodeRelax HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelax ) +#define hypre_NodeRelaxCreate HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxCreate ) +#define hypre_NodeRelaxDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxDestroy ) +#define hypre_NodeRelaxSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetMaxIter ) +#define hypre_NodeRelaxSetNodeset HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetNodeset ) +#define hypre_NodeRelaxSetNodesetRank HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetNodesetRank ) +#define hypre_NodeRelaxSetNumNodesets HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetNumNodesets ) +#define hypre_NodeRelaxSetTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetTempVec ) +#define hypre_NodeRelaxSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetTol ) +#define hypre_NodeRelaxSetup HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetup ) +#define hypre_NodeRelaxSetWeight HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetWeight ) +#define hypre_NodeRelaxSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_NodeRelaxSetZeroGuess ) +#define hypre_SStructAMRInterCommunication HYPRE_MULTIPRECISION_FUNC ( hypre_SStructAMRInterCommunication ) +#define hypre_SStructIndexScaleC_F HYPRE_MULTIPRECISION_FUNC ( hypre_SStructIndexScaleC_F ) +#define hypre_SStructIndexScaleF_C HYPRE_MULTIPRECISION_FUNC ( hypre_SStructIndexScaleF_C ) +#define hypre_SStructOwnInfo HYPRE_MULTIPRECISION_FUNC ( hypre_SStructOwnInfo ) +#define hypre_SStructOwnInfoDataDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructOwnInfoDataDestroy ) +#define hypre_SStructRecvInfo HYPRE_MULTIPRECISION_FUNC ( hypre_SStructRecvInfo ) +#define hypre_SStructRecvInfoDataDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructRecvInfoDataDestroy ) +#define hypre_SStructSendInfo HYPRE_MULTIPRECISION_FUNC ( hypre_SStructSendInfo ) +#define hypre_SStructSendInfoDataDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructSendInfoDataDestroy ) +#define hypre_MaxwellOffProcRowCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellOffProcRowCreate ) +#define hypre_MaxwellOffProcRowDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MaxwellOffProcRowDestroy ) +#define hypre_SStructSharedDOF_ParcsrMatRowsComm HYPRE_MULTIPRECISION_FUNC ( hypre_SStructSharedDOF_ParcsrMatRowsComm ) +#define hypre_SysPFMGCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGCreate ) +#define hypre_SysPFMGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGDestroy ) +#define hypre_SysPFMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGGetFinalRelativeResidualNorm ) +#define hypre_SysPFMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGGetNumIterations ) +#define hypre_SysPFMGPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGPrintLogging ) +#define hypre_SysPFMGSetDxyz HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetDxyz ) +#define hypre_SysPFMGSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetJacobiWeight ) +#define hypre_SysPFMGSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetLogging ) +#define hypre_SysPFMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetMaxIter ) +#define hypre_SysPFMGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetNumPostRelax ) +#define hypre_SysPFMGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetNumPreRelax ) +#define hypre_SysPFMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetPrintLevel ) +#define hypre_SysPFMGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetRelaxType ) +#define hypre_SysPFMGSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetRelChange ) +#define hypre_SysPFMGSetSkipRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetSkipRelax ) +#define hypre_SysPFMGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetTol ) +#define hypre_SysPFMGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetZeroGuess ) +#define hypre_SysPFMGRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelax ) +#define hypre_SysPFMGRelaxCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxCreate ) +#define hypre_SysPFMGRelaxDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxDestroy ) +#define hypre_SysPFMGRelaxSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetJacobiWeight ) +#define hypre_SysPFMGRelaxSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetMaxIter ) +#define hypre_SysPFMGRelaxSetPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetPostRelax ) +#define hypre_SysPFMGRelaxSetPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetPreRelax ) +#define hypre_SysPFMGRelaxSetTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetTempVec ) +#define hypre_SysPFMGRelaxSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetTol ) +#define hypre_SysPFMGRelaxSetType HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetType ) +#define hypre_SysPFMGRelaxSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetup ) +#define hypre_SysPFMGRelaxSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGRelaxSetZeroGuess ) +#define hypre_SysPFMGCreateInterpOp HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGCreateInterpOp ) +#define hypre_SysPFMGSetupInterpOp HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetupInterpOp ) +#define hypre_SysPFMGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetup ) +#define hypre_SysStructCoarsen HYPRE_MULTIPRECISION_FUNC ( hypre_SysStructCoarsen ) +#define hypre_SysPFMGCreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGCreateRAPOp ) +#define hypre_SysPFMGSetupRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSetupRAPOp ) +#define hypre_SysPFMGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_SysPFMGSolve ) +#define hypre_SysSemiInterp HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiInterp ) +#define hypre_SysSemiInterpCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiInterpCreate ) +#define hypre_SysSemiInterpDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiInterpDestroy ) +#define hypre_SysSemiInterpSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiInterpSetup ) +#define hypre_SysSemiRestrict HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiRestrict ) +#define hypre_SysSemiRestrictCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiRestrictCreate ) +#define hypre_SysSemiRestrictDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiRestrictDestroy ) +#define hypre_SysSemiRestrictSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SysSemiRestrictSetup ) + +#endif diff --git a/src/sstruct_mv/HYPRE_sstruct_mv.h b/src/sstruct_mv/HYPRE_sstruct_mv.h index b973da198e..2cfc0763fb 100644 --- a/src/sstruct_mv/HYPRE_sstruct_mv.h +++ b/src/sstruct_mv/HYPRE_sstruct_mv.h @@ -13,6 +13,10 @@ #include "HYPRE_struct_mv.h" #include "HYPRE_IJ_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/sstruct_mv/Makefile b/src/sstruct_mv/Makefile index 24b49e15c4..f389a3213c 100644 --- a/src/sstruct_mv/Makefile +++ b/src/sstruct_mv/Makefile @@ -29,16 +29,20 @@ HEADERS =\ sstruct_vector.h FILES =\ + +CUFILES =\ + sstruct_matrix.c\ + sstruct_vector.c + +####################### +# Multiprecision files +####################### +MuP_FILES = \ F90_HYPRE_sstruct_graph.c\ F90_HYPRE_sstruct_grid.c\ F90_HYPRE_sstruct_matrix.c\ F90_HYPRE_sstruct_stencil.c\ F90_HYPRE_sstruct_vector.c\ - HYPRE_sstruct_graph.c\ - HYPRE_sstruct_grid.c\ - HYPRE_sstruct_matrix.c\ - HYPRE_sstruct_stencil.c\ - HYPRE_sstruct_vector.c\ sstruct_axpy.c\ sstruct_copy.c\ sstruct_graph.c\ @@ -46,15 +50,21 @@ FILES =\ sstruct_innerprod.c\ sstruct_matvec.c\ sstruct_scale.c\ - sstruct_stencil.c - -CUFILES =\ - sstruct_matrix.c\ - sstruct_vector.c + sstruct_stencil.c\ + HYPRE_sstruct_graph.c\ + HYPRE_sstruct_grid.c\ + HYPRE_sstruct_matrix.c\ + HYPRE_sstruct_stencil.c\ + HYPRE_sstruct_vector.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_sstruct_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -65,23 +75,66 @@ SONAME = libHYPRE_sstruct_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_sstruct_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/sstruct_mv_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_sstruct_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_sstruct_mv.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/sstruct_mv_mup_func.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_sstruct_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/sstruct_mv/_hypre_sstruct_mv.h b/src/sstruct_mv/_hypre_sstruct_mv.h index fbe5dc8e96..e3d72eaf04 100644 --- a/src/sstruct_mv/_hypre_sstruct_mv.h +++ b/src/sstruct_mv/_hypre_sstruct_mv.h @@ -14,6 +14,10 @@ #include "_hypre_struct_mv.h" #include "_hypre_IJ_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/sstruct_mv/headers b/src/sstruct_mv/headers index 9e07536f97..a224101acc 100755 --- a/src/sstruct_mv/headers +++ b/src/sstruct_mv/headers @@ -27,6 +27,10 @@ cat > $INTERNAL_HEADER <<@ #include "_hypre_struct_mv.h" #include "_hypre_IJ_mv.h" +#ifdef HYPRE_MIXED_PRECISION +#include "sstruct_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/sstruct_mv/sstruct_mv_func_header b/src/sstruct_mv/sstruct_mv_func_header new file mode 100755 index 0000000000..b23ab556ad --- /dev/null +++ b/src/sstruct_mv/sstruct_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=sstruct_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'sstruct_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SSTRUCT_MV_MUP_FUNC_HEADER +#define SSTRUCT_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=sstruct_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/sstruct_mv/sstruct_mv_functions.saved b/src/sstruct_mv/sstruct_mv_functions.saved new file mode 100644 index 0000000000..cf69432d5e --- /dev/null +++ b/src/sstruct_mv/sstruct_mv_functions.saved @@ -0,0 +1,240 @@ +hypre_sstructgraphaddentries +hypre_sstructgraphassemble +hypre_sstructgraphcreate +hypre_sstructgraphdestroy +hypre_sstructgraphsetdomaingrid +hypre_sstructgraphsetfem +hypre_sstructgraphsetfemsparsity +hypre_sstructgraphsetobjecttype +hypre_sstructgraphsetstencil +hypre_sstructgridaddvariables +hypre_sstructgridassemble +hypre_sstructgridcreate +hypre_sstructgriddestroy +hypre_sstructgridsetextents +hypre_sstructgridsetfemordering +hypre_sstructgridsetneighborpart +hypre_sstructgridsetnumghost +hypre_sstructgridsetperiodic +hypre_sstructgridsetsharedpart +hypre_sstructgridsetvariables +hypre_sstructmatrixaddfemvalues +hypre_sstructmatrixaddtoboxvalu +hypre_sstructmatrixaddtovalues +hypre_sstructmatrixassemble +hypre_sstructmatrixcreate +hypre_sstructmatrixdestroy +hypre_sstructmatrixgetboxvalues +hypre_sstructmatrixgetobject +hypre_sstructmatrixgetvalues +hypre_sstructmatrixinitialize +hypre_sstructmatrixmatvec +hypre_sstructmatrixprint +hypre_sstructmatrixsetboxvalues +hypre_sstructmatrixsetnssymmetr +hypre_sstructmatrixsetobjecttyp +hypre_sstructmatrixsetsymmetric +hypre_sstructmatrixsetvalues +hypre_sstructstencilcreate +hypre_sstructstencildestroy +hypre_sstructstencilsetentry +hypre_sstructaxpy +hypre_sstructinnerprod +hypre_sstructvectoraddtoboxvalu +hypre_sstructvectoraddtovalues +hypre_sstructvectorassemble +hypre_sstructvectorcopy +hypre_sstructvectorcreate +hypre_sstructvectordestroy +hypre_sstructvectorgather +hypre_sstructvectorgetboxvalues +hypre_sstructvectorgetobject +hypre_sstructvectorgetvalues +hypre_sstructvectorinitialize +hypre_sstructvectorprint +hypre_sstructvectorscale +hypre_sstructvectorsetboxvalues +hypre_sstructvectorsetconstantv +hypre_sstructvectorsetobjecttyp +hypre_sstructvectorsetvalues +HYPRE_SStructGraphAddEntries +HYPRE_SStructGraphAssemble +HYPRE_SStructGraphCreate +HYPRE_SStructGraphDestroy +HYPRE_SStructGraphPrint +HYPRE_SStructGraphRead +HYPRE_SStructGraphSetDomainGrid +HYPRE_SStructGraphSetFEM +HYPRE_SStructGraphSetFEMSparsity +HYPRE_SStructGraphSetObjectType +HYPRE_SStructGraphSetStencil +HYPRE_SStructGridAddVariables +HYPRE_SStructGridAssemble +HYPRE_SStructGridCreate +HYPRE_SStructGridDestroy +HYPRE_SStructGridSetExtents +HYPRE_SStructGridSetFEMOrdering +HYPRE_SStructGridSetNeighborPart +HYPRE_SStructGridSetNumGhost +HYPRE_SStructGridSetPeriodic +HYPRE_SStructGridSetSharedPart +HYPRE_SStructGridSetVariables +HYPRE_SStructMatrixAddFEMBoxValues +HYPRE_SStructMatrixAddFEMValues +HYPRE_SStructMatrixAddToBoxValues +HYPRE_SStructMatrixAddToBoxValues2 +HYPRE_SStructMatrixAddToValues +HYPRE_SStructMatrixAssemble +HYPRE_SStructMatrixCreate +HYPRE_SStructMatrixDestroy +HYPRE_SStructMatrixGetBoxValues +HYPRE_SStructMatrixGetBoxValues2 +HYPRE_SStructMatrixGetFEMValues +HYPRE_SStructMatrixGetObject +HYPRE_SStructMatrixGetValues +HYPRE_SStructMatrixInitialize +HYPRE_SStructMatrixMatvec +HYPRE_SStructMatrixPrint +HYPRE_SStructMatrixRead +HYPRE_SStructMatrixSetBoxValues +HYPRE_SStructMatrixSetBoxValues2 +HYPRE_SStructMatrixSetNSSymmetric +HYPRE_SStructMatrixSetObjectType +HYPRE_SStructMatrixSetSymmetric +HYPRE_SStructMatrixSetValues +HYPRE_SStructStencilCreate +HYPRE_SStructStencilDestroy +HYPRE_SStructStencilPrint +HYPRE_SStructStencilRead +HYPRE_SStructStencilSetEntry +HYPRE_SStructAxpy +HYPRE_SStructInnerProd +HYPRE_SStructVectorAddFEMBoxValues +HYPRE_SStructVectorAddFEMValues +HYPRE_SStructVectorAddToBoxValues +HYPRE_SStructVectorAddToBoxValues2 +HYPRE_SStructVectorAddToValues +HYPRE_SStructVectorAssemble +HYPRE_SStructVectorCopy +HYPRE_SStructVectorCreate +HYPRE_SStructVectorDestroy +HYPRE_SStructVectorGather +HYPRE_SStructVectorGetBoxValues +HYPRE_SStructVectorGetBoxValues2 +HYPRE_SStructVectorGetFEMValues +HYPRE_SStructVectorGetObject +HYPRE_SStructVectorGetValues +HYPRE_SStructVectorInitialize +HYPRE_SStructVectorPrint +HYPRE_SStructVectorRead +HYPRE_SStructVectorScale +HYPRE_SStructVectorSetBoxValues +HYPRE_SStructVectorSetBoxValues2 +HYPRE_SStructVectorSetConstantValues +HYPRE_SStructVectorSetObjectType +HYPRE_SStructVectorSetValues +hypre_SStructAxpy +hypre_SStructPAxpy +hypre_SStructCopy +hypre_SStructPartialPCopy +hypre_SStructPCopy +hypre_SStructGraphFindBoxEndpt +hypre_SStructGraphFindSGridEndpts +hypre_SStructGraphGetUVEntryRank +hypre_SStructGraphRef +hypre_SStructBoxManEntryGetBoxnum +hypre_SStructBoxManEntryGetCSRstrides +hypre_SStructBoxManEntryGetGhstrides +hypre_SStructBoxManEntryGetGlobalCSRank +hypre_SStructBoxManEntryGetGlobalGhrank +hypre_SStructBoxManEntryGetGlobalRank +hypre_SStructBoxManEntryGetPart +hypre_SStructBoxManEntryGetProcess +hypre_SStructBoxManEntryGetStrides +hypre_SStructBoxNumMap +hypre_SStructBoxToNborBox +hypre_SStructCellBoxToVarBox +hypre_SStructCellGridBoxNumMap +hypre_SStructGridAssembleBoxManagers +hypre_SStructGridAssembleNborBoxManagers +hypre_SStructGridBoxProcFindBoxManEntry +hypre_SStructGridCreateCommInfo +hypre_SStructGridFindBoxManEntry +hypre_SStructGridFindNborBoxManEntry +hypre_SStructGridGetMaxBoxSize +hypre_SStructGridIntersect +hypre_SStructGridPrint +hypre_SStructGridRead +hypre_SStructGridRef +hypre_SStructGridSetNumGhost +hypre_SStructIndexToNborIndex +hypre_SStructNborBoxToBox +hypre_SStructNborIndexToIndex +hypre_SStructPGridAssemble +hypre_SStructPGridCreate +hypre_SStructPGridDestroy +hypre_SStructPGridGetMaxBoxSize +hypre_SStructPGridSetCellSGrid +hypre_SStructPGridSetExtents +hypre_SStructPGridSetPNeighbor +hypre_SStructPGridSetVariables +hypre_SStructVariableGetOffset +hypre_SStructVarToNborVar +hypre_SStructInnerProd +hypre_SStructPInnerProd +hypre_SStructMatrixMemoryLocation +hypre_SStructMatrixRef +hypre_SStructMatrixSetBoxValues +hypre_SStructMatrixSetInterPartValues +hypre_SStructMatrixSetValues +hypre_SStructMatrixSplitEntries +hypre_SStructPMatrixAccumulate +hypre_SStructPMatrixAssemble +hypre_SStructPMatrixCreate +hypre_SStructPMatrixDestroy +hypre_SStructPMatrixInitialize +hypre_SStructPMatrixPrint +hypre_SStructPMatrixRef +hypre_SStructPMatrixSetBoxValues +hypre_SStructPMatrixSetSymmetric +hypre_SStructPMatrixSetValues +hypre_SStructUMatrixAssemble +hypre_SStructUMatrixInitialize +hypre_SStructUMatrixSetBoxValues +hypre_SStructUMatrixSetValues +hypre_SStructMatvec +hypre_SStructMatvecCompute +hypre_SStructMatvecCreate +hypre_SStructMatvecDestroy +hypre_SStructMatvecSetup +hypre_SStructPMatvec +hypre_SStructPMatvecCompute +hypre_SStructPMatvecCreate +hypre_SStructPMatvecDestroy +hypre_SStructPMatvecSetup +hypre_SStructPScale +hypre_SStructScale +hypre_SStructStencilRef +hypre_SStructPVectorAccumulate +hypre_SStructPVectorAssemble +hypre_SStructPVectorCreate +hypre_SStructPVectorDestroy +hypre_SStructPVectorGather +hypre_SStructPVectorGetBoxValues +hypre_SStructPVectorGetValues +hypre_SStructPVectorInitialize +hypre_SStructPVectorInitializeShell +hypre_SStructPVectorPrint +hypre_SStructPVectorRef +hypre_SStructPVectorSetBoxValues +hypre_SStructPVectorSetConstantValues +hypre_SStructPVectorSetValues +hypre_SStructVectorClearGhostValues +hypre_SStructVectorConvert +hypre_SStructVectorInitializeShell +hypre_SStructVectorMemoryLocation +hypre_SStructVectorParConvert +hypre_SStructVectorParRestore +hypre_SStructVectorRef +hypre_SStructVectorRestore +hypre_SStructVectorSetConstantValues diff --git a/src/sstruct_mv/sstruct_mv_mup_func.h b/src/sstruct_mv/sstruct_mv_mup_func.h new file mode 100644 index 0000000000..cc9c4fd4aa --- /dev/null +++ b/src/sstruct_mv/sstruct_mv_mup_func.h @@ -0,0 +1,260 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'sstruct_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef SSTRUCT_MV_MUP_FUNC_HEADER +#define SSTRUCT_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_sstructgraphaddentries HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphaddentries ) +#define hypre_sstructgraphassemble HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphassemble ) +#define hypre_sstructgraphcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphcreate ) +#define hypre_sstructgraphdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphdestroy ) +#define hypre_sstructgraphsetdomaingrid HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphsetdomaingrid ) +#define hypre_sstructgraphsetfem HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphsetfem ) +#define hypre_sstructgraphsetfemsparsity HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphsetfemsparsity ) +#define hypre_sstructgraphsetobjecttype HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphsetobjecttype ) +#define hypre_sstructgraphsetstencil HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgraphsetstencil ) +#define hypre_sstructgridaddvariables HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridaddvariables ) +#define hypre_sstructgridassemble HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridassemble ) +#define hypre_sstructgridcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridcreate ) +#define hypre_sstructgriddestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgriddestroy ) +#define hypre_sstructgridsetextents HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetextents ) +#define hypre_sstructgridsetfemordering HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetfemordering ) +#define hypre_sstructgridsetneighborpart HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetneighborpart ) +#define hypre_sstructgridsetnumghost HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetnumghost ) +#define hypre_sstructgridsetperiodic HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetperiodic ) +#define hypre_sstructgridsetsharedpart HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetsharedpart ) +#define hypre_sstructgridsetvariables HYPRE_MULTIPRECISION_FUNC ( hypre_sstructgridsetvariables ) +#define hypre_sstructmatrixaddfemvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixaddfemvalues ) +#define hypre_sstructmatrixaddtoboxvalu HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixaddtoboxvalu ) +#define hypre_sstructmatrixaddtovalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixaddtovalues ) +#define hypre_sstructmatrixassemble HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixassemble ) +#define hypre_sstructmatrixcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixcreate ) +#define hypre_sstructmatrixdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixdestroy ) +#define hypre_sstructmatrixgetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixgetboxvalues ) +#define hypre_sstructmatrixgetobject HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixgetobject ) +#define hypre_sstructmatrixgetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixgetvalues ) +#define hypre_sstructmatrixinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixinitialize ) +#define hypre_sstructmatrixmatvec HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixmatvec ) +#define hypre_sstructmatrixprint HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixprint ) +#define hypre_sstructmatrixsetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixsetboxvalues ) +#define hypre_sstructmatrixsetnssymmetr HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixsetnssymmetr ) +#define hypre_sstructmatrixsetobjecttyp HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixsetobjecttyp ) +#define hypre_sstructmatrixsetsymmetric HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixsetsymmetric ) +#define hypre_sstructmatrixsetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructmatrixsetvalues ) +#define hypre_sstructstencilcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructstencilcreate ) +#define hypre_sstructstencildestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructstencildestroy ) +#define hypre_sstructstencilsetentry HYPRE_MULTIPRECISION_FUNC ( hypre_sstructstencilsetentry ) +#define hypre_sstructaxpy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructaxpy ) +#define hypre_sstructinnerprod HYPRE_MULTIPRECISION_FUNC ( hypre_sstructinnerprod ) +#define hypre_sstructvectoraddtoboxvalu HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectoraddtoboxvalu ) +#define hypre_sstructvectoraddtovalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectoraddtovalues ) +#define hypre_sstructvectorassemble HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorassemble ) +#define hypre_sstructvectorcopy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorcopy ) +#define hypre_sstructvectorcreate HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorcreate ) +#define hypre_sstructvectordestroy HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectordestroy ) +#define hypre_sstructvectorgather HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorgather ) +#define hypre_sstructvectorgetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorgetboxvalues ) +#define hypre_sstructvectorgetobject HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorgetobject ) +#define hypre_sstructvectorgetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorgetvalues ) +#define hypre_sstructvectorinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorinitialize ) +#define hypre_sstructvectorprint HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorprint ) +#define hypre_sstructvectorscale HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorscale ) +#define hypre_sstructvectorsetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorsetboxvalues ) +#define hypre_sstructvectorsetconstantv HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorsetconstantv ) +#define hypre_sstructvectorsetobjecttyp HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorsetobjecttyp ) +#define hypre_sstructvectorsetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_sstructvectorsetvalues ) +#define HYPRE_SStructGraphAddEntries HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphAddEntries ) +#define HYPRE_SStructGraphAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphAssemble ) +#define HYPRE_SStructGraphCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphCreate ) +#define HYPRE_SStructGraphDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphDestroy ) +#define HYPRE_SStructGraphPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphPrint ) +#define HYPRE_SStructGraphRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphRead ) +#define HYPRE_SStructGraphSetDomainGrid HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphSetDomainGrid ) +#define HYPRE_SStructGraphSetFEM HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphSetFEM ) +#define HYPRE_SStructGraphSetFEMSparsity HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphSetFEMSparsity ) +#define HYPRE_SStructGraphSetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphSetObjectType ) +#define HYPRE_SStructGraphSetStencil HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGraphSetStencil ) +#define HYPRE_SStructGridAddVariables HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridAddVariables ) +#define HYPRE_SStructGridAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridAssemble ) +#define HYPRE_SStructGridCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridCreate ) +#define HYPRE_SStructGridDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridDestroy ) +#define HYPRE_SStructGridSetExtents HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetExtents ) +#define HYPRE_SStructGridSetFEMOrdering HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetFEMOrdering ) +#define HYPRE_SStructGridSetNeighborPart HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetNeighborPart ) +#define HYPRE_SStructGridSetNumGhost HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetNumGhost ) +#define HYPRE_SStructGridSetPeriodic HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetPeriodic ) +#define HYPRE_SStructGridSetSharedPart HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetSharedPart ) +#define HYPRE_SStructGridSetVariables HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructGridSetVariables ) +#define HYPRE_SStructMatrixAddFEMBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixAddFEMBoxValues ) +#define HYPRE_SStructMatrixAddFEMValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixAddFEMValues ) +#define HYPRE_SStructMatrixAddToBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixAddToBoxValues ) +#define HYPRE_SStructMatrixAddToBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixAddToBoxValues2 ) +#define HYPRE_SStructMatrixAddToValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixAddToValues ) +#define HYPRE_SStructMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixAssemble ) +#define HYPRE_SStructMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixCreate ) +#define HYPRE_SStructMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixDestroy ) +#define HYPRE_SStructMatrixGetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixGetBoxValues ) +#define HYPRE_SStructMatrixGetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixGetBoxValues2 ) +#define HYPRE_SStructMatrixGetFEMValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixGetFEMValues ) +#define HYPRE_SStructMatrixGetObject HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixGetObject ) +#define HYPRE_SStructMatrixGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixGetValues ) +#define HYPRE_SStructMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixInitialize ) +#define HYPRE_SStructMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixMatvec ) +#define HYPRE_SStructMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixPrint ) +#define HYPRE_SStructMatrixRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixRead ) +#define HYPRE_SStructMatrixSetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixSetBoxValues ) +#define HYPRE_SStructMatrixSetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixSetBoxValues2 ) +#define HYPRE_SStructMatrixSetNSSymmetric HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixSetNSSymmetric ) +#define HYPRE_SStructMatrixSetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixSetObjectType ) +#define HYPRE_SStructMatrixSetSymmetric HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixSetSymmetric ) +#define HYPRE_SStructMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructMatrixSetValues ) +#define HYPRE_SStructStencilCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructStencilCreate ) +#define HYPRE_SStructStencilDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructStencilDestroy ) +#define HYPRE_SStructStencilPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructStencilPrint ) +#define HYPRE_SStructStencilRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructStencilRead ) +#define HYPRE_SStructStencilSetEntry HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructStencilSetEntry ) +#define HYPRE_SStructAxpy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructAxpy ) +#define HYPRE_SStructInnerProd HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructInnerProd ) +#define HYPRE_SStructVectorAddFEMBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorAddFEMBoxValues ) +#define HYPRE_SStructVectorAddFEMValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorAddFEMValues ) +#define HYPRE_SStructVectorAddToBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorAddToBoxValues ) +#define HYPRE_SStructVectorAddToBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorAddToBoxValues2 ) +#define HYPRE_SStructVectorAddToValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorAddToValues ) +#define HYPRE_SStructVectorAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorAssemble ) +#define HYPRE_SStructVectorCopy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorCopy ) +#define HYPRE_SStructVectorCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorCreate ) +#define HYPRE_SStructVectorDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorDestroy ) +#define HYPRE_SStructVectorGather HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorGather ) +#define HYPRE_SStructVectorGetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorGetBoxValues ) +#define HYPRE_SStructVectorGetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorGetBoxValues2 ) +#define HYPRE_SStructVectorGetFEMValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorGetFEMValues ) +#define HYPRE_SStructVectorGetObject HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorGetObject ) +#define HYPRE_SStructVectorGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorGetValues ) +#define HYPRE_SStructVectorInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorInitialize ) +#define HYPRE_SStructVectorPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorPrint ) +#define HYPRE_SStructVectorRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorRead ) +#define HYPRE_SStructVectorScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorScale ) +#define HYPRE_SStructVectorSetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorSetBoxValues ) +#define HYPRE_SStructVectorSetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorSetBoxValues2 ) +#define HYPRE_SStructVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorSetConstantValues ) +#define HYPRE_SStructVectorSetObjectType HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorSetObjectType ) +#define HYPRE_SStructVectorSetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_SStructVectorSetValues ) +#define hypre_SStructAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructAxpy ) +#define hypre_SStructPAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPAxpy ) +#define hypre_SStructCopy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructCopy ) +#define hypre_SStructPartialPCopy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPartialPCopy ) +#define hypre_SStructPCopy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPCopy ) +#define hypre_SStructGraphFindBoxEndpt HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGraphFindBoxEndpt ) +#define hypre_SStructGraphFindSGridEndpts HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGraphFindSGridEndpts ) +#define hypre_SStructGraphGetUVEntryRank HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGraphGetUVEntryRank ) +#define hypre_SStructGraphRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGraphRef ) +#define hypre_SStructBoxManEntryGetBoxnum HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetBoxnum ) +#define hypre_SStructBoxManEntryGetCSRstrides HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetCSRstrides ) +#define hypre_SStructBoxManEntryGetGhstrides HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetGhstrides ) +#define hypre_SStructBoxManEntryGetGlobalCSRank HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetGlobalCSRank ) +#define hypre_SStructBoxManEntryGetGlobalGhrank HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetGlobalGhrank ) +#define hypre_SStructBoxManEntryGetGlobalRank HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetGlobalRank ) +#define hypre_SStructBoxManEntryGetPart HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetPart ) +#define hypre_SStructBoxManEntryGetProcess HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetProcess ) +#define hypre_SStructBoxManEntryGetStrides HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxManEntryGetStrides ) +#define hypre_SStructBoxNumMap HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxNumMap ) +#define hypre_SStructBoxToNborBox HYPRE_MULTIPRECISION_FUNC ( hypre_SStructBoxToNborBox ) +#define hypre_SStructCellBoxToVarBox HYPRE_MULTIPRECISION_FUNC ( hypre_SStructCellBoxToVarBox ) +#define hypre_SStructCellGridBoxNumMap HYPRE_MULTIPRECISION_FUNC ( hypre_SStructCellGridBoxNumMap ) +#define hypre_SStructGridAssembleBoxManagers HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridAssembleBoxManagers ) +#define hypre_SStructGridAssembleNborBoxManagers HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridAssembleNborBoxManagers ) +#define hypre_SStructGridBoxProcFindBoxManEntry HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridBoxProcFindBoxManEntry ) +#define hypre_SStructGridCreateCommInfo HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridCreateCommInfo ) +#define hypre_SStructGridFindBoxManEntry HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridFindBoxManEntry ) +#define hypre_SStructGridFindNborBoxManEntry HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridFindNborBoxManEntry ) +#define hypre_SStructGridGetMaxBoxSize HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridGetMaxBoxSize ) +#define hypre_SStructGridIntersect HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridIntersect ) +#define hypre_SStructGridPrint HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridPrint ) +#define hypre_SStructGridRead HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridRead ) +#define hypre_SStructGridRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridRef ) +#define hypre_SStructGridSetNumGhost HYPRE_MULTIPRECISION_FUNC ( hypre_SStructGridSetNumGhost ) +#define hypre_SStructIndexToNborIndex HYPRE_MULTIPRECISION_FUNC ( hypre_SStructIndexToNborIndex ) +#define hypre_SStructNborBoxToBox HYPRE_MULTIPRECISION_FUNC ( hypre_SStructNborBoxToBox ) +#define hypre_SStructNborIndexToIndex HYPRE_MULTIPRECISION_FUNC ( hypre_SStructNborIndexToIndex ) +#define hypre_SStructPGridAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridAssemble ) +#define hypre_SStructPGridCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridCreate ) +#define hypre_SStructPGridDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridDestroy ) +#define hypre_SStructPGridGetMaxBoxSize HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridGetMaxBoxSize ) +#define hypre_SStructPGridSetCellSGrid HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridSetCellSGrid ) +#define hypre_SStructPGridSetExtents HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridSetExtents ) +#define hypre_SStructPGridSetPNeighbor HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridSetPNeighbor ) +#define hypre_SStructPGridSetVariables HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPGridSetVariables ) +#define hypre_SStructVariableGetOffset HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVariableGetOffset ) +#define hypre_SStructVarToNborVar HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVarToNborVar ) +#define hypre_SStructInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_SStructInnerProd ) +#define hypre_SStructPInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPInnerProd ) +#define hypre_SStructMatrixMemoryLocation HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatrixMemoryLocation ) +#define hypre_SStructMatrixRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatrixRef ) +#define hypre_SStructMatrixSetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatrixSetBoxValues ) +#define hypre_SStructMatrixSetInterPartValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatrixSetInterPartValues ) +#define hypre_SStructMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatrixSetValues ) +#define hypre_SStructMatrixSplitEntries HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatrixSplitEntries ) +#define hypre_SStructPMatrixAccumulate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixAccumulate ) +#define hypre_SStructPMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixAssemble ) +#define hypre_SStructPMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixCreate ) +#define hypre_SStructPMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixDestroy ) +#define hypre_SStructPMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixInitialize ) +#define hypre_SStructPMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixPrint ) +#define hypre_SStructPMatrixRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixRef ) +#define hypre_SStructPMatrixSetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixSetBoxValues ) +#define hypre_SStructPMatrixSetSymmetric HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixSetSymmetric ) +#define hypre_SStructPMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatrixSetValues ) +#define hypre_SStructUMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_SStructUMatrixAssemble ) +#define hypre_SStructUMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_SStructUMatrixInitialize ) +#define hypre_SStructUMatrixSetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructUMatrixSetBoxValues ) +#define hypre_SStructUMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructUMatrixSetValues ) +#define hypre_SStructMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatvec ) +#define hypre_SStructMatvecCompute HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatvecCompute ) +#define hypre_SStructMatvecCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatvecCreate ) +#define hypre_SStructMatvecDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatvecDestroy ) +#define hypre_SStructMatvecSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SStructMatvecSetup ) +#define hypre_SStructPMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatvec ) +#define hypre_SStructPMatvecCompute HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatvecCompute ) +#define hypre_SStructPMatvecCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatvecCreate ) +#define hypre_SStructPMatvecDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatvecDestroy ) +#define hypre_SStructPMatvecSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPMatvecSetup ) +#define hypre_SStructPScale HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPScale ) +#define hypre_SStructScale HYPRE_MULTIPRECISION_FUNC ( hypre_SStructScale ) +#define hypre_SStructStencilRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructStencilRef ) +#define hypre_SStructPVectorAccumulate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorAccumulate ) +#define hypre_SStructPVectorAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorAssemble ) +#define hypre_SStructPVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorCreate ) +#define hypre_SStructPVectorDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorDestroy ) +#define hypre_SStructPVectorGather HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorGather ) +#define hypre_SStructPVectorGetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorGetBoxValues ) +#define hypre_SStructPVectorGetValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorGetValues ) +#define hypre_SStructPVectorInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorInitialize ) +#define hypre_SStructPVectorInitializeShell HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorInitializeShell ) +#define hypre_SStructPVectorPrint HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorPrint ) +#define hypre_SStructPVectorRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorRef ) +#define hypre_SStructPVectorSetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorSetBoxValues ) +#define hypre_SStructPVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorSetConstantValues ) +#define hypre_SStructPVectorSetValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructPVectorSetValues ) +#define hypre_SStructVectorClearGhostValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorClearGhostValues ) +#define hypre_SStructVectorConvert HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorConvert ) +#define hypre_SStructVectorInitializeShell HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorInitializeShell ) +#define hypre_SStructVectorMemoryLocation HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorMemoryLocation ) +#define hypre_SStructVectorParConvert HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorParConvert ) +#define hypre_SStructVectorParRestore HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorParRestore ) +#define hypre_SStructVectorRef HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorRef ) +#define hypre_SStructVectorRestore HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorRestore ) +#define hypre_SStructVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_SStructVectorSetConstantValues ) + +#endif diff --git a/src/struct_ls/HYPRE_struct_int.c b/src/struct_ls/HYPRE_struct_int.c index ab9f9449e8..b2f4f00a7d 100644 --- a/src/struct_ls/HYPRE_struct_int.c +++ b/src/struct_ls/HYPRE_struct_int.c @@ -7,76 +7,6 @@ #include "_hypre_struct_ls.h" #include "temp_multivector.h" -#include "_hypre_struct_mv.hpp" - -HYPRE_Int -hypre_StructVectorSetRandomValues( hypre_StructVector *vector, - HYPRE_Int seed ) -{ - hypre_Box *v_data_box; - HYPRE_Real *vp; - hypre_BoxArray *boxes; - hypre_Box *box; - hypre_Index loop_size; - hypre_IndexRef start; - hypre_Index unit_stride; - HYPRE_Int i; - HYPRE_Complex *data = hypre_StructVectorData(vector); - HYPRE_Complex *data_host = NULL; - HYPRE_Int data_size = hypre_StructVectorDataSize(vector); - HYPRE_MemoryLocation memory_location = hypre_StructVectorMemoryLocation(vector); - - /*----------------------------------------------------------------------- - * Set the vector coefficients - *-----------------------------------------------------------------------*/ - - // srand( seed ); - hypre_SeedRand(seed); - - hypre_SetIndex3(unit_stride, 1, 1, 1); - - boxes = hypre_StructGridBoxes(hypre_StructVectorGrid(vector)); - - if (hypre_GetExecPolicy1(memory_location) == HYPRE_EXEC_DEVICE) - { - data_host = hypre_CTAlloc(HYPRE_Complex, data_size, HYPRE_MEMORY_HOST); - hypre_StructVectorData(vector) = data_host; - } - - hypre_ForBoxI(i, boxes) - { - box = hypre_BoxArrayBox(boxes, i); - start = hypre_BoxIMin(box); - - v_data_box = hypre_BoxArrayBox(hypre_StructVectorDataSpace(vector), i); - vp = hypre_StructVectorBoxData(vector, i); - - hypre_BoxGetSize(box, loop_size); - - hypre_SerialBoxLoop1Begin(hypre_StructVectorNDim(vector), loop_size, - v_data_box, start, unit_stride, vi); - { - vp[vi] = 2.0 * hypre_Rand() - 1.0; - } - hypre_SerialBoxLoop1End(vi); - } - - if (data_host) - { - hypre_TMemcpy(data, data_host, HYPRE_Complex, data_size, memory_location, HYPRE_MEMORY_HOST); - hypre_StructVectorData(vector) = data; - hypre_TFree(data_host, HYPRE_MEMORY_HOST); - } - - return hypre_error_flag; -} - -HYPRE_Int -hypre_StructSetRandomValues( void* v, HYPRE_Int seed ) -{ - - return hypre_StructVectorSetRandomValues( (hypre_StructVector*)v, seed ); -} HYPRE_Int HYPRE_StructSetupInterpreter( mv_InterfaceInterpreter *i ) diff --git a/src/struct_ls/HYPRE_struct_ls.h b/src/struct_ls/HYPRE_struct_ls.h index 21adef37ca..07cf3863f8 100644 --- a/src/struct_ls/HYPRE_struct_ls.h +++ b/src/struct_ls/HYPRE_struct_ls.h @@ -12,6 +12,10 @@ #include "HYPRE_struct_mv.h" #include "HYPRE_lobpcg.h" +#ifdef HYPRE_MIXED_PRECISION +#include "struct_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/struct_ls/HYPRE_struct_pcg.c b/src/struct_ls/HYPRE_struct_pcg.c index 9bd1455894..975ed991a8 100644 --- a/src/struct_ls/HYPRE_struct_pcg.c +++ b/src/struct_ls/HYPRE_struct_pcg.c @@ -6,7 +6,6 @@ ******************************************************************************/ #include "_hypre_struct_ls.h" -#include "_hypre_struct_mv.hpp" /*==========================================================================*/ @@ -198,55 +197,5 @@ HYPRE_StructDiagScale( HYPRE_StructSolver solver, hypre_StructVector *y = (hypre_StructVector *) Hy; hypre_StructVector *x = (hypre_StructVector *) Hx; - hypre_BoxArray *boxes; - hypre_Box *box; - - hypre_Box *A_data_box; - hypre_Box *y_data_box; - hypre_Box *x_data_box; - - HYPRE_Real *Ap; - HYPRE_Real *yp; - HYPRE_Real *xp; - - hypre_Index index; - hypre_IndexRef start; - hypre_Index stride; - hypre_Index loop_size; - - HYPRE_Int i; - - /* x = D^{-1} y */ - hypre_SetIndex(stride, 1); - boxes = hypre_StructGridBoxes(hypre_StructMatrixGrid(A)); - hypre_ForBoxI(i, boxes) - { - box = hypre_BoxArrayBox(boxes, i); - - A_data_box = hypre_BoxArrayBox(hypre_StructMatrixDataSpace(A), i); - x_data_box = hypre_BoxArrayBox(hypre_StructVectorDataSpace(x), i); - y_data_box = hypre_BoxArrayBox(hypre_StructVectorDataSpace(y), i); - - hypre_SetIndex(index, 0); - Ap = hypre_StructMatrixExtractPointerByIndex(A, i, index); - xp = hypre_StructVectorBoxData(x, i); - yp = hypre_StructVectorBoxData(y, i); - - start = hypre_BoxIMin(box); - - hypre_BoxGetSize(box, loop_size); - -#define DEVICE_VAR is_device_ptr(xp,yp,Ap) - hypre_BoxLoop3Begin(hypre_StructVectorNDim(Hx), loop_size, - A_data_box, start, stride, Ai, - x_data_box, start, stride, xi, - y_data_box, start, stride, yi); - { - xp[xi] = yp[yi] / Ap[Ai]; - } - hypre_BoxLoop3End(Ai, xi, yi); -#undef DEVICE_VAR - } - - return hypre_error_flag; + return (hypre_StructDiagScale(A, y, x)); } diff --git a/src/struct_ls/Makefile b/src/struct_ls/Makefile index 2ba52ac53b..38364dfb9d 100644 --- a/src/struct_ls/Makefile +++ b/src/struct_ls/Makefile @@ -26,6 +26,39 @@ HEADERS =\ sparse_msg.h FILES =\ + +CUFILES =\ + cyclic_reduction.c\ + setrandom.c\ + diagscale.c\ + pfmg2_setup_rap.c\ + pfmg3_setup_rap.c\ + pfmg_setup.c\ + pfmg_setup_interp.c\ + pfmg_setup_rap5.c\ + pfmg_setup_rap7.c\ + point_relax.c\ + red_black_constantcoef_gs.c\ + red_black_gs.c\ + semi_interp.c\ + semi_restrict.c\ + semi_setup_rap.c\ + smg2_setup_rap.c\ + smg3_setup_rap.c\ + smg.c\ + smg_axpy.c\ + smg_residual.c\ + smg_setup_interp.c\ + sparse_msg2_setup_rap.c\ + sparse_msg3_setup_rap.c\ + sparse_msg_filter.c\ + sparse_msg_interp.c\ + sparse_msg_restrict.c + +####################### +# Multiprecision files +####################### +MuP_FILES = \ coarsen.c\ F90_HYPRE_struct_bicgstab.c\ F90_HYPRE_struct_cycred.c\ @@ -40,16 +73,6 @@ FILES =\ F90_HYPRE_struct_smg.c\ F90_HYPRE_struct_sparse_msg.c\ hybrid.c\ - HYPRE_struct_bicgstab.c\ - HYPRE_struct_cycred.c\ - HYPRE_struct_flexgmres.c\ - HYPRE_struct_gmres.c\ - HYPRE_struct_hybrid.c\ - HYPRE_struct_jacobi.c\ - HYPRE_struct_lgmres.c\ - HYPRE_struct_pfmg.c\ - HYPRE_struct_smg.c\ - HYPRE_struct_sparse_msg.c\ jacobi.c\ pcg_struct.c\ pfmg.c\ @@ -65,39 +88,28 @@ FILES =\ sparse_msg.c\ sparse_msg_setup.c\ sparse_msg_setup_rap.c\ - sparse_msg_solve.c - -CUFILES =\ - cyclic_reduction.c\ + sparse_msg_solve.c\ HYPRE_struct_int.c\ HYPRE_struct_pcg.c\ - pfmg2_setup_rap.c\ - pfmg3_setup_rap.c\ - pfmg_setup.c\ - pfmg_setup_interp.c\ - pfmg_setup_rap5.c\ - pfmg_setup_rap7.c\ - point_relax.c\ - red_black_constantcoef_gs.c\ - red_black_gs.c\ - semi_interp.c\ - semi_restrict.c\ - semi_setup_rap.c\ - smg2_setup_rap.c\ - smg3_setup_rap.c\ - smg.c\ - smg_axpy.c\ - smg_residual.c\ - smg_setup_interp.c\ - sparse_msg2_setup_rap.c\ - sparse_msg3_setup_rap.c\ - sparse_msg_filter.c\ - sparse_msg_interp.c\ - sparse_msg_restrict.c + HYPRE_struct_bicgstab.c\ + HYPRE_struct_cycred.c\ + HYPRE_struct_flexgmres.c\ + HYPRE_struct_gmres.c\ + HYPRE_struct_hybrid.c\ + HYPRE_struct_jacobi.c\ + HYPRE_struct_lgmres.c\ + HYPRE_struct_pfmg.c\ + HYPRE_struct_smg.c\ + HYPRE_struct_sparse_msg.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_struct_ls-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -108,23 +120,66 @@ SONAME = libHYPRE_struct_ls-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} all: libHYPRE_struct_ls${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_struct_ls.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/struct_ls_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_struct_ls${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_struct_ls.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/struct_ls_mup_func.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# libHYPRE_struct_ls.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/struct_ls/_hypre_struct_ls.h b/src/struct_ls/_hypre_struct_ls.h index 867a641eef..f443aa4102 100644 --- a/src/struct_ls/_hypre_struct_ls.h +++ b/src/struct_ls/_hypre_struct_ls.h @@ -14,6 +14,10 @@ #include "HYPRE_MatvecFunctions.h" /* ... needed to make sense of functions in HYPRE_parcsr_int.c */ +#ifdef HYPRE_MIXED_PRECISION +#include "struct_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -660,6 +664,11 @@ HYPRE_Int hypre_SparseMSGSetupRAPOp ( hypre_StructMatrix *R, hypre_StructMatrix /* sparse_msg_solve.c */ HYPRE_Int hypre_SparseMSGSolve ( void *smsg_vdata, hypre_StructMatrix *A, hypre_StructVector *b, hypre_StructVector *x ); +/* setrandom.c */ +HYPRE_Int hypre_StructVectorSetRandomValues( hypre_StructVector *vector, HYPRE_Int seed ); +HYPRE_Int hypre_StructSetRandomValues( void* v, HYPRE_Int seed ); +/* diagscale.c */ +HYPRE_Int hypre_StructDiagScale( hypre_StructMatrix *A, hypre_StructVector *y, hypre_StructVector *x ); #ifdef __cplusplus } diff --git a/src/struct_ls/diagscale.c b/src/struct_ls/diagscale.c new file mode 100644 index 0000000000..0ecf9c2a5b --- /dev/null +++ b/src/struct_ls/diagscale.c @@ -0,0 +1,69 @@ +/****************************************************************************** + * 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) + ******************************************************************************/ + +#include "_hypre_struct_ls.h" +#include "_hypre_struct_mv.hpp" + +/*==========================================================================*/ + +HYPRE_Int +hypre_StructDiagScale( hypre_StructMatrix *A, + hypre_StructVector *y, + hypre_StructVector *x ) +{ + hypre_BoxArray *boxes; + hypre_Box *box; + + hypre_Box *A_data_box; + hypre_Box *y_data_box; + hypre_Box *x_data_box; + + HYPRE_Real *Ap; + HYPRE_Real *yp; + HYPRE_Real *xp; + + hypre_Index index; + hypre_IndexRef start; + hypre_Index stride; + hypre_Index loop_size; + + HYPRE_Int i; + + /* x = D^{-1} y */ + hypre_SetIndex(stride, 1); + boxes = hypre_StructGridBoxes(hypre_StructMatrixGrid(A)); + hypre_ForBoxI(i, boxes) + { + box = hypre_BoxArrayBox(boxes, i); + + A_data_box = hypre_BoxArrayBox(hypre_StructMatrixDataSpace(A), i); + x_data_box = hypre_BoxArrayBox(hypre_StructVectorDataSpace(x), i); + y_data_box = hypre_BoxArrayBox(hypre_StructVectorDataSpace(y), i); + + hypre_SetIndex(index, 0); + Ap = hypre_StructMatrixExtractPointerByIndex(A, i, index); + xp = hypre_StructVectorBoxData(x, i); + yp = hypre_StructVectorBoxData(y, i); + + start = hypre_BoxIMin(box); + + hypre_BoxGetSize(box, loop_size); + +#define DEVICE_VAR is_device_ptr(xp,yp,Ap) + hypre_BoxLoop3Begin(hypre_StructVectorNDim(x), loop_size, + A_data_box, start, stride, Ai, + x_data_box, start, stride, xi, + y_data_box, start, stride, yi); + { + xp[xi] = yp[yi] / Ap[Ai]; + } + hypre_BoxLoop3End(Ai, xi, yi); +#undef DEVICE_VAR + } + + return hypre_error_flag; +} diff --git a/src/struct_ls/headers b/src/struct_ls/headers index 795d6943b2..d12b8bbbbf 100755 --- a/src/struct_ls/headers +++ b/src/struct_ls/headers @@ -27,6 +27,10 @@ cat > $INTERNAL_HEADER <<@ #include "HYPRE_MatvecFunctions.h" /* ... needed to make sense of functions in HYPRE_parcsr_int.c */ +#ifdef HYPRE_MIXED_PRECISION +#include "struct_ls_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/struct_ls/protos.h b/src/struct_ls/protos.h index 1c8b9fccd2..3105dcdd8f 100644 --- a/src/struct_ls/protos.h +++ b/src/struct_ls/protos.h @@ -640,3 +640,8 @@ HYPRE_Int hypre_SparseMSGSetupRAPOp ( hypre_StructMatrix *R, hypre_StructMatrix /* sparse_msg_solve.c */ HYPRE_Int hypre_SparseMSGSolve ( void *smsg_vdata, hypre_StructMatrix *A, hypre_StructVector *b, hypre_StructVector *x ); +/* setrandom.c */ +HYPRE_Int hypre_StructVectorSetRandomValues( hypre_StructVector *vector, HYPRE_Int seed ); +HYPRE_Int hypre_StructSetRandomValues( void* v, HYPRE_Int seed ); +/* diagscale.c */ +HYPRE_Int hypre_StructDiagScale( hypre_StructMatrix *A, hypre_StructVector *y, hypre_StructVector *x ); diff --git a/src/struct_ls/setrandom.c b/src/struct_ls/setrandom.c new file mode 100644 index 0000000000..0e69493baa --- /dev/null +++ b/src/struct_ls/setrandom.c @@ -0,0 +1,79 @@ +/****************************************************************************** + * 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) + ******************************************************************************/ + +#include "_hypre_struct_ls.h" +#include "temp_multivector.h" +#include "_hypre_struct_mv.hpp" + +HYPRE_Int +hypre_StructVectorSetRandomValues( hypre_StructVector *vector, + HYPRE_Int seed ) +{ + hypre_Box *v_data_box; + HYPRE_Real *vp; + hypre_BoxArray *boxes; + hypre_Box *box; + hypre_Index loop_size; + hypre_IndexRef start; + hypre_Index unit_stride; + HYPRE_Int i; + HYPRE_Complex *data = hypre_StructVectorData(vector); + HYPRE_Complex *data_host = NULL; + HYPRE_Int data_size = hypre_StructVectorDataSize(vector); + HYPRE_MemoryLocation memory_location = hypre_StructVectorMemoryLocation(vector); + + /*----------------------------------------------------------------------- + * Set the vector coefficients + *-----------------------------------------------------------------------*/ + + // srand( seed ); + hypre_SeedRand(seed); + + hypre_SetIndex3(unit_stride, 1, 1, 1); + + boxes = hypre_StructGridBoxes(hypre_StructVectorGrid(vector)); + + if (hypre_GetExecPolicy1(memory_location) == HYPRE_EXEC_DEVICE) + { + data_host = hypre_CTAlloc(HYPRE_Complex, data_size, HYPRE_MEMORY_HOST); + hypre_StructVectorData(vector) = data_host; + } + + hypre_ForBoxI(i, boxes) + { + box = hypre_BoxArrayBox(boxes, i); + start = hypre_BoxIMin(box); + + v_data_box = hypre_BoxArrayBox(hypre_StructVectorDataSpace(vector), i); + vp = hypre_StructVectorBoxData(vector, i); + + hypre_BoxGetSize(box, loop_size); + + hypre_SerialBoxLoop1Begin(hypre_StructVectorNDim(vector), loop_size, + v_data_box, start, unit_stride, vi); + { + vp[vi] = 2.0 * hypre_Rand() - 1.0; + } + hypre_SerialBoxLoop1End(vi); + } + + if (data_host) + { + hypre_TMemcpy(data, data_host, HYPRE_Complex, data_size, memory_location, HYPRE_MEMORY_HOST); + hypre_StructVectorData(vector) = data; + hypre_TFree(data_host, HYPRE_MEMORY_HOST); + } + + return hypre_error_flag; +} + +HYPRE_Int +hypre_StructSetRandomValues( void* v, HYPRE_Int seed ) +{ + + return hypre_StructVectorSetRandomValues( (hypre_StructVector*)v, seed ); +} diff --git a/src/struct_ls/struct_ls_func_header b/src/struct_ls/struct_ls_func_header new file mode 100755 index 0000000000..86a6e68d94 --- /dev/null +++ b/src/struct_ls/struct_ls_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=struct_ls_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'struct_ls_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef STRUCT_LS_MUP_FUNC_HEADER +#define STRUCT_LS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=struct_ls_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/struct_ls/struct_ls_functions.saved b/src/struct_ls/struct_ls_functions.saved new file mode 100644 index 0000000000..a9bc0d71c8 --- /dev/null +++ b/src/struct_ls/struct_ls_functions.saved @@ -0,0 +1,709 @@ +hypre_StructCoarsen +hypre_StructMapCoarseToFine +hypre_StructMapFineToCoarse +hypre_CyclicReduction +hypre_CyclicReductionCreate +hypre_CyclicReductionDestroy +hypre_CyclicReductionSetBase +hypre_CyclicReductionSetCDir +hypre_CyclicReductionSetMaxLevel +hypre_CyclicReductionSetup +hypre_CycRedCreateCoarseOp +hypre_CycRedSetupCoarseOp +hypre_StructDiagScale +hypre_structbicgstabcreate +hypre_structbicgstabdestroy +hypre_structbicgstabgetfinalrel +hypre_structbicgstabgetnumitera +hypre_structbicgstabgetresidual +hypre_structbicgstabsetabstol +hypre_structbicgstabsetlogging +hypre_structbicgstabsetmaxiter +hypre_structbicgstabsetprecond +hypre_structbicgstabsetprintlev +hypre_structbicgstabsettol +hypre_structbicgstabsetup +hypre_structbicgstabsolve +hypre_structcycredcreate +hypre_structcycreddestroy +hypre_structcycredsetbase +hypre_structcycredsettdim +hypre_structcycredsetup +hypre_structcycredsolve +hypre_structfgmrescreate +hypre_structfgmresdestroy +hypre_structfgmresgetfinalrel +hypre_structfgmresgetnumiter +hypre_structfgmressetabstol +hypre_structfgmressetkdim +hypre_structfgmressetlogging +hypre_structfgmressetmaxiter +hypre_structfgmressetprecond +hypre_structfgmressetprintlevel +hypre_structfgmressettol +hypre_structfgmressetup +hypre_structfgmressolve +hypre_structgmrescreate +hypre_structgmresdestroy +hypre_structgmresgetfinalrelati +hypre_structgmresgetnumiteratio +hypre_structgmressetabstol +hypre_structgmressetkdim +hypre_structgmressetlogging +hypre_structgmressetmaxiter +hypre_structgmressetprecond +hypre_structgmressetprintlevel +hypre_structgmressettol +hypre_structgmressetup +hypre_structgmressolve +hypre_structhybridcreate +hypre_structhybriddestroy +hypre_structhybridgetdscgnumite +hypre_structhybridgetfinalrelat +hypre_structhybridgetnumiterati +hypre_structhybridgetpcgnumiter +hypre_structhybridsetconvergenc +hypre_structhybridsetdscgmaxite +hypre_structhybridsetkdim +hypre_structhybridsetlogging +hypre_structhybridsetpcgabsolut +hypre_structhybridsetpcgmaxiter +hypre_structhybridsetprecond +hypre_structhybridsetprintlevel +hypre_structhybridsetrelchange +hypre_structhybridsetsolvertype +hypre_structhybridsetstopcrit +hypre_structhybridsettol +hypre_structhybridsettwonorm +hypre_structhybridsetup +hypre_structhybridsolve +hypre_structsetrandomvalues +hypre_structsetupinterpreter +hypre_structsetupmatvec +hypre_structvectorsetrandomvalu +hypre_structjacobicreate +hypre_structjacobidestroy +hypre_structjacobigetfinalrelat +hypre_structjacobigetmaxiter +hypre_structjacobigetnumiterati +hypre_structjacobigettol +hypre_structjacobigetzeroguess +hypre_structjacobisetmaxiter +hypre_structjacobisetnonzerogue +hypre_structjacobisettol +hypre_structjacobisetup +hypre_structjacobisetzeroguess +hypre_structjacobisolve +hypre_structlgmrescreate +hypre_structlgmresdestroy +hypre_structlgmresgetfinalrel +hypre_structlgmresgetnumiter +hypre_structlgmressetabstol +hypre_structlgmressetaugdim +hypre_structlgmressetkdim +hypre_structlgmressetlogging +hypre_structlgmressetmaxiter +hypre_structlgmressetprecond +hypre_structlgmressetprintlevel +hypre_structlgmressettol +hypre_structlgmressetup +hypre_structlgmressolve +hypre_structdiagscale +hypre_structdiagscalesetup +hypre_structpcgcreate +hypre_structpcgdestroy +hypre_structpcggetfinalrelative +hypre_structpcggetnumiterations +hypre_structpcgsetabstol +hypre_structpcgsetlogging +hypre_structpcgsetmaxiter +hypre_structpcgsetprecond +hypre_structpcgsetprintlevel +hypre_structpcgsetrelchange +hypre_structpcgsettol +hypre_structpcgsettwonorm +hypre_structpcgsetup +hypre_structpcgsolve +hypre_structpfmgcreate +hypre_structpfmgdestroy +hypre_structpfmggetfinalrelativ +hypre_structpfmggetlogging +hypre_structpfmggetmaxiter +hypre_structpfmggetmaxlevels +hypre_structpfmggetnumiteration +hypre_structpfmggetnumpostrelax +hypre_structpfmggetnumprerelax +hypre_structpfmggetprintlevel +hypre_structpfmggetraptype +hypre_structpfmggetrelaxtype +hypre_structpfmggetrelchange +hypre_structpfmggetskiprelax +hypre_structpfmggettol +hypre_structpfmggetzeroguess +hypre_structpfmgsetdxyz +hypre_structpfmgsetjacobiweigh +hypre_structpfmgsetlogging +hypre_structpfmgsetmaxiter +hypre_structpfmgsetmaxlevels +hypre_structpfmgsetnonzeroguess +hypre_structpfmgsetnumpostrelax +hypre_structpfmgsetnumprerelax +hypre_structpfmgsetprintlevel +hypre_structpfmgsetraptype +hypre_structpfmgsetrelaxtype +hypre_structpfmgsetrelchange +hypre_structpfmgsetskiprelax +hypre_structpfmgsettol +hypre_structpfmgsetup +hypre_structpfmgsetzeroguess +hypre_structpfmgsolve +hypre_structsmgcreate +hypre_structsmgdestroy +hypre_structsmggetfinalrelative +hypre_structsmggetlogging +hypre_structsmggetmaxiter +hypre_structsmggetmemoryuse +hypre_structsmggetnumiterations +hypre_structsmggetnumpostrelax +hypre_structsmggetnumprerelax +hypre_structsmggetprintlevel +hypre_structsmggetrelchange +hypre_structsmggettol +hypre_structsmggetzeroguess +hypre_structsmgsetlogging +hypre_structsmgsetmaxiter +hypre_structsmgsetmemoryuse +hypre_structsmgsetnonzeroguess +hypre_structsmgsetnumpostrelax +hypre_structsmgsetnumprerelax +hypre_structsmgsetprintlevel +hypre_structsmgsetrelchange +hypre_structsmgsettol +hypre_structsmgsetup +hypre_structsmgsetzeroguess +hypre_structsmgsolve +hypre_structsparsemsgcreate +hypre_structsparsemsgdestroy +hypre_structsparsemsggetfinalre +hypre_structsparsemsggetnumiter +hypre_structsparsemsgsetjacobiweigh +hypre_structsparsemsgsetjump +hypre_structsparsemsgsetlogging +hypre_structsparsemsgsetmaxiter +hypre_structsparsemsgsetnonzero +hypre_structsparsemsgsetnumfine +hypre_structsparsemsgsetnumpost +hypre_structsparsemsgsetnumprer +hypre_structsparsemsgsetprintle +hypre_structsparsemsgsetrelaxty +hypre_structsparsemsgsetrelchan +hypre_structsparsemsgsettol +hypre_structsparsemsgsetup +hypre_structsparsemsgsetzerogue +hypre_structsparsemsgsolve +hypre_HybridCreate +hypre_HybridDestroy +hypre_HybridGetDSCGNumIterations +hypre_HybridGetFinalRelativeResidualNorm +hypre_HybridGetNumIterations +hypre_HybridGetPCGNumIterations +hypre_HybridGetRecomputeResidual +hypre_HybridGetRecomputeResidualP +hypre_HybridSetConvergenceTol +hypre_HybridSetDSCGMaxIter +hypre_HybridSetKDim +hypre_HybridSetLogging +hypre_HybridSetPCGAbsoluteTolFactor +hypre_HybridSetPCGMaxIter +hypre_HybridSetPrecond +hypre_HybridSetPrintLevel +hypre_HybridSetRecomputeResidual +hypre_HybridSetRecomputeResidualP +hypre_HybridSetRelChange +hypre_HybridSetSolverType +hypre_HybridSetStopCrit +hypre_HybridSetTol +hypre_HybridSetTwoNorm +hypre_HybridSetup +hypre_HybridSolve +hypre_HybridSolveUseBiCGSTAB +hypre_HybridSolveUseGMRES +hypre_HybridSolveUsePCG +HYPRE_StructBiCGSTABCreate +HYPRE_StructBiCGSTABDestroy +HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm +HYPRE_StructBiCGSTABGetNumIterations +HYPRE_StructBiCGSTABGetResidual +HYPRE_StructBiCGSTABSetAbsoluteTol +HYPRE_StructBiCGSTABSetLogging +HYPRE_StructBiCGSTABSetMaxIter +HYPRE_StructBiCGSTABSetPrecond +HYPRE_StructBiCGSTABSetPrintLevel +HYPRE_StructBiCGSTABSetTol +HYPRE_StructBiCGSTABSetup +HYPRE_StructBiCGSTABSolve +HYPRE_StructCycRedCreate +HYPRE_StructCycRedDestroy +HYPRE_StructCycRedSetBase +HYPRE_StructCycRedSetTDim +HYPRE_StructCycRedSetup +HYPRE_StructCycRedSolve +HYPRE_StructFlexGMRESCreate +HYPRE_StructFlexGMRESDestroy +HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm +HYPRE_StructFlexGMRESGetNumIterations +HYPRE_StructFlexGMRESSetAbsoluteTol +HYPRE_StructFlexGMRESSetKDim +HYPRE_StructFlexGMRESSetLogging +HYPRE_StructFlexGMRESSetMaxIter +HYPRE_StructFlexGMRESSetModifyPC +HYPRE_StructFlexGMRESSetPrecond +HYPRE_StructFlexGMRESSetPrintLevel +HYPRE_StructFlexGMRESSetTol +HYPRE_StructFlexGMRESSetup +HYPRE_StructFlexGMRESSolve +HYPRE_StructGMRESCreate +HYPRE_StructGMRESDestroy +HYPRE_StructGMRESGetFinalRelativeResidualNorm +HYPRE_StructGMRESGetNumIterations +HYPRE_StructGMRESSetAbsoluteTol +HYPRE_StructGMRESSetKDim +HYPRE_StructGMRESSetLogging +HYPRE_StructGMRESSetMaxIter +HYPRE_StructGMRESSetPrecond +HYPRE_StructGMRESSetPrintLevel +HYPRE_StructGMRESSetTol +HYPRE_StructGMRESSetup +HYPRE_StructGMRESSolve +HYPRE_StructHybridCreate +HYPRE_StructHybridDestroy +HYPRE_StructHybridGetDSCGNumIterations +HYPRE_StructHybridGetFinalRelativeResidualNorm +HYPRE_StructHybridGetNumIterations +HYPRE_StructHybridGetPCGNumIterations +HYPRE_StructHybridGetRecomputeResidual +HYPRE_StructHybridGetRecomputeResidualP +HYPRE_StructHybridSetConvergenceTol +HYPRE_StructHybridSetDSCGMaxIter +HYPRE_StructHybridSetKDim +HYPRE_StructHybridSetLogging +HYPRE_StructHybridSetPCGAbsoluteTolFactor +HYPRE_StructHybridSetPCGMaxIter +HYPRE_StructHybridSetPrecond +HYPRE_StructHybridSetPrintLevel +HYPRE_StructHybridSetRecomputeResidual +HYPRE_StructHybridSetRecomputeResidualP +HYPRE_StructHybridSetRelChange +HYPRE_StructHybridSetSolverType +HYPRE_StructHybridSetStopCrit +HYPRE_StructHybridSetTol +HYPRE_StructHybridSetTwoNorm +HYPRE_StructHybridSetup +HYPRE_StructHybridSolve +HYPRE_StructSetupInterpreter +HYPRE_StructSetupMatvec +HYPRE_StructJacobiCreate +HYPRE_StructJacobiDestroy +HYPRE_StructJacobiGetFinalRelativeResidualNorm +HYPRE_StructJacobiGetMaxIter +HYPRE_StructJacobiGetNumIterations +HYPRE_StructJacobiGetTol +HYPRE_StructJacobiGetZeroGuess +HYPRE_StructJacobiSetMaxIter +HYPRE_StructJacobiSetNonZeroGuess +HYPRE_StructJacobiSetTol +HYPRE_StructJacobiSetup +HYPRE_StructJacobiSetZeroGuess +HYPRE_StructJacobiSolve +HYPRE_StructLGMRESCreate +HYPRE_StructLGMRESDestroy +HYPRE_StructLGMRESGetFinalRelativeResidualNorm +HYPRE_StructLGMRESGetNumIterations +HYPRE_StructLGMRESSetAbsoluteTol +HYPRE_StructLGMRESSetAugDim +HYPRE_StructLGMRESSetKDim +HYPRE_StructLGMRESSetLogging +HYPRE_StructLGMRESSetMaxIter +HYPRE_StructLGMRESSetPrecond +HYPRE_StructLGMRESSetPrintLevel +HYPRE_StructLGMRESSetTol +HYPRE_StructLGMRESSetup +HYPRE_StructLGMRESSolve +HYPRE_StructDiagScale +HYPRE_StructDiagScaleSetup +HYPRE_StructPCGCreate +HYPRE_StructPCGDestroy +HYPRE_StructPCGGetFinalRelativeResidualNorm +HYPRE_StructPCGGetNumIterations +HYPRE_StructPCGSetAbsoluteTol +HYPRE_StructPCGSetLogging +HYPRE_StructPCGSetMaxIter +HYPRE_StructPCGSetPrecond +HYPRE_StructPCGSetPrintLevel +HYPRE_StructPCGSetRelChange +HYPRE_StructPCGSetTol +HYPRE_StructPCGSetTwoNorm +HYPRE_StructPCGSetup +HYPRE_StructPCGSolve +HYPRE_StructPFMGCreate +HYPRE_StructPFMGDestroy +HYPRE_StructPFMGGetFinalRelativeResidualNorm +HYPRE_StructPFMGGetJacobiWeight +HYPRE_StructPFMGGetLogging +HYPRE_StructPFMGGetMaxIter +HYPRE_StructPFMGGetMaxLevels +HYPRE_StructPFMGGetNumIterations +HYPRE_StructPFMGGetNumPostRelax +HYPRE_StructPFMGGetNumPreRelax +HYPRE_StructPFMGGetPrintLevel +HYPRE_StructPFMGGetRAPType +HYPRE_StructPFMGGetRelaxType +HYPRE_StructPFMGGetRelChange +HYPRE_StructPFMGGetSkipRelax +HYPRE_StructPFMGGetTol +HYPRE_StructPFMGGetZeroGuess +HYPRE_StructPFMGSetDxyz +HYPRE_StructPFMGSetJacobiWeight +HYPRE_StructPFMGSetLogging +HYPRE_StructPFMGSetMaxIter +HYPRE_StructPFMGSetMaxLevels +HYPRE_StructPFMGSetNonZeroGuess +HYPRE_StructPFMGSetNumPostRelax +HYPRE_StructPFMGSetNumPreRelax +HYPRE_StructPFMGSetPrintLevel +HYPRE_StructPFMGSetRAPType +HYPRE_StructPFMGSetRelaxType +HYPRE_StructPFMGSetRelChange +HYPRE_StructPFMGSetSkipRelax +HYPRE_StructPFMGSetTol +HYPRE_StructPFMGSetup +HYPRE_StructPFMGSetZeroGuess +HYPRE_StructPFMGSolve +HYPRE_StructSMGCreate +HYPRE_StructSMGDestroy +HYPRE_StructSMGGetFinalRelativeResidualNorm +HYPRE_StructSMGGetLogging +HYPRE_StructSMGGetMaxIter +HYPRE_StructSMGGetMemoryUse +HYPRE_StructSMGGetNumIterations +HYPRE_StructSMGGetNumPostRelax +HYPRE_StructSMGGetNumPreRelax +HYPRE_StructSMGGetPrintLevel +HYPRE_StructSMGGetRelChange +HYPRE_StructSMGGetTol +HYPRE_StructSMGGetZeroGuess +HYPRE_StructSMGSetLogging +HYPRE_StructSMGSetMaxIter +HYPRE_StructSMGSetMemoryUse +HYPRE_StructSMGSetNonZeroGuess +HYPRE_StructSMGSetNumPostRelax +HYPRE_StructSMGSetNumPreRelax +HYPRE_StructSMGSetPrintLevel +HYPRE_StructSMGSetRelChange +HYPRE_StructSMGSetTol +HYPRE_StructSMGSetup +HYPRE_StructSMGSetZeroGuess +HYPRE_StructSMGSolve +HYPRE_StructSparseMSGCreate +HYPRE_StructSparseMSGDestroy +HYPRE_StructSparseMSGGetFinalRelativeResidualNorm +HYPRE_StructSparseMSGGetNumIterations +HYPRE_StructSparseMSGSetJacobiWeight +HYPRE_StructSparseMSGSetJump +HYPRE_StructSparseMSGSetLogging +HYPRE_StructSparseMSGSetMaxIter +HYPRE_StructSparseMSGSetNonZeroGuess +HYPRE_StructSparseMSGSetNumFineRelax +HYPRE_StructSparseMSGSetNumPostRelax +HYPRE_StructSparseMSGSetNumPreRelax +HYPRE_StructSparseMSGSetPrintLevel +HYPRE_StructSparseMSGSetRelaxType +HYPRE_StructSparseMSGSetRelChange +HYPRE_StructSparseMSGSetTol +HYPRE_StructSparseMSGSetup +HYPRE_StructSparseMSGSetZeroGuess +HYPRE_StructSparseMSGSolve +hypre_JacobiCreate +hypre_JacobiDestroy +hypre_JacobiGetFinalRelativeResidualNorm +hypre_JacobiGetMaxIter +hypre_JacobiGetNumIterations +hypre_JacobiGetTol +hypre_JacobiGetZeroGuess +hypre_JacobiSetMaxIter +hypre_JacobiSetTempVec +hypre_JacobiSetTol +hypre_JacobiSetup +hypre_JacobiSetZeroGuess +hypre_JacobiSolve +hypre_StructKrylovAxpy +hypre_StructKrylovCAlloc +hypre_StructKrylovClearVector +hypre_StructKrylovCommInfo +hypre_StructKrylovCopyVector +hypre_StructKrylovCreateVector +hypre_StructKrylovCreateVectorArray +hypre_StructKrylovDestroyVector +hypre_StructKrylovFree +hypre_StructKrylovIdentity +hypre_StructKrylovIdentitySetup +hypre_StructKrylovInnerProd +hypre_StructKrylovMatvec +hypre_StructKrylovMatvecCreate +hypre_StructKrylovMatvecDestroy +hypre_StructKrylovScaleVector +hypre_PFMG2BuildRAPNoSym +hypre_PFMG2BuildRAPNoSym_onebox_FSS5_CC0 +hypre_PFMG2BuildRAPNoSym_onebox_FSS5_CC1 +hypre_PFMG2BuildRAPNoSym_onebox_FSS9_CC0 +hypre_PFMG2BuildRAPNoSym_onebox_FSS9_CC1 +hypre_PFMG2BuildRAPSym +hypre_PFMG2BuildRAPSym_onebox_FSS5_CC0 +hypre_PFMG2BuildRAPSym_onebox_FSS5_CC1 +hypre_PFMG2BuildRAPSym_onebox_FSS9_CC0 +hypre_PFMG2BuildRAPSym_onebox_FSS9_CC1 +hypre_PFMG2CreateRAPOp +hypre_PFMG3BuildRAPNoSym +hypre_PFMG3BuildRAPNoSym_onebox_FSS07_CC0 +hypre_PFMG3BuildRAPNoSym_onebox_FSS07_CC1 +hypre_PFMG3BuildRAPNoSym_onebox_FSS19_CC0 +hypre_PFMG3BuildRAPNoSym_onebox_FSS19_CC1 +hypre_PFMG3BuildRAPNoSym_onebox_FSS27_CC0 +hypre_PFMG3BuildRAPNoSym_onebox_FSS27_CC1 +hypre_PFMG3BuildRAPSym +hypre_PFMG3BuildRAPSym_onebox_FSS07_CC0 +hypre_PFMG3BuildRAPSym_onebox_FSS07_CC1 +hypre_PFMG3BuildRAPSym_onebox_FSS19_CC0 +hypre_PFMG3BuildRAPSym_onebox_FSS19_CC1 +hypre_PFMG3BuildRAPSym_onebox_FSS27_CC0 +hypre_PFMG3BuildRAPSym_onebox_FSS27_CC1 +hypre_PFMG3CreateRAPOp +hypre_PFMGCreate +hypre_PFMGDestroy +hypre_PFMGGetFinalRelativeResidualNorm +hypre_PFMGGetJacobiWeight +hypre_PFMGGetLogging +hypre_PFMGGetMaxIter +hypre_PFMGGetMaxLevels +hypre_PFMGGetNumIterations +hypre_PFMGGetNumPostRelax +hypre_PFMGGetNumPreRelax +hypre_PFMGGetPrintLevel +hypre_PFMGGetRAPType +hypre_PFMGGetRelaxType +hypre_PFMGGetRelChange +hypre_PFMGGetSkipRelax +hypre_PFMGGetTol +hypre_PFMGGetZeroGuess +hypre_PFMGPrintLogging +hypre_PFMGSetDxyz +hypre_PFMGSetJacobiWeight +hypre_PFMGSetLogging +hypre_PFMGSetMaxIter +hypre_PFMGSetMaxLevels +hypre_PFMGSetNumPostRelax +hypre_PFMGSetNumPreRelax +hypre_PFMGSetPrintLevel +hypre_PFMGSetRAPType +hypre_PFMGSetRelaxType +hypre_PFMGSetRelChange +hypre_PFMGSetSkipRelax +hypre_PFMGSetTol +hypre_PFMGSetZeroGuess +hypre_PFMGRelax +hypre_PFMGRelaxCreate +hypre_PFMGRelaxDestroy +hypre_PFMGRelaxSetJacobiWeight +hypre_PFMGRelaxSetMaxIter +hypre_PFMGRelaxSetPostRelax +hypre_PFMGRelaxSetPreRelax +hypre_PFMGRelaxSetTempVec +hypre_PFMGRelaxSetTol +hypre_PFMGRelaxSetType +hypre_PFMGRelaxSetup +hypre_PFMGRelaxSetZeroGuess +hypre_PFMGCreateInterpOp +hypre_PFMGSetupInterpOp +hypre_PFMGSetupInterpOp_CC0_SS15 +hypre_PFMGSetupInterpOp_CC0_SS19 +hypre_PFMGSetupInterpOp_CC0_SS27 +hypre_PFMGSetupInterpOp_CC0_SS5 +hypre_PFMGSetupInterpOp_CC0_SS7 +hypre_PFMGSetupInterpOp_CC0_SS9 +hypre_PFMGSetupInterpOp_CC1 +hypre_PFMGSetupInterpOp_CC2 +hypre_PFMGComputeDxyz +hypre_PFMGComputeDxyz_CS +hypre_PFMGComputeDxyz_SS19 +hypre_PFMGComputeDxyz_SS27 +hypre_PFMGComputeDxyz_SS5 +hypre_PFMGComputeDxyz_SS7 +hypre_PFMGComputeDxyz_SS9 +hypre_PFMGSetup +hypre_StructGetNonzeroDirection +hypre_ZeroDiagonal +hypre_PFMGBuildCoarseOp5 +hypre_PFMGCreateCoarseOp5 +hypre_PFMGBuildCoarseOp7 +hypre_PFMGCreateCoarseOp7 +hypre_PFMGCreateRAPOp +hypre_PFMGSetupRAPOp +hypre_PFMGSolve +hypre_PointRelax +hypre_PointRelax_core0 +hypre_PointRelax_core12 +hypre_PointRelaxCreate +hypre_PointRelaxDestroy +hypre_PointRelaxGetFinalRelativeResidualNorm +hypre_PointRelaxGetMaxIter +hypre_PointRelaxGetNumIterations +hypre_PointRelaxGetTol +hypre_PointRelaxGetZeroGuess +hypre_PointRelaxSetMaxIter +hypre_PointRelaxSetNumPointsets +hypre_PointRelaxSetPointset +hypre_PointRelaxSetPointsetRank +hypre_PointRelaxSetTempVec +hypre_PointRelaxSetTol +hypre_PointRelaxSetup +hypre_PointRelaxSetWeight +hypre_PointRelaxSetZeroGuess +hypre_relax_copy +hypre_relax_wtx +hypre_RedBlackConstantCoefGS +hypre_RedBlackGS +hypre_RedBlackGSCreate +hypre_RedBlackGSDestroy +hypre_RedBlackGSSetMaxIter +hypre_RedBlackGSSetStartBlack +hypre_RedBlackGSSetStartRed +hypre_RedBlackGSSetTol +hypre_RedBlackGSSetup +hypre_RedBlackGSSetZeroGuess +hypre_SemiInterp +hypre_SemiInterpCreate +hypre_SemiInterpDestroy +hypre_SemiInterpSetup +hypre_StructInterpAssemble +hypre_SemiRestrict +hypre_SemiRestrictCreate +hypre_SemiRestrictDestroy +hypre_SemiRestrictSetup +hypre_SemiBuildRAP +hypre_SemiCreateRAPOp +hypre_StructSetRandomValues +hypre_StructVectorSetRandomValues +hypre_SMG2BuildRAPNoSym +hypre_SMG2BuildRAPSym +hypre_SMG2CreateRAPOp +hypre_SMG2RAPPeriodicNoSym +hypre_SMG2RAPPeriodicSym +hypre_SMG3BuildRAPNoSym +hypre_SMG3BuildRAPSym +hypre_SMG3CreateRAPOp +hypre_SMG3RAPPeriodicNoSym +hypre_SMG3RAPPeriodicSym +hypre_SMGAxpy +hypre_SMGCreate +hypre_SMGDestroy +hypre_SMGGetFinalRelativeResidualNorm +hypre_SMGGetLogging +hypre_SMGGetMaxIter +hypre_SMGGetMemoryUse +hypre_SMGGetNumIterations +hypre_SMGGetNumPostRelax +hypre_SMGGetNumPreRelax +hypre_SMGGetPrintLevel +hypre_SMGGetRelChange +hypre_SMGGetTol +hypre_SMGGetZeroGuess +hypre_SMGPrintLogging +hypre_SMGSetBase +hypre_SMGSetLogging +hypre_SMGSetMaxIter +hypre_SMGSetMemoryUse +hypre_SMGSetNumPostRelax +hypre_SMGSetNumPreRelax +hypre_SMGSetPrintLevel +hypre_SMGSetRelChange +hypre_SMGSetStructVectorConstantValues +hypre_SMGSetTol +hypre_SMGSetZeroGuess +hypre_StructSMGSetMaxLevel +hypre_SMGRelax +hypre_SMGRelaxCreate +hypre_SMGRelaxDestroy +hypre_SMGRelaxDestroyARem +hypre_SMGRelaxDestroyASol +hypre_SMGRelaxDestroyTempVec +hypre_SMGRelaxSetBase +hypre_SMGRelaxSetMaxIter +hypre_SMGRelaxSetMaxLevel +hypre_SMGRelaxSetMemoryUse +hypre_SMGRelaxSetNewMatrixStencil +hypre_SMGRelaxSetNumPostRelax +hypre_SMGRelaxSetNumPreRelax +hypre_SMGRelaxSetNumPreSpaces +hypre_SMGRelaxSetNumRegSpaces +hypre_SMGRelaxSetNumSpaces +hypre_SMGRelaxSetPreSpaceRank +hypre_SMGRelaxSetRegSpaceRank +hypre_SMGRelaxSetSpace +hypre_SMGRelaxSetTempVec +hypre_SMGRelaxSetTol +hypre_SMGRelaxSetup +hypre_SMGRelaxSetupARem +hypre_SMGRelaxSetupASol +hypre_SMGRelaxSetupBaseBoxArray +hypre_SMGRelaxSetupTempVec +hypre_SMGRelaxSetZeroGuess +hypre_SMGResidual +hypre_SMGResidualCreate +hypre_SMGResidualDestroy +hypre_SMGResidualSetBase +hypre_SMGResidualSetup +hypre_SMGCreateInterpOp +hypre_SMGSetupInterpOp +hypre_SMGSetup +hypre_SMGCreateRAPOp +hypre_SMGSetupRAPOp +hypre_SMGCreateRestrictOp +hypre_SMGSetupRestrictOp +hypre_SMGSolve +hypre_SparseMSG2BuildRAPNoSym +hypre_SparseMSG2BuildRAPSym +hypre_SparseMSG2CreateRAPOp +hypre_SparseMSG3BuildRAPNoSym +hypre_SparseMSG3BuildRAPSym +hypre_SparseMSG3CreateRAPOp +hypre_SparseMSGFilter +hypre_SparseMSGFilterSetup +hypre_SparseMSGInterp +hypre_SparseMSGInterpCreate +hypre_SparseMSGInterpDestroy +hypre_SparseMSGInterpSetup +hypre_SparseMSGCreate +hypre_SparseMSGDestroy +hypre_SparseMSGGetFinalRelativeResidualNorm +hypre_SparseMSGGetNumIterations +hypre_SparseMSGPrintLogging +hypre_SparseMSGSetJacobiWeight +hypre_SparseMSGSetJump +hypre_SparseMSGSetLogging +hypre_SparseMSGSetMaxIter +hypre_SparseMSGSetNumFineRelax +hypre_SparseMSGSetNumPostRelax +hypre_SparseMSGSetNumPreRelax +hypre_SparseMSGSetPrintLevel +hypre_SparseMSGSetRelaxType +hypre_SparseMSGSetRelChange +hypre_SparseMSGSetTol +hypre_SparseMSGSetZeroGuess +hypre_SparseMSGRestrict +hypre_SparseMSGRestrictCreate +hypre_SparseMSGRestrictDestroy +hypre_SparseMSGRestrictSetup +hypre_SparseMSGSetup +hypre_SparseMSGCreateRAPOp +hypre_SparseMSGSetupRAPOp +hypre_SparseMSGSolve diff --git a/src/struct_ls/struct_ls_mup_func.h b/src/struct_ls/struct_ls_mup_func.h new file mode 100644 index 0000000000..e7395113dd --- /dev/null +++ b/src/struct_ls/struct_ls_mup_func.h @@ -0,0 +1,729 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'struct_ls_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef STRUCT_LS_MUP_FUNC_HEADER +#define STRUCT_LS_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_StructCoarsen HYPRE_MULTIPRECISION_FUNC ( hypre_StructCoarsen ) +#define hypre_StructMapCoarseToFine HYPRE_MULTIPRECISION_FUNC ( hypre_StructMapCoarseToFine ) +#define hypre_StructMapFineToCoarse HYPRE_MULTIPRECISION_FUNC ( hypre_StructMapFineToCoarse ) +#define hypre_CyclicReduction HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReduction ) +#define hypre_CyclicReductionCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReductionCreate ) +#define hypre_CyclicReductionDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReductionDestroy ) +#define hypre_CyclicReductionSetBase HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReductionSetBase ) +#define hypre_CyclicReductionSetCDir HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReductionSetCDir ) +#define hypre_CyclicReductionSetMaxLevel HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReductionSetMaxLevel ) +#define hypre_CyclicReductionSetup HYPRE_MULTIPRECISION_FUNC ( hypre_CyclicReductionSetup ) +#define hypre_CycRedCreateCoarseOp HYPRE_MULTIPRECISION_FUNC ( hypre_CycRedCreateCoarseOp ) +#define hypre_CycRedSetupCoarseOp HYPRE_MULTIPRECISION_FUNC ( hypre_CycRedSetupCoarseOp ) +#define hypre_StructDiagScale HYPRE_MULTIPRECISION_FUNC ( hypre_StructDiagScale ) +#define hypre_structbicgstabcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabcreate ) +#define hypre_structbicgstabdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabdestroy ) +#define hypre_structbicgstabgetfinalrel HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabgetfinalrel ) +#define hypre_structbicgstabgetnumitera HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabgetnumitera ) +#define hypre_structbicgstabgetresidual HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabgetresidual ) +#define hypre_structbicgstabsetabstol HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsetabstol ) +#define hypre_structbicgstabsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsetlogging ) +#define hypre_structbicgstabsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsetmaxiter ) +#define hypre_structbicgstabsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsetprecond ) +#define hypre_structbicgstabsetprintlev HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsetprintlev ) +#define hypre_structbicgstabsettol HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsettol ) +#define hypre_structbicgstabsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsetup ) +#define hypre_structbicgstabsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structbicgstabsolve ) +#define hypre_structcycredcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structcycredcreate ) +#define hypre_structcycreddestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structcycreddestroy ) +#define hypre_structcycredsetbase HYPRE_MULTIPRECISION_FUNC ( hypre_structcycredsetbase ) +#define hypre_structcycredsettdim HYPRE_MULTIPRECISION_FUNC ( hypre_structcycredsettdim ) +#define hypre_structcycredsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structcycredsetup ) +#define hypre_structcycredsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structcycredsolve ) +#define hypre_structfgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmrescreate ) +#define hypre_structfgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmresdestroy ) +#define hypre_structfgmresgetfinalrel HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmresgetfinalrel ) +#define hypre_structfgmresgetnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmresgetnumiter ) +#define hypre_structfgmressetabstol HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetabstol ) +#define hypre_structfgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetkdim ) +#define hypre_structfgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetlogging ) +#define hypre_structfgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetmaxiter ) +#define hypre_structfgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetprecond ) +#define hypre_structfgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetprintlevel ) +#define hypre_structfgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressettol ) +#define hypre_structfgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressetup ) +#define hypre_structfgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_structfgmressolve ) +#define hypre_structgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_structgmrescreate ) +#define hypre_structgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structgmresdestroy ) +#define hypre_structgmresgetfinalrelati HYPRE_MULTIPRECISION_FUNC ( hypre_structgmresgetfinalrelati ) +#define hypre_structgmresgetnumiteratio HYPRE_MULTIPRECISION_FUNC ( hypre_structgmresgetnumiteratio ) +#define hypre_structgmressetabstol HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetabstol ) +#define hypre_structgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetkdim ) +#define hypre_structgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetlogging ) +#define hypre_structgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetmaxiter ) +#define hypre_structgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetprecond ) +#define hypre_structgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetprintlevel ) +#define hypre_structgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressettol ) +#define hypre_structgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressetup ) +#define hypre_structgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_structgmressolve ) +#define hypre_structhybridcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridcreate ) +#define hypre_structhybriddestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structhybriddestroy ) +#define hypre_structhybridgetdscgnumite HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridgetdscgnumite ) +#define hypre_structhybridgetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridgetfinalrelat ) +#define hypre_structhybridgetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridgetnumiterati ) +#define hypre_structhybridgetpcgnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridgetpcgnumiter ) +#define hypre_structhybridsetconvergenc HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetconvergenc ) +#define hypre_structhybridsetdscgmaxite HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetdscgmaxite ) +#define hypre_structhybridsetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetkdim ) +#define hypre_structhybridsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetlogging ) +#define hypre_structhybridsetpcgabsolut HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetpcgabsolut ) +#define hypre_structhybridsetpcgmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetpcgmaxiter ) +#define hypre_structhybridsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetprecond ) +#define hypre_structhybridsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetprintlevel ) +#define hypre_structhybridsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetrelchange ) +#define hypre_structhybridsetsolvertype HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetsolvertype ) +#define hypre_structhybridsetstopcrit HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetstopcrit ) +#define hypre_structhybridsettol HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsettol ) +#define hypre_structhybridsettwonorm HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsettwonorm ) +#define hypre_structhybridsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsetup ) +#define hypre_structhybridsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structhybridsolve ) +#define hypre_structsetrandomvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structsetrandomvalues ) +#define hypre_structsetupinterpreter HYPRE_MULTIPRECISION_FUNC ( hypre_structsetupinterpreter ) +#define hypre_structsetupmatvec HYPRE_MULTIPRECISION_FUNC ( hypre_structsetupmatvec ) +#define hypre_structvectorsetrandomvalu HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorsetrandomvalu ) +#define hypre_structjacobicreate HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobicreate ) +#define hypre_structjacobidestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobidestroy ) +#define hypre_structjacobigetfinalrelat HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobigetfinalrelat ) +#define hypre_structjacobigetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobigetmaxiter ) +#define hypre_structjacobigetnumiterati HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobigetnumiterati ) +#define hypre_structjacobigettol HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobigettol ) +#define hypre_structjacobigetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobigetzeroguess ) +#define hypre_structjacobisetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobisetmaxiter ) +#define hypre_structjacobisetnonzerogue HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobisetnonzerogue ) +#define hypre_structjacobisettol HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobisettol ) +#define hypre_structjacobisetup HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobisetup ) +#define hypre_structjacobisetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobisetzeroguess ) +#define hypre_structjacobisolve HYPRE_MULTIPRECISION_FUNC ( hypre_structjacobisolve ) +#define hypre_structlgmrescreate HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmrescreate ) +#define hypre_structlgmresdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmresdestroy ) +#define hypre_structlgmresgetfinalrel HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmresgetfinalrel ) +#define hypre_structlgmresgetnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmresgetnumiter ) +#define hypre_structlgmressetabstol HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetabstol ) +#define hypre_structlgmressetaugdim HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetaugdim ) +#define hypre_structlgmressetkdim HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetkdim ) +#define hypre_structlgmressetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetlogging ) +#define hypre_structlgmressetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetmaxiter ) +#define hypre_structlgmressetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetprecond ) +#define hypre_structlgmressetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetprintlevel ) +#define hypre_structlgmressettol HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressettol ) +#define hypre_structlgmressetup HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressetup ) +#define hypre_structlgmressolve HYPRE_MULTIPRECISION_FUNC ( hypre_structlgmressolve ) +#define hypre_structdiagscale HYPRE_MULTIPRECISION_FUNC ( hypre_structdiagscale ) +#define hypre_structdiagscalesetup HYPRE_MULTIPRECISION_FUNC ( hypre_structdiagscalesetup ) +#define hypre_structpcgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgcreate ) +#define hypre_structpcgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgdestroy ) +#define hypre_structpcggetfinalrelative HYPRE_MULTIPRECISION_FUNC ( hypre_structpcggetfinalrelative ) +#define hypre_structpcggetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_structpcggetnumiterations ) +#define hypre_structpcgsetabstol HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetabstol ) +#define hypre_structpcgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetlogging ) +#define hypre_structpcgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetmaxiter ) +#define hypre_structpcgsetprecond HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetprecond ) +#define hypre_structpcgsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetprintlevel ) +#define hypre_structpcgsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetrelchange ) +#define hypre_structpcgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsettol ) +#define hypre_structpcgsettwonorm HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsettwonorm ) +#define hypre_structpcgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsetup ) +#define hypre_structpcgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structpcgsolve ) +#define hypre_structpfmgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgcreate ) +#define hypre_structpfmgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgdestroy ) +#define hypre_structpfmggetfinalrelativ HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetfinalrelativ ) +#define hypre_structpfmggetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetlogging ) +#define hypre_structpfmggetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetmaxiter ) +#define hypre_structpfmggetmaxlevels HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetmaxlevels ) +#define hypre_structpfmggetnumiteration HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetnumiteration ) +#define hypre_structpfmggetnumpostrelax HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetnumpostrelax ) +#define hypre_structpfmggetnumprerelax HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetnumprerelax ) +#define hypre_structpfmggetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetprintlevel ) +#define hypre_structpfmggetraptype HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetraptype ) +#define hypre_structpfmggetrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetrelaxtype ) +#define hypre_structpfmggetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetrelchange ) +#define hypre_structpfmggetskiprelax HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetskiprelax ) +#define hypre_structpfmggettol HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggettol ) +#define hypre_structpfmggetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmggetzeroguess ) +#define hypre_structpfmgsetdxyz HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetdxyz ) +#define hypre_structpfmgsetjacobiweigh HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetjacobiweigh ) +#define hypre_structpfmgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetlogging ) +#define hypre_structpfmgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetmaxiter ) +#define hypre_structpfmgsetmaxlevels HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetmaxlevels ) +#define hypre_structpfmgsetnonzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetnonzeroguess ) +#define hypre_structpfmgsetnumpostrelax HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetnumpostrelax ) +#define hypre_structpfmgsetnumprerelax HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetnumprerelax ) +#define hypre_structpfmgsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetprintlevel ) +#define hypre_structpfmgsetraptype HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetraptype ) +#define hypre_structpfmgsetrelaxtype HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetrelaxtype ) +#define hypre_structpfmgsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetrelchange ) +#define hypre_structpfmgsetskiprelax HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetskiprelax ) +#define hypre_structpfmgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsettol ) +#define hypre_structpfmgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetup ) +#define hypre_structpfmgsetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsetzeroguess ) +#define hypre_structpfmgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structpfmgsolve ) +#define hypre_structsmgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgcreate ) +#define hypre_structsmgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgdestroy ) +#define hypre_structsmggetfinalrelative HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetfinalrelative ) +#define hypre_structsmggetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetlogging ) +#define hypre_structsmggetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetmaxiter ) +#define hypre_structsmggetmemoryuse HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetmemoryuse ) +#define hypre_structsmggetnumiterations HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetnumiterations ) +#define hypre_structsmggetnumpostrelax HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetnumpostrelax ) +#define hypre_structsmggetnumprerelax HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetnumprerelax ) +#define hypre_structsmggetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetprintlevel ) +#define hypre_structsmggetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetrelchange ) +#define hypre_structsmggettol HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggettol ) +#define hypre_structsmggetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structsmggetzeroguess ) +#define hypre_structsmgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetlogging ) +#define hypre_structsmgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetmaxiter ) +#define hypre_structsmgsetmemoryuse HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetmemoryuse ) +#define hypre_structsmgsetnonzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetnonzeroguess ) +#define hypre_structsmgsetnumpostrelax HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetnumpostrelax ) +#define hypre_structsmgsetnumprerelax HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetnumprerelax ) +#define hypre_structsmgsetprintlevel HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetprintlevel ) +#define hypre_structsmgsetrelchange HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetrelchange ) +#define hypre_structsmgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsettol ) +#define hypre_structsmgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetup ) +#define hypre_structsmgsetzeroguess HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsetzeroguess ) +#define hypre_structsmgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structsmgsolve ) +#define hypre_structsparsemsgcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgcreate ) +#define hypre_structsparsemsgdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgdestroy ) +#define hypre_structsparsemsggetfinalre HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsggetfinalre ) +#define hypre_structsparsemsggetnumiter HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsggetnumiter ) +#define hypre_structsparsemsgsetjacobiweigh HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetjacobiweigh ) +#define hypre_structsparsemsgsetjump HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetjump ) +#define hypre_structsparsemsgsetlogging HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetlogging ) +#define hypre_structsparsemsgsetmaxiter HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetmaxiter ) +#define hypre_structsparsemsgsetnonzero HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetnonzero ) +#define hypre_structsparsemsgsetnumfine HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetnumfine ) +#define hypre_structsparsemsgsetnumpost HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetnumpost ) +#define hypre_structsparsemsgsetnumprer HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetnumprer ) +#define hypre_structsparsemsgsetprintle HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetprintle ) +#define hypre_structsparsemsgsetrelaxty HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetrelaxty ) +#define hypre_structsparsemsgsetrelchan HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetrelchan ) +#define hypre_structsparsemsgsettol HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsettol ) +#define hypre_structsparsemsgsetup HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetup ) +#define hypre_structsparsemsgsetzerogue HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsetzerogue ) +#define hypre_structsparsemsgsolve HYPRE_MULTIPRECISION_FUNC ( hypre_structsparsemsgsolve ) +#define hypre_HybridCreate HYPRE_MULTIPRECISION_FUNC ( hypre_HybridCreate ) +#define hypre_HybridDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_HybridDestroy ) +#define hypre_HybridGetDSCGNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_HybridGetDSCGNumIterations ) +#define hypre_HybridGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_HybridGetFinalRelativeResidualNorm ) +#define hypre_HybridGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_HybridGetNumIterations ) +#define hypre_HybridGetPCGNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_HybridGetPCGNumIterations ) +#define hypre_HybridGetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( hypre_HybridGetRecomputeResidual ) +#define hypre_HybridGetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( hypre_HybridGetRecomputeResidualP ) +#define hypre_HybridSetConvergenceTol HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetConvergenceTol ) +#define hypre_HybridSetDSCGMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetDSCGMaxIter ) +#define hypre_HybridSetKDim HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetKDim ) +#define hypre_HybridSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetLogging ) +#define hypre_HybridSetPCGAbsoluteTolFactor HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetPCGAbsoluteTolFactor ) +#define hypre_HybridSetPCGMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetPCGMaxIter ) +#define hypre_HybridSetPrecond HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetPrecond ) +#define hypre_HybridSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetPrintLevel ) +#define hypre_HybridSetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetRecomputeResidual ) +#define hypre_HybridSetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetRecomputeResidualP ) +#define hypre_HybridSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetRelChange ) +#define hypre_HybridSetSolverType HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetSolverType ) +#define hypre_HybridSetStopCrit HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetStopCrit ) +#define hypre_HybridSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetTol ) +#define hypre_HybridSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetTwoNorm ) +#define hypre_HybridSetup HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSetup ) +#define hypre_HybridSolve HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSolve ) +#define hypre_HybridSolveUseBiCGSTAB HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSolveUseBiCGSTAB ) +#define hypre_HybridSolveUseGMRES HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSolveUseGMRES ) +#define hypre_HybridSolveUsePCG HYPRE_MULTIPRECISION_FUNC ( hypre_HybridSolveUsePCG ) +#define HYPRE_StructBiCGSTABCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABCreate ) +#define HYPRE_StructBiCGSTABDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABDestroy ) +#define HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABGetFinalRelativeResidualNorm ) +#define HYPRE_StructBiCGSTABGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABGetNumIterations ) +#define HYPRE_StructBiCGSTABGetResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABGetResidual ) +#define HYPRE_StructBiCGSTABSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetAbsoluteTol ) +#define HYPRE_StructBiCGSTABSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetLogging ) +#define HYPRE_StructBiCGSTABSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetMaxIter ) +#define HYPRE_StructBiCGSTABSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetPrecond ) +#define HYPRE_StructBiCGSTABSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetPrintLevel ) +#define HYPRE_StructBiCGSTABSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetTol ) +#define HYPRE_StructBiCGSTABSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSetup ) +#define HYPRE_StructBiCGSTABSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructBiCGSTABSolve ) +#define HYPRE_StructCycRedCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructCycRedCreate ) +#define HYPRE_StructCycRedDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructCycRedDestroy ) +#define HYPRE_StructCycRedSetBase HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructCycRedSetBase ) +#define HYPRE_StructCycRedSetTDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructCycRedSetTDim ) +#define HYPRE_StructCycRedSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructCycRedSetup ) +#define HYPRE_StructCycRedSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructCycRedSolve ) +#define HYPRE_StructFlexGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESCreate ) +#define HYPRE_StructFlexGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESDestroy ) +#define HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_StructFlexGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESGetNumIterations ) +#define HYPRE_StructFlexGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetAbsoluteTol ) +#define HYPRE_StructFlexGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetKDim ) +#define HYPRE_StructFlexGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetLogging ) +#define HYPRE_StructFlexGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetMaxIter ) +#define HYPRE_StructFlexGMRESSetModifyPC HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetModifyPC ) +#define HYPRE_StructFlexGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetPrecond ) +#define HYPRE_StructFlexGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetPrintLevel ) +#define HYPRE_StructFlexGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetTol ) +#define HYPRE_StructFlexGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSetup ) +#define HYPRE_StructFlexGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructFlexGMRESSolve ) +#define HYPRE_StructGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESCreate ) +#define HYPRE_StructGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESDestroy ) +#define HYPRE_StructGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_StructGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESGetNumIterations ) +#define HYPRE_StructGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetAbsoluteTol ) +#define HYPRE_StructGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetKDim ) +#define HYPRE_StructGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetLogging ) +#define HYPRE_StructGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetMaxIter ) +#define HYPRE_StructGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetPrecond ) +#define HYPRE_StructGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetPrintLevel ) +#define HYPRE_StructGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetTol ) +#define HYPRE_StructGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSetup ) +#define HYPRE_StructGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGMRESSolve ) +#define HYPRE_StructHybridCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridCreate ) +#define HYPRE_StructHybridDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridDestroy ) +#define HYPRE_StructHybridGetDSCGNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridGetDSCGNumIterations ) +#define HYPRE_StructHybridGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridGetFinalRelativeResidualNorm ) +#define HYPRE_StructHybridGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridGetNumIterations ) +#define HYPRE_StructHybridGetPCGNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridGetPCGNumIterations ) +#define HYPRE_StructHybridGetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridGetRecomputeResidual ) +#define HYPRE_StructHybridGetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridGetRecomputeResidualP ) +#define HYPRE_StructHybridSetConvergenceTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetConvergenceTol ) +#define HYPRE_StructHybridSetDSCGMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetDSCGMaxIter ) +#define HYPRE_StructHybridSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetKDim ) +#define HYPRE_StructHybridSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetLogging ) +#define HYPRE_StructHybridSetPCGAbsoluteTolFactor HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetPCGAbsoluteTolFactor ) +#define HYPRE_StructHybridSetPCGMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetPCGMaxIter ) +#define HYPRE_StructHybridSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetPrecond ) +#define HYPRE_StructHybridSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetPrintLevel ) +#define HYPRE_StructHybridSetRecomputeResidual HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetRecomputeResidual ) +#define HYPRE_StructHybridSetRecomputeResidualP HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetRecomputeResidualP ) +#define HYPRE_StructHybridSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetRelChange ) +#define HYPRE_StructHybridSetSolverType HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetSolverType ) +#define HYPRE_StructHybridSetStopCrit HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetStopCrit ) +#define HYPRE_StructHybridSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetTol ) +#define HYPRE_StructHybridSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetTwoNorm ) +#define HYPRE_StructHybridSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSetup ) +#define HYPRE_StructHybridSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructHybridSolve ) +#define HYPRE_StructSetupInterpreter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSetupInterpreter ) +#define HYPRE_StructSetupMatvec HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSetupMatvec ) +#define HYPRE_StructJacobiCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiCreate ) +#define HYPRE_StructJacobiDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiDestroy ) +#define HYPRE_StructJacobiGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiGetFinalRelativeResidualNorm ) +#define HYPRE_StructJacobiGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiGetMaxIter ) +#define HYPRE_StructJacobiGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiGetNumIterations ) +#define HYPRE_StructJacobiGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiGetTol ) +#define HYPRE_StructJacobiGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiGetZeroGuess ) +#define HYPRE_StructJacobiSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiSetMaxIter ) +#define HYPRE_StructJacobiSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiSetNonZeroGuess ) +#define HYPRE_StructJacobiSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiSetTol ) +#define HYPRE_StructJacobiSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiSetup ) +#define HYPRE_StructJacobiSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiSetZeroGuess ) +#define HYPRE_StructJacobiSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructJacobiSolve ) +#define HYPRE_StructLGMRESCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESCreate ) +#define HYPRE_StructLGMRESDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESDestroy ) +#define HYPRE_StructLGMRESGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESGetFinalRelativeResidualNorm ) +#define HYPRE_StructLGMRESGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESGetNumIterations ) +#define HYPRE_StructLGMRESSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetAbsoluteTol ) +#define HYPRE_StructLGMRESSetAugDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetAugDim ) +#define HYPRE_StructLGMRESSetKDim HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetKDim ) +#define HYPRE_StructLGMRESSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetLogging ) +#define HYPRE_StructLGMRESSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetMaxIter ) +#define HYPRE_StructLGMRESSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetPrecond ) +#define HYPRE_StructLGMRESSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetPrintLevel ) +#define HYPRE_StructLGMRESSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetTol ) +#define HYPRE_StructLGMRESSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSetup ) +#define HYPRE_StructLGMRESSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructLGMRESSolve ) +#define HYPRE_StructDiagScale HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructDiagScale ) +#define HYPRE_StructDiagScaleSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructDiagScaleSetup ) +#define HYPRE_StructPCGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGCreate ) +#define HYPRE_StructPCGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGDestroy ) +#define HYPRE_StructPCGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGGetFinalRelativeResidualNorm ) +#define HYPRE_StructPCGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGGetNumIterations ) +#define HYPRE_StructPCGSetAbsoluteTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetAbsoluteTol ) +#define HYPRE_StructPCGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetLogging ) +#define HYPRE_StructPCGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetMaxIter ) +#define HYPRE_StructPCGSetPrecond HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetPrecond ) +#define HYPRE_StructPCGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetPrintLevel ) +#define HYPRE_StructPCGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetRelChange ) +#define HYPRE_StructPCGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetTol ) +#define HYPRE_StructPCGSetTwoNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetTwoNorm ) +#define HYPRE_StructPCGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSetup ) +#define HYPRE_StructPCGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPCGSolve ) +#define HYPRE_StructPFMGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGCreate ) +#define HYPRE_StructPFMGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGDestroy ) +#define HYPRE_StructPFMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetFinalRelativeResidualNorm ) +#define HYPRE_StructPFMGGetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetJacobiWeight ) +#define HYPRE_StructPFMGGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetLogging ) +#define HYPRE_StructPFMGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetMaxIter ) +#define HYPRE_StructPFMGGetMaxLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetMaxLevels ) +#define HYPRE_StructPFMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetNumIterations ) +#define HYPRE_StructPFMGGetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetNumPostRelax ) +#define HYPRE_StructPFMGGetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetNumPreRelax ) +#define HYPRE_StructPFMGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetPrintLevel ) +#define HYPRE_StructPFMGGetRAPType HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetRAPType ) +#define HYPRE_StructPFMGGetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetRelaxType ) +#define HYPRE_StructPFMGGetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetRelChange ) +#define HYPRE_StructPFMGGetSkipRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetSkipRelax ) +#define HYPRE_StructPFMGGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetTol ) +#define HYPRE_StructPFMGGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGGetZeroGuess ) +#define HYPRE_StructPFMGSetDxyz HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetDxyz ) +#define HYPRE_StructPFMGSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetJacobiWeight ) +#define HYPRE_StructPFMGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetLogging ) +#define HYPRE_StructPFMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetMaxIter ) +#define HYPRE_StructPFMGSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetMaxLevels ) +#define HYPRE_StructPFMGSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetNonZeroGuess ) +#define HYPRE_StructPFMGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetNumPostRelax ) +#define HYPRE_StructPFMGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetNumPreRelax ) +#define HYPRE_StructPFMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetPrintLevel ) +#define HYPRE_StructPFMGSetRAPType HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetRAPType ) +#define HYPRE_StructPFMGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetRelaxType ) +#define HYPRE_StructPFMGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetRelChange ) +#define HYPRE_StructPFMGSetSkipRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetSkipRelax ) +#define HYPRE_StructPFMGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetTol ) +#define HYPRE_StructPFMGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetup ) +#define HYPRE_StructPFMGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSetZeroGuess ) +#define HYPRE_StructPFMGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructPFMGSolve ) +#define HYPRE_StructSMGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGCreate ) +#define HYPRE_StructSMGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGDestroy ) +#define HYPRE_StructSMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetFinalRelativeResidualNorm ) +#define HYPRE_StructSMGGetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetLogging ) +#define HYPRE_StructSMGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetMaxIter ) +#define HYPRE_StructSMGGetMemoryUse HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetMemoryUse ) +#define HYPRE_StructSMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetNumIterations ) +#define HYPRE_StructSMGGetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetNumPostRelax ) +#define HYPRE_StructSMGGetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetNumPreRelax ) +#define HYPRE_StructSMGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetPrintLevel ) +#define HYPRE_StructSMGGetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetRelChange ) +#define HYPRE_StructSMGGetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetTol ) +#define HYPRE_StructSMGGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGGetZeroGuess ) +#define HYPRE_StructSMGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetLogging ) +#define HYPRE_StructSMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetMaxIter ) +#define HYPRE_StructSMGSetMemoryUse HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetMemoryUse ) +#define HYPRE_StructSMGSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetNonZeroGuess ) +#define HYPRE_StructSMGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetNumPostRelax ) +#define HYPRE_StructSMGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetNumPreRelax ) +#define HYPRE_StructSMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetPrintLevel ) +#define HYPRE_StructSMGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetRelChange ) +#define HYPRE_StructSMGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetTol ) +#define HYPRE_StructSMGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetup ) +#define HYPRE_StructSMGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSetZeroGuess ) +#define HYPRE_StructSMGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSMGSolve ) +#define HYPRE_StructSparseMSGCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGCreate ) +#define HYPRE_StructSparseMSGDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGDestroy ) +#define HYPRE_StructSparseMSGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGGetFinalRelativeResidualNorm ) +#define HYPRE_StructSparseMSGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGGetNumIterations ) +#define HYPRE_StructSparseMSGSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetJacobiWeight ) +#define HYPRE_StructSparseMSGSetJump HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetJump ) +#define HYPRE_StructSparseMSGSetLogging HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetLogging ) +#define HYPRE_StructSparseMSGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetMaxIter ) +#define HYPRE_StructSparseMSGSetNonZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetNonZeroGuess ) +#define HYPRE_StructSparseMSGSetNumFineRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetNumFineRelax ) +#define HYPRE_StructSparseMSGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetNumPostRelax ) +#define HYPRE_StructSparseMSGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetNumPreRelax ) +#define HYPRE_StructSparseMSGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetPrintLevel ) +#define HYPRE_StructSparseMSGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetRelaxType ) +#define HYPRE_StructSparseMSGSetRelChange HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetRelChange ) +#define HYPRE_StructSparseMSGSetTol HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetTol ) +#define HYPRE_StructSparseMSGSetup HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetup ) +#define HYPRE_StructSparseMSGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSetZeroGuess ) +#define HYPRE_StructSparseMSGSolve HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructSparseMSGSolve ) +#define hypre_JacobiCreate HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiCreate ) +#define hypre_JacobiDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiDestroy ) +#define hypre_JacobiGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiGetFinalRelativeResidualNorm ) +#define hypre_JacobiGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiGetMaxIter ) +#define hypre_JacobiGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiGetNumIterations ) +#define hypre_JacobiGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiGetTol ) +#define hypre_JacobiGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiGetZeroGuess ) +#define hypre_JacobiSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiSetMaxIter ) +#define hypre_JacobiSetTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiSetTempVec ) +#define hypre_JacobiSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiSetTol ) +#define hypre_JacobiSetup HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiSetup ) +#define hypre_JacobiSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiSetZeroGuess ) +#define hypre_JacobiSolve HYPRE_MULTIPRECISION_FUNC ( hypre_JacobiSolve ) +#define hypre_StructKrylovAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovAxpy ) +#define hypre_StructKrylovCAlloc HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovCAlloc ) +#define hypre_StructKrylovClearVector HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovClearVector ) +#define hypre_StructKrylovCommInfo HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovCommInfo ) +#define hypre_StructKrylovCopyVector HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovCopyVector ) +#define hypre_StructKrylovCreateVector HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovCreateVector ) +#define hypre_StructKrylovCreateVectorArray HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovCreateVectorArray ) +#define hypre_StructKrylovDestroyVector HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovDestroyVector ) +#define hypre_StructKrylovFree HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovFree ) +#define hypre_StructKrylovIdentity HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovIdentity ) +#define hypre_StructKrylovIdentitySetup HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovIdentitySetup ) +#define hypre_StructKrylovInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovInnerProd ) +#define hypre_StructKrylovMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovMatvec ) +#define hypre_StructKrylovMatvecCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovMatvecCreate ) +#define hypre_StructKrylovMatvecDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovMatvecDestroy ) +#define hypre_StructKrylovScaleVector HYPRE_MULTIPRECISION_FUNC ( hypre_StructKrylovScaleVector ) +#define hypre_PFMG2BuildRAPNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPNoSym ) +#define hypre_PFMG2BuildRAPNoSym_onebox_FSS5_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPNoSym_onebox_FSS5_CC0 ) +#define hypre_PFMG2BuildRAPNoSym_onebox_FSS5_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPNoSym_onebox_FSS5_CC1 ) +#define hypre_PFMG2BuildRAPNoSym_onebox_FSS9_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPNoSym_onebox_FSS9_CC0 ) +#define hypre_PFMG2BuildRAPNoSym_onebox_FSS9_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPNoSym_onebox_FSS9_CC1 ) +#define hypre_PFMG2BuildRAPSym HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPSym ) +#define hypre_PFMG2BuildRAPSym_onebox_FSS5_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPSym_onebox_FSS5_CC0 ) +#define hypre_PFMG2BuildRAPSym_onebox_FSS5_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPSym_onebox_FSS5_CC1 ) +#define hypre_PFMG2BuildRAPSym_onebox_FSS9_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPSym_onebox_FSS9_CC0 ) +#define hypre_PFMG2BuildRAPSym_onebox_FSS9_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2BuildRAPSym_onebox_FSS9_CC1 ) +#define hypre_PFMG2CreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG2CreateRAPOp ) +#define hypre_PFMG3BuildRAPNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym ) +#define hypre_PFMG3BuildRAPNoSym_onebox_FSS07_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym_onebox_FSS07_CC0 ) +#define hypre_PFMG3BuildRAPNoSym_onebox_FSS07_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym_onebox_FSS07_CC1 ) +#define hypre_PFMG3BuildRAPNoSym_onebox_FSS19_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym_onebox_FSS19_CC0 ) +#define hypre_PFMG3BuildRAPNoSym_onebox_FSS19_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym_onebox_FSS19_CC1 ) +#define hypre_PFMG3BuildRAPNoSym_onebox_FSS27_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym_onebox_FSS27_CC0 ) +#define hypre_PFMG3BuildRAPNoSym_onebox_FSS27_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPNoSym_onebox_FSS27_CC1 ) +#define hypre_PFMG3BuildRAPSym HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym ) +#define hypre_PFMG3BuildRAPSym_onebox_FSS07_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym_onebox_FSS07_CC0 ) +#define hypre_PFMG3BuildRAPSym_onebox_FSS07_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym_onebox_FSS07_CC1 ) +#define hypre_PFMG3BuildRAPSym_onebox_FSS19_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym_onebox_FSS19_CC0 ) +#define hypre_PFMG3BuildRAPSym_onebox_FSS19_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym_onebox_FSS19_CC1 ) +#define hypre_PFMG3BuildRAPSym_onebox_FSS27_CC0 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym_onebox_FSS27_CC0 ) +#define hypre_PFMG3BuildRAPSym_onebox_FSS27_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3BuildRAPSym_onebox_FSS27_CC1 ) +#define hypre_PFMG3CreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_PFMG3CreateRAPOp ) +#define hypre_PFMGCreate HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGCreate ) +#define hypre_PFMGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGDestroy ) +#define hypre_PFMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetFinalRelativeResidualNorm ) +#define hypre_PFMGGetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetJacobiWeight ) +#define hypre_PFMGGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetLogging ) +#define hypre_PFMGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetMaxIter ) +#define hypre_PFMGGetMaxLevels HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetMaxLevels ) +#define hypre_PFMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetNumIterations ) +#define hypre_PFMGGetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetNumPostRelax ) +#define hypre_PFMGGetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetNumPreRelax ) +#define hypre_PFMGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetPrintLevel ) +#define hypre_PFMGGetRAPType HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetRAPType ) +#define hypre_PFMGGetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetRelaxType ) +#define hypre_PFMGGetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetRelChange ) +#define hypre_PFMGGetSkipRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetSkipRelax ) +#define hypre_PFMGGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetTol ) +#define hypre_PFMGGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGGetZeroGuess ) +#define hypre_PFMGPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGPrintLogging ) +#define hypre_PFMGSetDxyz HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetDxyz ) +#define hypre_PFMGSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetJacobiWeight ) +#define hypre_PFMGSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetLogging ) +#define hypre_PFMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetMaxIter ) +#define hypre_PFMGSetMaxLevels HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetMaxLevels ) +#define hypre_PFMGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetNumPostRelax ) +#define hypre_PFMGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetNumPreRelax ) +#define hypre_PFMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetPrintLevel ) +#define hypre_PFMGSetRAPType HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetRAPType ) +#define hypre_PFMGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetRelaxType ) +#define hypre_PFMGSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetRelChange ) +#define hypre_PFMGSetSkipRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetSkipRelax ) +#define hypre_PFMGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetTol ) +#define hypre_PFMGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetZeroGuess ) +#define hypre_PFMGRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelax ) +#define hypre_PFMGRelaxCreate HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxCreate ) +#define hypre_PFMGRelaxDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxDestroy ) +#define hypre_PFMGRelaxSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetJacobiWeight ) +#define hypre_PFMGRelaxSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetMaxIter ) +#define hypre_PFMGRelaxSetPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetPostRelax ) +#define hypre_PFMGRelaxSetPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetPreRelax ) +#define hypre_PFMGRelaxSetTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetTempVec ) +#define hypre_PFMGRelaxSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetTol ) +#define hypre_PFMGRelaxSetType HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetType ) +#define hypre_PFMGRelaxSetup HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetup ) +#define hypre_PFMGRelaxSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGRelaxSetZeroGuess ) +#define hypre_PFMGCreateInterpOp HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGCreateInterpOp ) +#define hypre_PFMGSetupInterpOp HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp ) +#define hypre_PFMGSetupInterpOp_CC0_SS15 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC0_SS15 ) +#define hypre_PFMGSetupInterpOp_CC0_SS19 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC0_SS19 ) +#define hypre_PFMGSetupInterpOp_CC0_SS27 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC0_SS27 ) +#define hypre_PFMGSetupInterpOp_CC0_SS5 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC0_SS5 ) +#define hypre_PFMGSetupInterpOp_CC0_SS7 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC0_SS7 ) +#define hypre_PFMGSetupInterpOp_CC0_SS9 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC0_SS9 ) +#define hypre_PFMGSetupInterpOp_CC1 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC1 ) +#define hypre_PFMGSetupInterpOp_CC2 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupInterpOp_CC2 ) +#define hypre_PFMGComputeDxyz HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz ) +#define hypre_PFMGComputeDxyz_CS HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz_CS ) +#define hypre_PFMGComputeDxyz_SS19 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz_SS19 ) +#define hypre_PFMGComputeDxyz_SS27 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz_SS27 ) +#define hypre_PFMGComputeDxyz_SS5 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz_SS5 ) +#define hypre_PFMGComputeDxyz_SS7 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz_SS7 ) +#define hypre_PFMGComputeDxyz_SS9 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGComputeDxyz_SS9 ) +#define hypre_PFMGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetup ) +#define hypre_StructGetNonzeroDirection HYPRE_MULTIPRECISION_FUNC ( hypre_StructGetNonzeroDirection ) +#define hypre_ZeroDiagonal HYPRE_MULTIPRECISION_FUNC ( hypre_ZeroDiagonal ) +#define hypre_PFMGBuildCoarseOp5 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGBuildCoarseOp5 ) +#define hypre_PFMGCreateCoarseOp5 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGCreateCoarseOp5 ) +#define hypre_PFMGBuildCoarseOp7 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGBuildCoarseOp7 ) +#define hypre_PFMGCreateCoarseOp7 HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGCreateCoarseOp7 ) +#define hypre_PFMGCreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGCreateRAPOp ) +#define hypre_PFMGSetupRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSetupRAPOp ) +#define hypre_PFMGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_PFMGSolve ) +#define hypre_PointRelax HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelax ) +#define hypre_PointRelax_core0 HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelax_core0 ) +#define hypre_PointRelax_core12 HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelax_core12 ) +#define hypre_PointRelaxCreate HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxCreate ) +#define hypre_PointRelaxDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxDestroy ) +#define hypre_PointRelaxGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxGetFinalRelativeResidualNorm ) +#define hypre_PointRelaxGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxGetMaxIter ) +#define hypre_PointRelaxGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxGetNumIterations ) +#define hypre_PointRelaxGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxGetTol ) +#define hypre_PointRelaxGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxGetZeroGuess ) +#define hypre_PointRelaxSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetMaxIter ) +#define hypre_PointRelaxSetNumPointsets HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetNumPointsets ) +#define hypre_PointRelaxSetPointset HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetPointset ) +#define hypre_PointRelaxSetPointsetRank HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetPointsetRank ) +#define hypre_PointRelaxSetTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetTempVec ) +#define hypre_PointRelaxSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetTol ) +#define hypre_PointRelaxSetup HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetup ) +#define hypre_PointRelaxSetWeight HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetWeight ) +#define hypre_PointRelaxSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_PointRelaxSetZeroGuess ) +#define hypre_relax_copy HYPRE_MULTIPRECISION_FUNC ( hypre_relax_copy ) +#define hypre_relax_wtx HYPRE_MULTIPRECISION_FUNC ( hypre_relax_wtx ) +#define hypre_RedBlackConstantCoefGS HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackConstantCoefGS ) +#define hypre_RedBlackGS HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGS ) +#define hypre_RedBlackGSCreate HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSCreate ) +#define hypre_RedBlackGSDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSDestroy ) +#define hypre_RedBlackGSSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSSetMaxIter ) +#define hypre_RedBlackGSSetStartBlack HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSSetStartBlack ) +#define hypre_RedBlackGSSetStartRed HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSSetStartRed ) +#define hypre_RedBlackGSSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSSetTol ) +#define hypre_RedBlackGSSetup HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSSetup ) +#define hypre_RedBlackGSSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_RedBlackGSSetZeroGuess ) +#define hypre_SemiInterp HYPRE_MULTIPRECISION_FUNC ( hypre_SemiInterp ) +#define hypre_SemiInterpCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SemiInterpCreate ) +#define hypre_SemiInterpDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SemiInterpDestroy ) +#define hypre_SemiInterpSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SemiInterpSetup ) +#define hypre_StructInterpAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_StructInterpAssemble ) +#define hypre_SemiRestrict HYPRE_MULTIPRECISION_FUNC ( hypre_SemiRestrict ) +#define hypre_SemiRestrictCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SemiRestrictCreate ) +#define hypre_SemiRestrictDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SemiRestrictDestroy ) +#define hypre_SemiRestrictSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SemiRestrictSetup ) +#define hypre_SemiBuildRAP HYPRE_MULTIPRECISION_FUNC ( hypre_SemiBuildRAP ) +#define hypre_SemiCreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SemiCreateRAPOp ) +#define hypre_StructSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructSetRandomValues ) +#define hypre_StructVectorSetRandomValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetRandomValues ) +#define hypre_SMG2BuildRAPNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG2BuildRAPNoSym ) +#define hypre_SMG2BuildRAPSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG2BuildRAPSym ) +#define hypre_SMG2CreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMG2CreateRAPOp ) +#define hypre_SMG2RAPPeriodicNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG2RAPPeriodicNoSym ) +#define hypre_SMG2RAPPeriodicSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG2RAPPeriodicSym ) +#define hypre_SMG3BuildRAPNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG3BuildRAPNoSym ) +#define hypre_SMG3BuildRAPSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG3BuildRAPSym ) +#define hypre_SMG3CreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMG3CreateRAPOp ) +#define hypre_SMG3RAPPeriodicNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG3RAPPeriodicNoSym ) +#define hypre_SMG3RAPPeriodicSym HYPRE_MULTIPRECISION_FUNC ( hypre_SMG3RAPPeriodicSym ) +#define hypre_SMGAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_SMGAxpy ) +#define hypre_SMGCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SMGCreate ) +#define hypre_SMGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SMGDestroy ) +#define hypre_SMGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetFinalRelativeResidualNorm ) +#define hypre_SMGGetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetLogging ) +#define hypre_SMGGetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetMaxIter ) +#define hypre_SMGGetMemoryUse HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetMemoryUse ) +#define hypre_SMGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetNumIterations ) +#define hypre_SMGGetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetNumPostRelax ) +#define hypre_SMGGetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetNumPreRelax ) +#define hypre_SMGGetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetPrintLevel ) +#define hypre_SMGGetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetRelChange ) +#define hypre_SMGGetTol HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetTol ) +#define hypre_SMGGetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_SMGGetZeroGuess ) +#define hypre_SMGPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SMGPrintLogging ) +#define hypre_SMGSetBase HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetBase ) +#define hypre_SMGSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetLogging ) +#define hypre_SMGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetMaxIter ) +#define hypre_SMGSetMemoryUse HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetMemoryUse ) +#define hypre_SMGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetNumPostRelax ) +#define hypre_SMGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetNumPreRelax ) +#define hypre_SMGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetPrintLevel ) +#define hypre_SMGSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetRelChange ) +#define hypre_SMGSetStructVectorConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetStructVectorConstantValues ) +#define hypre_SMGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetTol ) +#define hypre_SMGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetZeroGuess ) +#define hypre_StructSMGSetMaxLevel HYPRE_MULTIPRECISION_FUNC ( hypre_StructSMGSetMaxLevel ) +#define hypre_SMGRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelax ) +#define hypre_SMGRelaxCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxCreate ) +#define hypre_SMGRelaxDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxDestroy ) +#define hypre_SMGRelaxDestroyARem HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxDestroyARem ) +#define hypre_SMGRelaxDestroyASol HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxDestroyASol ) +#define hypre_SMGRelaxDestroyTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxDestroyTempVec ) +#define hypre_SMGRelaxSetBase HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetBase ) +#define hypre_SMGRelaxSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetMaxIter ) +#define hypre_SMGRelaxSetMaxLevel HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetMaxLevel ) +#define hypre_SMGRelaxSetMemoryUse HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetMemoryUse ) +#define hypre_SMGRelaxSetNewMatrixStencil HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetNewMatrixStencil ) +#define hypre_SMGRelaxSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetNumPostRelax ) +#define hypre_SMGRelaxSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetNumPreRelax ) +#define hypre_SMGRelaxSetNumPreSpaces HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetNumPreSpaces ) +#define hypre_SMGRelaxSetNumRegSpaces HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetNumRegSpaces ) +#define hypre_SMGRelaxSetNumSpaces HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetNumSpaces ) +#define hypre_SMGRelaxSetPreSpaceRank HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetPreSpaceRank ) +#define hypre_SMGRelaxSetRegSpaceRank HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetRegSpaceRank ) +#define hypre_SMGRelaxSetSpace HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetSpace ) +#define hypre_SMGRelaxSetTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetTempVec ) +#define hypre_SMGRelaxSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetTol ) +#define hypre_SMGRelaxSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetup ) +#define hypre_SMGRelaxSetupARem HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetupARem ) +#define hypre_SMGRelaxSetupASol HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetupASol ) +#define hypre_SMGRelaxSetupBaseBoxArray HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetupBaseBoxArray ) +#define hypre_SMGRelaxSetupTempVec HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetupTempVec ) +#define hypre_SMGRelaxSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_SMGRelaxSetZeroGuess ) +#define hypre_SMGResidual HYPRE_MULTIPRECISION_FUNC ( hypre_SMGResidual ) +#define hypre_SMGResidualCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SMGResidualCreate ) +#define hypre_SMGResidualDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SMGResidualDestroy ) +#define hypre_SMGResidualSetBase HYPRE_MULTIPRECISION_FUNC ( hypre_SMGResidualSetBase ) +#define hypre_SMGResidualSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SMGResidualSetup ) +#define hypre_SMGCreateInterpOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMGCreateInterpOp ) +#define hypre_SMGSetupInterpOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetupInterpOp ) +#define hypre_SMGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetup ) +#define hypre_SMGCreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMGCreateRAPOp ) +#define hypre_SMGSetupRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetupRAPOp ) +#define hypre_SMGCreateRestrictOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMGCreateRestrictOp ) +#define hypre_SMGSetupRestrictOp HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSetupRestrictOp ) +#define hypre_SMGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_SMGSolve ) +#define hypre_SparseMSG2BuildRAPNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSG2BuildRAPNoSym ) +#define hypre_SparseMSG2BuildRAPSym HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSG2BuildRAPSym ) +#define hypre_SparseMSG2CreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSG2CreateRAPOp ) +#define hypre_SparseMSG3BuildRAPNoSym HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSG3BuildRAPNoSym ) +#define hypre_SparseMSG3BuildRAPSym HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSG3BuildRAPSym ) +#define hypre_SparseMSG3CreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSG3CreateRAPOp ) +#define hypre_SparseMSGFilter HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGFilter ) +#define hypre_SparseMSGFilterSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGFilterSetup ) +#define hypre_SparseMSGInterp HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGInterp ) +#define hypre_SparseMSGInterpCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGInterpCreate ) +#define hypre_SparseMSGInterpDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGInterpDestroy ) +#define hypre_SparseMSGInterpSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGInterpSetup ) +#define hypre_SparseMSGCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGCreate ) +#define hypre_SparseMSGDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGDestroy ) +#define hypre_SparseMSGGetFinalRelativeResidualNorm HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGGetFinalRelativeResidualNorm ) +#define hypre_SparseMSGGetNumIterations HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGGetNumIterations ) +#define hypre_SparseMSGPrintLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGPrintLogging ) +#define hypre_SparseMSGSetJacobiWeight HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetJacobiWeight ) +#define hypre_SparseMSGSetJump HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetJump ) +#define hypre_SparseMSGSetLogging HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetLogging ) +#define hypre_SparseMSGSetMaxIter HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetMaxIter ) +#define hypre_SparseMSGSetNumFineRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetNumFineRelax ) +#define hypre_SparseMSGSetNumPostRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetNumPostRelax ) +#define hypre_SparseMSGSetNumPreRelax HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetNumPreRelax ) +#define hypre_SparseMSGSetPrintLevel HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetPrintLevel ) +#define hypre_SparseMSGSetRelaxType HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetRelaxType ) +#define hypre_SparseMSGSetRelChange HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetRelChange ) +#define hypre_SparseMSGSetTol HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetTol ) +#define hypre_SparseMSGSetZeroGuess HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetZeroGuess ) +#define hypre_SparseMSGRestrict HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGRestrict ) +#define hypre_SparseMSGRestrictCreate HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGRestrictCreate ) +#define hypre_SparseMSGRestrictDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGRestrictDestroy ) +#define hypre_SparseMSGRestrictSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGRestrictSetup ) +#define hypre_SparseMSGSetup HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetup ) +#define hypre_SparseMSGCreateRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGCreateRAPOp ) +#define hypre_SparseMSGSetupRAPOp HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSetupRAPOp ) +#define hypre_SparseMSGSolve HYPRE_MULTIPRECISION_FUNC ( hypre_SparseMSGSolve ) + +#endif diff --git a/src/struct_mv/HYPRE_struct_mv.h b/src/struct_mv/HYPRE_struct_mv.h index 5298abc990..7a6a87f184 100644 --- a/src/struct_mv/HYPRE_struct_mv.h +++ b/src/struct_mv/HYPRE_struct_mv.h @@ -10,6 +10,10 @@ #include "HYPRE_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "struct_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/struct_mv/Makefile b/src/struct_mv/Makefile index 2092fa02be..48b680522f 100644 --- a/src/struct_mv/Makefile +++ b/src/struct_mv/Makefile @@ -29,6 +29,21 @@ HEADERS =\ struct_vector.h FILES =\ + +CUFILES =\ + struct_axpy.c\ + struct_communication.c\ + struct_copy.c\ + struct_innerprod.c\ + struct_matrix.c\ + struct_matvec.c\ + struct_scale.c\ + struct_vector.c + +####################### +# Multiprecision files +####################### +MuP_FILES = \ assumed_part.c\ box_algebra.c\ box_boundary.c\ @@ -40,29 +55,24 @@ FILES =\ F90_HYPRE_struct_matrix.c\ F90_HYPRE_struct_stencil.c\ F90_HYPRE_struct_vector.c\ - HYPRE_struct_grid.c\ - HYPRE_struct_matrix.c\ - HYPRE_struct_stencil.c\ - HYPRE_struct_vector.c\ project.c\ struct_grid.c\ struct_io.c\ struct_matrix_mask.c\ - struct_stencil.c - -CUFILES =\ - struct_axpy.c\ - struct_communication.c\ - struct_copy.c\ - struct_innerprod.c\ - struct_matrix.c\ - struct_matvec.c\ - struct_scale.c\ - struct_vector.c + struct_stencil.c\ + HYPRE_struct_grid.c\ + HYPRE_struct_matrix.c\ + HYPRE_struct_stencil.c\ + HYPRE_struct_vector.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif SONAME = libHYPRE_struct_mv-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -74,23 +84,67 @@ all: libHYPRE_struct_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_struct_mv.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_struct_mv.hpp $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/struct_mv_mup_func.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_struct_mv${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_struct_mv.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/struct_mv_mup_func.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## -# Rules +# Build Rules ################################################################## +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif +# + libHYPRE_struct_mv.a: ${OBJS} @echo "Building $@ ... " ${AR} $@ ${OBJS} diff --git a/src/struct_mv/_hypre_struct_mv.h b/src/struct_mv/_hypre_struct_mv.h index fdb019e167..01fb136c05 100644 --- a/src/struct_mv/_hypre_struct_mv.h +++ b/src/struct_mv/_hypre_struct_mv.h @@ -12,6 +12,10 @@ #include "HYPRE_struct_mv.h" #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "struct_mv_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/struct_mv/headers b/src/struct_mv/headers index 0e3b688fbd..bff9deef56 100755 --- a/src/struct_mv/headers +++ b/src/struct_mv/headers @@ -25,6 +25,10 @@ cat > $INTERNAL_HEADER <<@ #include "HYPRE_struct_mv.h" #include "_hypre_utilities.h" +#ifdef HYPRE_MIXED_PRECISION +#include "struct_mv_mup_func.h" +#endif + @ cat >> $INTERNAL_HEADER <<@ diff --git a/src/struct_mv/struct_mv_func_header b/src/struct_mv/struct_mv_func_header new file mode 100755 index 0000000000..85ce544ef2 --- /dev/null +++ b/src/struct_mv/struct_mv_func_header @@ -0,0 +1,41 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=struct_mv_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'struct_mv_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef STRUCT_MV_MUP_FUNC_HEADER +#define STRUCT_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +FIN=struct_mv_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# print dressed-up function +echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )" +done +) + +#endif +@ diff --git a/src/struct_mv/struct_mv_functions.saved b/src/struct_mv/struct_mv_functions.saved new file mode 100644 index 0000000000..57720e5ec5 --- /dev/null +++ b/src/struct_mv/struct_mv_functions.saved @@ -0,0 +1,316 @@ +hypre_APFillResponseStructAssumedPart +hypre_APFindMyBoxesInRegions +hypre_APGetAllBoxesInRegions +hypre_APPruneRegions +hypre_APRefineRegionsByVol +hypre_APShrinkRegions +hypre_APSubdivideRegion +hypre_IndexFromRank +hypre_IndexProd +hypre_StructAssumedPartitionCreate +hypre_StructAssumedPartitionDestroy +hypre_StructAssumedPartitionGetProcsFromBox +hypre_StructAssumedPartitionGetRegionsFromProc +hypre_IntersectBoxes +hypre_MinUnionBoxes +hypre_SubtractBoxArrays +hypre_SubtractBoxes +hypre_UnionBoxes +hypre_BoxBoundaryDG +hypre_BoxBoundaryG +hypre_BoxBoundaryIntersect +hypre_GeneralBoxBoundaryIntersect +hypre_BoxManAddEntry +hypre_BoxManAssemble +hypre_BoxManCreate +hypre_BoxManDeleteMultipleEntriesAndInfo +hypre_BoxManDestroy +hypre_BoxManEntryCopy +hypre_BoxManEntryGetExtents +hypre_BoxManEntryGetInfo +hypre_BoxManGatherEntries +hypre_BoxManGetAllEntries +hypre_BoxManGetAllEntriesBoxes +hypre_BoxManGetAllEntriesBoxesProc +hypre_BoxManGetAllGlobalKnown +hypre_BoxManGetAssumedPartition +hypre_BoxManGetEntry +hypre_BoxManGetGlobalIsGatherCalled +hypre_BoxManGetIsEntriesSort +hypre_BoxManGetLocalEntriesBoxes +hypre_BoxManIncSize +hypre_BoxManIntersect +hypre_BoxManSetAllGlobalKnown +hypre_BoxManSetAssumedPartition +hypre_BoxManSetBoundingBox +hypre_BoxManSetIsEntriesSort +hypre_BoxManSetNumGhost +hypre_entryqsort2 +hypre_entryswap2 +hypre_FillResponseBoxManAssemble1 +hypre_FillResponseBoxManAssemble2 +hypre_AddIndexes +hypre_AppendBox +hypre_AppendBoxArray +hypre_BoxArrayArrayCreate +hypre_BoxArrayArrayDestroy +hypre_BoxArrayArrayDuplicate +hypre_BoxArrayCreate +hypre_BoxArrayDestroy +hypre_BoxArrayDuplicate +hypre_BoxArraySetSize +hypre_BoxCreate +hypre_BoxDestroy +hypre_BoxDuplicate +hypre_BoxGetSize +hypre_BoxGetStrideSize +hypre_BoxGetStrideVolume +hypre_BoxGrowByArray +hypre_BoxGrowByIndex +hypre_BoxGrowByValue +hypre_BoxIndexRank +hypre_BoxInit +hypre_BoxOffsetDistance +hypre_BoxPrint +hypre_BoxRankIndex +hypre_BoxRead +hypre_BoxSetExtents +hypre_BoxShiftNeg +hypre_BoxShiftPos +hypre_BoxVolume +hypre_CopyBox +hypre_CopyIndex +hypre_CopyToCleanIndex +hypre_DeleteBox +hypre_DeleteMultipleBoxes +hypre_doubleBoxVolume +hypre_IndexEqual +hypre_IndexesEqual +hypre_IndexInBox +hypre_IndexMax +hypre_IndexMin +hypre_IndexPrint +hypre_IndexRead +hypre_SetIndex +hypre_SubtractIndexes +hypre_CommInfoCreate +hypre_CommInfoDestroy +hypre_CommInfoGetTransforms +hypre_CommInfoProjectRecv +hypre_CommInfoProjectSend +hypre_CommInfoSetTransforms +hypre_CreateCommInfoFromGrids +hypre_CreateCommInfoFromNumGhost +hypre_CreateCommInfoFromStencil +hypre_ComputeInfoCreate +hypre_ComputeInfoDestroy +hypre_ComputeInfoProjectComp +hypre_ComputeInfoProjectRecv +hypre_ComputeInfoProjectSend +hypre_ComputePkgCreate +hypre_ComputePkgDestroy +hypre_CreateComputeInfo +hypre_FinalizeIndtComputations +hypre_InitializeIndtComputations +hypre_structgridassemble +hypre_structgridcreate +hypre_structgriddestroy +hypre_structgridsetextents +hypre_structgridsetnumghost +hypre_structgridsetperiodic +hypre_structmatrixaddtoboxvalues +hypre_structmatrixaddtoconstant +hypre_structmatrixaddtovalues +hypre_structmatrixassemble +hypre_structmatrixcreate +hypre_structmatrixdestroy +hypre_structmatrixgetboxvalues +hypre_structmatrixgetgrid +hypre_structmatrixinitialize +hypre_structmatrixmatvec +hypre_structmatrixprint +hypre_structmatrixsetboxvalues +hypre_structmatrixsetconstanten +hypre_structmatrixsetconstantva +hypre_structmatrixsetnumghost +hypre_structmatrixsetsymmetric +hypre_structmatrixsetvalues +hypre_structstencilcreate +hypre_structstencildestroy +hypre_structstencilsetelement +hypre_destroycommpkg +hypre_structvectoraddtoboxvalue +hypre_structvectoraddtovalues +hypre_structvectorassemble +hypre_structvectorcopy +hypre_structvectorcreate +hypre_structvectordestroy +hypre_structvectorgetboxvalues +hypre_structvectorgetmigratecom +hypre_structvectorgetvalues +hypre_structvectorinitialize +hypre_structvectormigrate +hypre_structvectorprint +hypre_structvectorscalevalues +hypre_structvectorsetboxvalues +hypre_structvectorsetconstantva +hypre_structvectorsetnumghost +hypre_structvectorsetvalues +HYPRE_StructGridAssemble +HYPRE_StructGridCreate +HYPRE_StructGridDestroy +HYPRE_StructGridSetExtents +HYPRE_StructGridSetNumGhost +HYPRE_StructGridSetPeriodic +HYPRE_StructMatrixAddToBoxValues +HYPRE_StructMatrixAddToBoxValues2 +HYPRE_StructMatrixAddToConstantValues +HYPRE_StructMatrixAddToValues +HYPRE_StructMatrixAssemble +HYPRE_StructMatrixClearBoundary +HYPRE_StructMatrixCreate +HYPRE_StructMatrixDestroy +HYPRE_StructMatrixGetBoxValues +HYPRE_StructMatrixGetBoxValues2 +HYPRE_StructMatrixGetGrid +HYPRE_StructMatrixGetValues +HYPRE_StructMatrixInitialize +HYPRE_StructMatrixMatvec +HYPRE_StructMatrixPrint +HYPRE_StructMatrixRead +HYPRE_StructMatrixSetBoxValues +HYPRE_StructMatrixSetBoxValues2 +HYPRE_StructMatrixSetConstantEntries +HYPRE_StructMatrixSetConstantValues +HYPRE_StructMatrixSetNumGhost +HYPRE_StructMatrixSetSymmetric +HYPRE_StructMatrixSetValues +HYPRE_StructStencilCreate +HYPRE_StructStencilDestroy +HYPRE_StructStencilSetElement +HYPRE_CommPkgDestroy +HYPRE_StructVectorAddToBoxValues +HYPRE_StructVectorAddToBoxValues2 +HYPRE_StructVectorAddToValues +HYPRE_StructVectorAssemble +HYPRE_StructVectorClone +HYPRE_StructVectorCopy +HYPRE_StructVectorCreate +HYPRE_StructVectorDestroy +HYPRE_StructVectorGetBoxValues +HYPRE_StructVectorGetBoxValues2 +HYPRE_StructVectorGetMigrateCommPkg +HYPRE_StructVectorGetValues +HYPRE_StructVectorInitialize +HYPRE_StructVectorMigrate +HYPRE_StructVectorPrint +HYPRE_StructVectorRead +HYPRE_StructVectorScaleValues +HYPRE_StructVectorSetBoxValues +HYPRE_StructVectorSetBoxValues2 +HYPRE_StructVectorSetConstantValues +HYPRE_StructVectorSetNumGhost +HYPRE_StructVectorSetValues +hypre_ProjectBox +hypre_ProjectBoxArray +hypre_ProjectBoxArrayArray +hypre_StructAxpy +hypre_CommPkgCreate +hypre_CommPkgDestroy +hypre_CommTypeSetEntries +hypre_CommTypeSetEntry +hypre_ExchangeLocalData +hypre_FinalizeCommunication +hypre_InitializeCommunication +hypre_StructCommunicationGetBuffer +hypre_StructCommunicationReleaseBuffer +hypre_StructCopy +hypre_StructPartialCopy +hypre_ComputeBoxnums +hypre_GatherAllBoxes +hypre_StructGridAssemble +hypre_StructGridCreate +hypre_StructGridDestroy +hypre_StructGridGetMaxBoxSize +hypre_StructGridPrint +hypre_StructGridRead +hypre_StructGridRef +hypre_StructGridSetBoundingBox +hypre_StructGridSetBoxes +hypre_StructGridSetBoxManager +hypre_StructGridSetExtents +hypre_StructGridSetIDs +hypre_StructGridSetMaxDistance +hypre_StructGridSetNumGhost +hypre_StructGridSetPeriodic +hypre_StructInnerProd +hypre_PrintBoxArrayData +hypre_PrintCCBoxArrayData +hypre_PrintCCVDBoxArrayData +hypre_ReadBoxArrayData +hypre_ReadBoxArrayData_CC +hypre_StructMatrixCreateMask +hypre_StructMatrixAssemble +hypre_StructMatrixClearBoundary +hypre_StructMatrixClearBoxValues +hypre_StructMatrixClearGhostValues +hypre_StructMatrixClearValues +hypre_StructMatrixCreate +hypre_StructMatrixDestroy +hypre_StructMatrixExtractPointerByIndex +hypre_StructMatrixInitialize +hypre_StructMatrixInitializeData +hypre_StructMatrixInitializeShell +hypre_StructMatrixMigrate +hypre_StructMatrixPrint +hypre_StructMatrixPrintData +hypre_StructMatrixRead +hypre_StructMatrixReadData +hypre_StructMatrixRef +hypre_StructMatrixSetBoxValues +hypre_StructMatrixSetConstantCoefficient +hypre_StructMatrixSetConstantEntries +hypre_StructMatrixSetConstantValues +hypre_StructMatrixSetNumGhost +hypre_StructMatrixSetValues +hypre_StructMatvec +hypre_StructMatvecCC0 +hypre_StructMatvecCC1 +hypre_StructMatvecCC2 +hypre_StructMatvecCompute +hypre_StructMatvecCreate +hypre_StructMatvecDestroy +hypre_StructMatvecSetup +hypre_StructScale +hypre_StructStencilCreate +hypre_StructStencilDestroy +hypre_StructStencilElementRank +hypre_StructStencilRef +hypre_StructStencilSymmetrize +hypre_StructVectorAssemble +hypre_StructVectorClearAllValues +hypre_StructVectorClearBoundGhostValues +hypre_StructVectorClearBoxValues +hypre_StructVectorClearGhostValues +hypre_StructVectorClearValues +hypre_StructVectorClone +hypre_StructVectorCopy +hypre_StructVectorCreate +hypre_StructVectorDestroy +hypre_StructVectorGetMigrateCommPkg +hypre_StructVectorInitialize +hypre_StructVectorInitializeData +hypre_StructVectorInitializeShell +hypre_StructVectorMigrate +hypre_StructVectorPrint +hypre_StructVectorPrintData +hypre_StructVectorRead +hypre_StructVectorReadData +hypre_StructVectorRef +hypre_StructVectorScaleValues +hypre_StructVectorSetBoxValues +hypre_StructVectorSetConstantValues +hypre_StructVectorSetDataSize +hypre_StructVectorSetFunctionValues +hypre_StructVectorSetNumGhost +hypre_StructVectorSetValues diff --git a/src/struct_mv/struct_mv_mup_func.h b/src/struct_mv/struct_mv_mup_func.h new file mode 100644 index 0000000000..8b80604230 --- /dev/null +++ b/src/struct_mv/struct_mv_mup_func.h @@ -0,0 +1,336 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'struct_mv_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef STRUCT_MV_MUP_FUNC_HEADER +#define STRUCT_MV_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_APFillResponseStructAssumedPart HYPRE_MULTIPRECISION_FUNC ( hypre_APFillResponseStructAssumedPart ) +#define hypre_APFindMyBoxesInRegions HYPRE_MULTIPRECISION_FUNC ( hypre_APFindMyBoxesInRegions ) +#define hypre_APGetAllBoxesInRegions HYPRE_MULTIPRECISION_FUNC ( hypre_APGetAllBoxesInRegions ) +#define hypre_APPruneRegions HYPRE_MULTIPRECISION_FUNC ( hypre_APPruneRegions ) +#define hypre_APRefineRegionsByVol HYPRE_MULTIPRECISION_FUNC ( hypre_APRefineRegionsByVol ) +#define hypre_APShrinkRegions HYPRE_MULTIPRECISION_FUNC ( hypre_APShrinkRegions ) +#define hypre_APSubdivideRegion HYPRE_MULTIPRECISION_FUNC ( hypre_APSubdivideRegion ) +#define hypre_IndexFromRank HYPRE_MULTIPRECISION_FUNC ( hypre_IndexFromRank ) +#define hypre_IndexProd HYPRE_MULTIPRECISION_FUNC ( hypre_IndexProd ) +#define hypre_StructAssumedPartitionCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructAssumedPartitionCreate ) +#define hypre_StructAssumedPartitionDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructAssumedPartitionDestroy ) +#define hypre_StructAssumedPartitionGetProcsFromBox HYPRE_MULTIPRECISION_FUNC ( hypre_StructAssumedPartitionGetProcsFromBox ) +#define hypre_StructAssumedPartitionGetRegionsFromProc HYPRE_MULTIPRECISION_FUNC ( hypre_StructAssumedPartitionGetRegionsFromProc ) +#define hypre_IntersectBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_IntersectBoxes ) +#define hypre_MinUnionBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_MinUnionBoxes ) +#define hypre_SubtractBoxArrays HYPRE_MULTIPRECISION_FUNC ( hypre_SubtractBoxArrays ) +#define hypre_SubtractBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_SubtractBoxes ) +#define hypre_UnionBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_UnionBoxes ) +#define hypre_BoxBoundaryDG HYPRE_MULTIPRECISION_FUNC ( hypre_BoxBoundaryDG ) +#define hypre_BoxBoundaryG HYPRE_MULTIPRECISION_FUNC ( hypre_BoxBoundaryG ) +#define hypre_BoxBoundaryIntersect HYPRE_MULTIPRECISION_FUNC ( hypre_BoxBoundaryIntersect ) +#define hypre_GeneralBoxBoundaryIntersect HYPRE_MULTIPRECISION_FUNC ( hypre_GeneralBoxBoundaryIntersect ) +#define hypre_BoxManAddEntry HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManAddEntry ) +#define hypre_BoxManAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManAssemble ) +#define hypre_BoxManCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManCreate ) +#define hypre_BoxManDeleteMultipleEntriesAndInfo HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManDeleteMultipleEntriesAndInfo ) +#define hypre_BoxManDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManDestroy ) +#define hypre_BoxManEntryCopy HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManEntryCopy ) +#define hypre_BoxManEntryGetExtents HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManEntryGetExtents ) +#define hypre_BoxManEntryGetInfo HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManEntryGetInfo ) +#define hypre_BoxManGatherEntries HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGatherEntries ) +#define hypre_BoxManGetAllEntries HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetAllEntries ) +#define hypre_BoxManGetAllEntriesBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetAllEntriesBoxes ) +#define hypre_BoxManGetAllEntriesBoxesProc HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetAllEntriesBoxesProc ) +#define hypre_BoxManGetAllGlobalKnown HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetAllGlobalKnown ) +#define hypre_BoxManGetAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetAssumedPartition ) +#define hypre_BoxManGetEntry HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetEntry ) +#define hypre_BoxManGetGlobalIsGatherCalled HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetGlobalIsGatherCalled ) +#define hypre_BoxManGetIsEntriesSort HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetIsEntriesSort ) +#define hypre_BoxManGetLocalEntriesBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManGetLocalEntriesBoxes ) +#define hypre_BoxManIncSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManIncSize ) +#define hypre_BoxManIntersect HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManIntersect ) +#define hypre_BoxManSetAllGlobalKnown HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManSetAllGlobalKnown ) +#define hypre_BoxManSetAssumedPartition HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManSetAssumedPartition ) +#define hypre_BoxManSetBoundingBox HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManSetBoundingBox ) +#define hypre_BoxManSetIsEntriesSort HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManSetIsEntriesSort ) +#define hypre_BoxManSetNumGhost HYPRE_MULTIPRECISION_FUNC ( hypre_BoxManSetNumGhost ) +#define hypre_entryqsort2 HYPRE_MULTIPRECISION_FUNC ( hypre_entryqsort2 ) +#define hypre_entryswap2 HYPRE_MULTIPRECISION_FUNC ( hypre_entryswap2 ) +#define hypre_FillResponseBoxManAssemble1 HYPRE_MULTIPRECISION_FUNC ( hypre_FillResponseBoxManAssemble1 ) +#define hypre_FillResponseBoxManAssemble2 HYPRE_MULTIPRECISION_FUNC ( hypre_FillResponseBoxManAssemble2 ) +#define hypre_AddIndexes HYPRE_MULTIPRECISION_FUNC ( hypre_AddIndexes ) +#define hypre_AppendBox HYPRE_MULTIPRECISION_FUNC ( hypre_AppendBox ) +#define hypre_AppendBoxArray HYPRE_MULTIPRECISION_FUNC ( hypre_AppendBoxArray ) +#define hypre_BoxArrayArrayCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArrayArrayCreate ) +#define hypre_BoxArrayArrayDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArrayArrayDestroy ) +#define hypre_BoxArrayArrayDuplicate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArrayArrayDuplicate ) +#define hypre_BoxArrayCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArrayCreate ) +#define hypre_BoxArrayDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArrayDestroy ) +#define hypre_BoxArrayDuplicate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArrayDuplicate ) +#define hypre_BoxArraySetSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoxArraySetSize ) +#define hypre_BoxCreate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxCreate ) +#define hypre_BoxDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_BoxDestroy ) +#define hypre_BoxDuplicate HYPRE_MULTIPRECISION_FUNC ( hypre_BoxDuplicate ) +#define hypre_BoxGetSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoxGetSize ) +#define hypre_BoxGetStrideSize HYPRE_MULTIPRECISION_FUNC ( hypre_BoxGetStrideSize ) +#define hypre_BoxGetStrideVolume HYPRE_MULTIPRECISION_FUNC ( hypre_BoxGetStrideVolume ) +#define hypre_BoxGrowByArray HYPRE_MULTIPRECISION_FUNC ( hypre_BoxGrowByArray ) +#define hypre_BoxGrowByIndex HYPRE_MULTIPRECISION_FUNC ( hypre_BoxGrowByIndex ) +#define hypre_BoxGrowByValue HYPRE_MULTIPRECISION_FUNC ( hypre_BoxGrowByValue ) +#define hypre_BoxIndexRank HYPRE_MULTIPRECISION_FUNC ( hypre_BoxIndexRank ) +#define hypre_BoxInit HYPRE_MULTIPRECISION_FUNC ( hypre_BoxInit ) +#define hypre_BoxOffsetDistance HYPRE_MULTIPRECISION_FUNC ( hypre_BoxOffsetDistance ) +#define hypre_BoxPrint HYPRE_MULTIPRECISION_FUNC ( hypre_BoxPrint ) +#define hypre_BoxRankIndex HYPRE_MULTIPRECISION_FUNC ( hypre_BoxRankIndex ) +#define hypre_BoxRead HYPRE_MULTIPRECISION_FUNC ( hypre_BoxRead ) +#define hypre_BoxSetExtents HYPRE_MULTIPRECISION_FUNC ( hypre_BoxSetExtents ) +#define hypre_BoxShiftNeg HYPRE_MULTIPRECISION_FUNC ( hypre_BoxShiftNeg ) +#define hypre_BoxShiftPos HYPRE_MULTIPRECISION_FUNC ( hypre_BoxShiftPos ) +#define hypre_BoxVolume HYPRE_MULTIPRECISION_FUNC ( hypre_BoxVolume ) +#define hypre_CopyBox HYPRE_MULTIPRECISION_FUNC ( hypre_CopyBox ) +#define hypre_CopyIndex HYPRE_MULTIPRECISION_FUNC ( hypre_CopyIndex ) +#define hypre_CopyToCleanIndex HYPRE_MULTIPRECISION_FUNC ( hypre_CopyToCleanIndex ) +#define hypre_DeleteBox HYPRE_MULTIPRECISION_FUNC ( hypre_DeleteBox ) +#define hypre_DeleteMultipleBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_DeleteMultipleBoxes ) +#define hypre_doubleBoxVolume HYPRE_MULTIPRECISION_FUNC ( hypre_doubleBoxVolume ) +#define hypre_IndexEqual HYPRE_MULTIPRECISION_FUNC ( hypre_IndexEqual ) +#define hypre_IndexesEqual HYPRE_MULTIPRECISION_FUNC ( hypre_IndexesEqual ) +#define hypre_IndexInBox HYPRE_MULTIPRECISION_FUNC ( hypre_IndexInBox ) +#define hypre_IndexMax HYPRE_MULTIPRECISION_FUNC ( hypre_IndexMax ) +#define hypre_IndexMin HYPRE_MULTIPRECISION_FUNC ( hypre_IndexMin ) +#define hypre_IndexPrint HYPRE_MULTIPRECISION_FUNC ( hypre_IndexPrint ) +#define hypre_IndexRead HYPRE_MULTIPRECISION_FUNC ( hypre_IndexRead ) +#define hypre_SetIndex HYPRE_MULTIPRECISION_FUNC ( hypre_SetIndex ) +#define hypre_SubtractIndexes HYPRE_MULTIPRECISION_FUNC ( hypre_SubtractIndexes ) +#define hypre_CommInfoCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CommInfoCreate ) +#define hypre_CommInfoDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CommInfoDestroy ) +#define hypre_CommInfoGetTransforms HYPRE_MULTIPRECISION_FUNC ( hypre_CommInfoGetTransforms ) +#define hypre_CommInfoProjectRecv HYPRE_MULTIPRECISION_FUNC ( hypre_CommInfoProjectRecv ) +#define hypre_CommInfoProjectSend HYPRE_MULTIPRECISION_FUNC ( hypre_CommInfoProjectSend ) +#define hypre_CommInfoSetTransforms HYPRE_MULTIPRECISION_FUNC ( hypre_CommInfoSetTransforms ) +#define hypre_CreateCommInfoFromGrids HYPRE_MULTIPRECISION_FUNC ( hypre_CreateCommInfoFromGrids ) +#define hypre_CreateCommInfoFromNumGhost HYPRE_MULTIPRECISION_FUNC ( hypre_CreateCommInfoFromNumGhost ) +#define hypre_CreateCommInfoFromStencil HYPRE_MULTIPRECISION_FUNC ( hypre_CreateCommInfoFromStencil ) +#define hypre_ComputeInfoCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeInfoCreate ) +#define hypre_ComputeInfoDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeInfoDestroy ) +#define hypre_ComputeInfoProjectComp HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeInfoProjectComp ) +#define hypre_ComputeInfoProjectRecv HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeInfoProjectRecv ) +#define hypre_ComputeInfoProjectSend HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeInfoProjectSend ) +#define hypre_ComputePkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_ComputePkgCreate ) +#define hypre_ComputePkgDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_ComputePkgDestroy ) +#define hypre_CreateComputeInfo HYPRE_MULTIPRECISION_FUNC ( hypre_CreateComputeInfo ) +#define hypre_FinalizeIndtComputations HYPRE_MULTIPRECISION_FUNC ( hypre_FinalizeIndtComputations ) +#define hypre_InitializeIndtComputations HYPRE_MULTIPRECISION_FUNC ( hypre_InitializeIndtComputations ) +#define hypre_structgridassemble HYPRE_MULTIPRECISION_FUNC ( hypre_structgridassemble ) +#define hypre_structgridcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structgridcreate ) +#define hypre_structgriddestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structgriddestroy ) +#define hypre_structgridsetextents HYPRE_MULTIPRECISION_FUNC ( hypre_structgridsetextents ) +#define hypre_structgridsetnumghost HYPRE_MULTIPRECISION_FUNC ( hypre_structgridsetnumghost ) +#define hypre_structgridsetperiodic HYPRE_MULTIPRECISION_FUNC ( hypre_structgridsetperiodic ) +#define hypre_structmatrixaddtoboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixaddtoboxvalues ) +#define hypre_structmatrixaddtoconstant HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixaddtoconstant ) +#define hypre_structmatrixaddtovalues HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixaddtovalues ) +#define hypre_structmatrixassemble HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixassemble ) +#define hypre_structmatrixcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixcreate ) +#define hypre_structmatrixdestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixdestroy ) +#define hypre_structmatrixgetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixgetboxvalues ) +#define hypre_structmatrixgetgrid HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixgetgrid ) +#define hypre_structmatrixinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixinitialize ) +#define hypre_structmatrixmatvec HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixmatvec ) +#define hypre_structmatrixprint HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixprint ) +#define hypre_structmatrixsetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixsetboxvalues ) +#define hypre_structmatrixsetconstanten HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixsetconstanten ) +#define hypre_structmatrixsetconstantva HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixsetconstantva ) +#define hypre_structmatrixsetnumghost HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixsetnumghost ) +#define hypre_structmatrixsetsymmetric HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixsetsymmetric ) +#define hypre_structmatrixsetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structmatrixsetvalues ) +#define hypre_structstencilcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structstencilcreate ) +#define hypre_structstencildestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structstencildestroy ) +#define hypre_structstencilsetelement HYPRE_MULTIPRECISION_FUNC ( hypre_structstencilsetelement ) +#define hypre_destroycommpkg HYPRE_MULTIPRECISION_FUNC ( hypre_destroycommpkg ) +#define hypre_structvectoraddtoboxvalue HYPRE_MULTIPRECISION_FUNC ( hypre_structvectoraddtoboxvalue ) +#define hypre_structvectoraddtovalues HYPRE_MULTIPRECISION_FUNC ( hypre_structvectoraddtovalues ) +#define hypre_structvectorassemble HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorassemble ) +#define hypre_structvectorcopy HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorcopy ) +#define hypre_structvectorcreate HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorcreate ) +#define hypre_structvectordestroy HYPRE_MULTIPRECISION_FUNC ( hypre_structvectordestroy ) +#define hypre_structvectorgetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorgetboxvalues ) +#define hypre_structvectorgetmigratecom HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorgetmigratecom ) +#define hypre_structvectorgetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorgetvalues ) +#define hypre_structvectorinitialize HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorinitialize ) +#define hypre_structvectormigrate HYPRE_MULTIPRECISION_FUNC ( hypre_structvectormigrate ) +#define hypre_structvectorprint HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorprint ) +#define hypre_structvectorscalevalues HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorscalevalues ) +#define hypre_structvectorsetboxvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorsetboxvalues ) +#define hypre_structvectorsetconstantva HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorsetconstantva ) +#define hypre_structvectorsetnumghost HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorsetnumghost ) +#define hypre_structvectorsetvalues HYPRE_MULTIPRECISION_FUNC ( hypre_structvectorsetvalues ) +#define HYPRE_StructGridAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGridAssemble ) +#define HYPRE_StructGridCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGridCreate ) +#define HYPRE_StructGridDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGridDestroy ) +#define HYPRE_StructGridSetExtents HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGridSetExtents ) +#define HYPRE_StructGridSetNumGhost HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGridSetNumGhost ) +#define HYPRE_StructGridSetPeriodic HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructGridSetPeriodic ) +#define HYPRE_StructMatrixAddToBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixAddToBoxValues ) +#define HYPRE_StructMatrixAddToBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixAddToBoxValues2 ) +#define HYPRE_StructMatrixAddToConstantValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixAddToConstantValues ) +#define HYPRE_StructMatrixAddToValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixAddToValues ) +#define HYPRE_StructMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixAssemble ) +#define HYPRE_StructMatrixClearBoundary HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixClearBoundary ) +#define HYPRE_StructMatrixCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixCreate ) +#define HYPRE_StructMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixDestroy ) +#define HYPRE_StructMatrixGetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixGetBoxValues ) +#define HYPRE_StructMatrixGetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixGetBoxValues2 ) +#define HYPRE_StructMatrixGetGrid HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixGetGrid ) +#define HYPRE_StructMatrixGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixGetValues ) +#define HYPRE_StructMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixInitialize ) +#define HYPRE_StructMatrixMatvec HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixMatvec ) +#define HYPRE_StructMatrixPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixPrint ) +#define HYPRE_StructMatrixRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixRead ) +#define HYPRE_StructMatrixSetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetBoxValues ) +#define HYPRE_StructMatrixSetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetBoxValues2 ) +#define HYPRE_StructMatrixSetConstantEntries HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetConstantEntries ) +#define HYPRE_StructMatrixSetConstantValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetConstantValues ) +#define HYPRE_StructMatrixSetNumGhost HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetNumGhost ) +#define HYPRE_StructMatrixSetSymmetric HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetSymmetric ) +#define HYPRE_StructMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructMatrixSetValues ) +#define HYPRE_StructStencilCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructStencilCreate ) +#define HYPRE_StructStencilDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructStencilDestroy ) +#define HYPRE_StructStencilSetElement HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructStencilSetElement ) +#define HYPRE_CommPkgDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_CommPkgDestroy ) +#define HYPRE_StructVectorAddToBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorAddToBoxValues ) +#define HYPRE_StructVectorAddToBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorAddToBoxValues2 ) +#define HYPRE_StructVectorAddToValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorAddToValues ) +#define HYPRE_StructVectorAssemble HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorAssemble ) +#define HYPRE_StructVectorClone HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorClone ) +#define HYPRE_StructVectorCopy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorCopy ) +#define HYPRE_StructVectorCreate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorCreate ) +#define HYPRE_StructVectorDestroy HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorDestroy ) +#define HYPRE_StructVectorGetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorGetBoxValues ) +#define HYPRE_StructVectorGetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorGetBoxValues2 ) +#define HYPRE_StructVectorGetMigrateCommPkg HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorGetMigrateCommPkg ) +#define HYPRE_StructVectorGetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorGetValues ) +#define HYPRE_StructVectorInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorInitialize ) +#define HYPRE_StructVectorMigrate HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorMigrate ) +#define HYPRE_StructVectorPrint HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorPrint ) +#define HYPRE_StructVectorRead HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorRead ) +#define HYPRE_StructVectorScaleValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorScaleValues ) +#define HYPRE_StructVectorSetBoxValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorSetBoxValues ) +#define HYPRE_StructVectorSetBoxValues2 HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorSetBoxValues2 ) +#define HYPRE_StructVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorSetConstantValues ) +#define HYPRE_StructVectorSetNumGhost HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorSetNumGhost ) +#define HYPRE_StructVectorSetValues HYPRE_MULTIPRECISION_FUNC ( HYPRE_StructVectorSetValues ) +#define hypre_ProjectBox HYPRE_MULTIPRECISION_FUNC ( hypre_ProjectBox ) +#define hypre_ProjectBoxArray HYPRE_MULTIPRECISION_FUNC ( hypre_ProjectBoxArray ) +#define hypre_ProjectBoxArrayArray HYPRE_MULTIPRECISION_FUNC ( hypre_ProjectBoxArrayArray ) +#define hypre_StructAxpy HYPRE_MULTIPRECISION_FUNC ( hypre_StructAxpy ) +#define hypre_CommPkgCreate HYPRE_MULTIPRECISION_FUNC ( hypre_CommPkgCreate ) +#define hypre_CommPkgDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_CommPkgDestroy ) +#define hypre_CommTypeSetEntries HYPRE_MULTIPRECISION_FUNC ( hypre_CommTypeSetEntries ) +#define hypre_CommTypeSetEntry HYPRE_MULTIPRECISION_FUNC ( hypre_CommTypeSetEntry ) +#define hypre_ExchangeLocalData HYPRE_MULTIPRECISION_FUNC ( hypre_ExchangeLocalData ) +#define hypre_FinalizeCommunication HYPRE_MULTIPRECISION_FUNC ( hypre_FinalizeCommunication ) +#define hypre_InitializeCommunication HYPRE_MULTIPRECISION_FUNC ( hypre_InitializeCommunication ) +#define hypre_StructCommunicationGetBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_StructCommunicationGetBuffer ) +#define hypre_StructCommunicationReleaseBuffer HYPRE_MULTIPRECISION_FUNC ( hypre_StructCommunicationReleaseBuffer ) +#define hypre_StructCopy HYPRE_MULTIPRECISION_FUNC ( hypre_StructCopy ) +#define hypre_StructPartialCopy HYPRE_MULTIPRECISION_FUNC ( hypre_StructPartialCopy ) +#define hypre_ComputeBoxnums HYPRE_MULTIPRECISION_FUNC ( hypre_ComputeBoxnums ) +#define hypre_GatherAllBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_GatherAllBoxes ) +#define hypre_StructGridAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridAssemble ) +#define hypre_StructGridCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridCreate ) +#define hypre_StructGridDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridDestroy ) +#define hypre_StructGridGetMaxBoxSize HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridGetMaxBoxSize ) +#define hypre_StructGridPrint HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridPrint ) +#define hypre_StructGridRead HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridRead ) +#define hypre_StructGridRef HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridRef ) +#define hypre_StructGridSetBoundingBox HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetBoundingBox ) +#define hypre_StructGridSetBoxes HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetBoxes ) +#define hypre_StructGridSetBoxManager HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetBoxManager ) +#define hypre_StructGridSetExtents HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetExtents ) +#define hypre_StructGridSetIDs HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetIDs ) +#define hypre_StructGridSetMaxDistance HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetMaxDistance ) +#define hypre_StructGridSetNumGhost HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetNumGhost ) +#define hypre_StructGridSetPeriodic HYPRE_MULTIPRECISION_FUNC ( hypre_StructGridSetPeriodic ) +#define hypre_StructInnerProd HYPRE_MULTIPRECISION_FUNC ( hypre_StructInnerProd ) +#define hypre_PrintBoxArrayData HYPRE_MULTIPRECISION_FUNC ( hypre_PrintBoxArrayData ) +#define hypre_PrintCCBoxArrayData HYPRE_MULTIPRECISION_FUNC ( hypre_PrintCCBoxArrayData ) +#define hypre_PrintCCVDBoxArrayData HYPRE_MULTIPRECISION_FUNC ( hypre_PrintCCVDBoxArrayData ) +#define hypre_ReadBoxArrayData HYPRE_MULTIPRECISION_FUNC ( hypre_ReadBoxArrayData ) +#define hypre_ReadBoxArrayData_CC HYPRE_MULTIPRECISION_FUNC ( hypre_ReadBoxArrayData_CC ) +#define hypre_StructMatrixCreateMask HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixCreateMask ) +#define hypre_StructMatrixAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixAssemble ) +#define hypre_StructMatrixClearBoundary HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixClearBoundary ) +#define hypre_StructMatrixClearBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixClearBoxValues ) +#define hypre_StructMatrixClearGhostValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixClearGhostValues ) +#define hypre_StructMatrixClearValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixClearValues ) +#define hypre_StructMatrixCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixCreate ) +#define hypre_StructMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixDestroy ) +#define hypre_StructMatrixExtractPointerByIndex HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixExtractPointerByIndex ) +#define hypre_StructMatrixInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixInitialize ) +#define hypre_StructMatrixInitializeData HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixInitializeData ) +#define hypre_StructMatrixInitializeShell HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixInitializeShell ) +#define hypre_StructMatrixMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixMigrate ) +#define hypre_StructMatrixPrint HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixPrint ) +#define hypre_StructMatrixPrintData HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixPrintData ) +#define hypre_StructMatrixRead HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixRead ) +#define hypre_StructMatrixReadData HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixReadData ) +#define hypre_StructMatrixRef HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixRef ) +#define hypre_StructMatrixSetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixSetBoxValues ) +#define hypre_StructMatrixSetConstantCoefficient HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixSetConstantCoefficient ) +#define hypre_StructMatrixSetConstantEntries HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixSetConstantEntries ) +#define hypre_StructMatrixSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixSetConstantValues ) +#define hypre_StructMatrixSetNumGhost HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixSetNumGhost ) +#define hypre_StructMatrixSetValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatrixSetValues ) +#define hypre_StructMatvec HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvec ) +#define hypre_StructMatvecCC0 HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecCC0 ) +#define hypre_StructMatvecCC1 HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecCC1 ) +#define hypre_StructMatvecCC2 HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecCC2 ) +#define hypre_StructMatvecCompute HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecCompute ) +#define hypre_StructMatvecCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecCreate ) +#define hypre_StructMatvecDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecDestroy ) +#define hypre_StructMatvecSetup HYPRE_MULTIPRECISION_FUNC ( hypre_StructMatvecSetup ) +#define hypre_StructScale HYPRE_MULTIPRECISION_FUNC ( hypre_StructScale ) +#define hypre_StructStencilCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructStencilCreate ) +#define hypre_StructStencilDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructStencilDestroy ) +#define hypre_StructStencilElementRank HYPRE_MULTIPRECISION_FUNC ( hypre_StructStencilElementRank ) +#define hypre_StructStencilRef HYPRE_MULTIPRECISION_FUNC ( hypre_StructStencilRef ) +#define hypre_StructStencilSymmetrize HYPRE_MULTIPRECISION_FUNC ( hypre_StructStencilSymmetrize ) +#define hypre_StructVectorAssemble HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorAssemble ) +#define hypre_StructVectorClearAllValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorClearAllValues ) +#define hypre_StructVectorClearBoundGhostValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorClearBoundGhostValues ) +#define hypre_StructVectorClearBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorClearBoxValues ) +#define hypre_StructVectorClearGhostValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorClearGhostValues ) +#define hypre_StructVectorClearValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorClearValues ) +#define hypre_StructVectorClone HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorClone ) +#define hypre_StructVectorCopy HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorCopy ) +#define hypre_StructVectorCreate HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorCreate ) +#define hypre_StructVectorDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorDestroy ) +#define hypre_StructVectorGetMigrateCommPkg HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorGetMigrateCommPkg ) +#define hypre_StructVectorInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorInitialize ) +#define hypre_StructVectorInitializeData HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorInitializeData ) +#define hypre_StructVectorInitializeShell HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorInitializeShell ) +#define hypre_StructVectorMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorMigrate ) +#define hypre_StructVectorPrint HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorPrint ) +#define hypre_StructVectorPrintData HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorPrintData ) +#define hypre_StructVectorRead HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorRead ) +#define hypre_StructVectorReadData HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorReadData ) +#define hypre_StructVectorRef HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorRef ) +#define hypre_StructVectorScaleValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorScaleValues ) +#define hypre_StructVectorSetBoxValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetBoxValues ) +#define hypre_StructVectorSetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetConstantValues ) +#define hypre_StructVectorSetDataSize HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetDataSize ) +#define hypre_StructVectorSetFunctionValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetFunctionValues ) +#define hypre_StructVectorSetNumGhost HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetNumGhost ) +#define hypre_StructVectorSetValues HYPRE_MULTIPRECISION_FUNC ( hypre_StructVectorSetValues ) + +#endif diff --git a/src/test/Makefile b/src/test/Makefile index 7f4d81f75a..99ab628037 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -61,6 +61,10 @@ LFLAGS =\ ################################################################## HYPRE_DRIVERS =\ + ij_mp.c\ + test_mp.c\ + test_mp_pcg.c\ + test_mp_pcg_3d.c\ ij.c\ ij_assembly.c\ sstruct.c\ @@ -131,6 +135,34 @@ distclean: clean ################################################################## # C +ifeq (${MP_BUILD}, 1) +ij_mp: ij_mp.o + @echo "Building" $@ "... " + ${LINK_CC} -o $@ $< ${LFLAGS} +else +ij_mp: +endif +ifeq (${MP_BUILD}, 1) +test_mp: test_mp.o + @echo "Building" $@ "... " + ${LINK_CC} -o $@ $< ${LFLAGS} +else +test_mp: +endif +ifeq (${MP_BUILD}, 1) +test_mp_pcg: test_mp_pcg.o + @echo "Building" $@ "... " + ${LINK_CC} -o $@ $< ${LFLAGS} +else +test_mp_pcg: +endif +ifeq (${MP_BUILD}, 1) +test_mp_pcg_3d: test_mp_pcg_3d.o + @echo "Building" $@ "... " + ${LINK_CC} -o $@ $< ${LFLAGS} +else +test_mp_pcg_3d: +endif ij: ij.o @echo "Building" $@ "... " diff --git a/src/test/ij.c b/src/test/ij.c index d8a7ec15b5..d42523b3e4 100644 --- a/src/test/ij.c +++ b/src/test/ij.c @@ -40,6 +40,7 @@ #include #include "HYPRE_lobpcg.h" +#include "lobpcg.h" /* max dt */ #define DT_INF 1.0e30 diff --git a/src/test/ij_mp.c b/src/test/ij_mp.c new file mode 100644 index 0000000000..a4ffe74dbd --- /dev/null +++ b/src/test/ij_mp.c @@ -0,0 +1,3232 @@ +/****************************************************************************** + * Copyright 1998-2019 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) + ******************************************************************************/ + +/*! + This file contains a mocked-up example, based on ex5.c in the examples directory. + The goal is to give an idea of how a user may utilize hypre to assemble matrix data + and access solvers in a way that would facilitate a mixed-precision solution of the + linear system. This particular driver demonstrates how the mixed-precision build may + be used to develop mixed-precision solvers, such as the defect-correction-based solver + implemented here. Feel free to ask questions, make comments or suggestions + regarding any of the information below. +*/ + +#include +#include +#include +#include +#include "_hypre_utilities.h" +#include "hypre_utilities_mup.h" +#include "HYPRE.h" +#include "HYPRE_parcsr_mv.h" +#include "HYPRE_parcsr_mv_mp.h" +#include "hypre_parcsr_mv_mup.h" + +#include "HYPRE_IJ_mv.h" +#include "hypre_IJ_mv_mup.h" +#include "HYPRE_parcsr_ls.h" +#include "HYPRE_parcsr_ls_mp.h" +#include "hypre_parcsr_ls_mup.h" +#include "_hypre_parcsr_mv.h" +#include "HYPRE_krylov.h" +#include "hypre_krylov_mup.h" +//#include "hypre_utilities_mp.h" + +#include + +#define my_min(a,b) (((a)<(b)) ? (a) : (b)) + +HYPRE_Int BuildParLaplacian_mp( HYPRE_Int argc, char *argv[], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParSysLaplacian_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParDifConv_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParLaplacian9pt_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParLaplacian27pt_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParLaplacian125pt_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParRotate7pt_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr ); +HYPRE_Int BuildParVarDifConv_mp (HYPRE_Int argc, char *argv [], HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, HYPRE_ParCSRMatrix *A_dbl_ptr, + HYPRE_ParVector *rhs_flt_ptr, HYPRE_ParVector *rhs_dbl_ptr ); + +HYPRE_Int HYPRE_DefectCorrectionSolver(HYPRE_ParCSRMatrix A, + HYPRE_ParCSRMatrix B, + HYPRE_ParVector x, + HYPRE_ParVector b, + HYPRE_Solver solver, + HYPRE_PtrToSolverFcn approx_solve, + HYPRE_Int maxits); + +int main (int argc, char *argv[]) +{ + int arg_index; + int myid, num_procs; + int ilower, iupper; + int jlower, jupper; + int solver_id = 0; + double one = 1.0; + double zero = 0.; + int num_iterations; + double dfinal_res_norm; + float final_res_norm; + int time_index; + float wall_time; + double max_row_sum = 1.0; + int build_matrix_type = 2; + int build_rhs_type = 2; + int build_matrix_arg_index; + int build_rhs_arg_index; + int mg_max_iter = 50; + int max_iter = 1000; + int coarsen_type = 10; + int interp_type = 6; + int P_max_elmts = 4; + double trunc_factor = 0.0; + double strong_threshold = 0.25; + int relax_type = 8; + int relax_up = 14; + int relax_down = 13; + int relax_coarse = 9; + int num_sweeps = 1; + int ns_down = -1; + int ns_up = -1; + int ns_coarse = -1; + int max_levels = 25; + int debug_flag = 0; + int agg_num_levels = 0; + int num_paths = 1; + int agg_interp_type = 4; + int agg_P_max_elmts = 0; + double agg_trunc_factor = 0; + int agg_P12_max_elmts = 0; + double agg_P12_trunc_factor = 0; + int smooth_type = 6; + int smooth_num_levels = 0; + int smooth_num_sweeps = 1; + double tol = 1.e-8; + int ioutdat = 0; + int poutdat = 0; + int flex = 0; + int num_functions = 1; + int nodal = 0; + int nodal_diag = 0; + int keep_same_sign = 0; + int cycle_type = 1; + int relax_order = 0; + double relax_wt = 1.0; + double outer_wt = 1.0; + int k_dim = 10; + int two_norm = 0; + + /*! Matrix and preconditioner declarations. Here, we declare IJMatrices and parcsr matrices + for the solver (A, parcsr_A) and the preconditioner (B, A_dbl). I have included two suggestions + below on how we would utilize both of these matrices. + */ + + HYPRE_ParCSRMatrix A_flt; + HYPRE_IJVector ij_b_flt; + HYPRE_ParVector b_flt; + HYPRE_IJVector ij_x_flt; + HYPRE_ParVector x_flt; + + HYPRE_ParCSRMatrix A_dbl; + HYPRE_IJVector ij_b_dbl; + HYPRE_ParVector b_dbl; + HYPRE_IJVector ij_x_dbl; + HYPRE_ParVector x_dbl; + + /*! Solver and preconditioner and declarations and solver_precision variable. Internally, HYPRE_SolverPrecision + is an enum struct containing HYPRE_REAL_float, HYPRE_REAL_SINGLE and HYPRE_REAL_LONG. + */ + HYPRE_Solver solver, precond; + /* Initialize MPI */ + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &myid); + MPI_Comm_size(MPI_COMM_WORLD, &num_procs); + + /*! We set up the linear system following ex5. */ + /* Some default problem parameters */ + solver_id = 0; + build_matrix_type = 2; + build_matrix_arg_index = argc; + build_rhs_type = 2; + build_rhs_arg_index = argc; + + /*-------------------------- + * Parse command line + *--------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-solver") == 0 ) + { + arg_index++; + solver_id = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-laplace") == 0 ) + { + arg_index++; + build_matrix_type = 2; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-9pt") == 0 ) + { + arg_index++; + build_matrix_type = 3; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-27pt") == 0 ) + { + arg_index++; + build_matrix_type = 4; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-difconv") == 0 ) + { + arg_index++; + build_matrix_type = 6; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-vardifconv") == 0 ) + { + arg_index++; + build_matrix_type = 7; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-rotate") == 0 ) + { + arg_index++; + build_matrix_type = 8; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-125pt") == 0 ) + { + arg_index++; + build_matrix_type = 5; + build_matrix_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-rhsisone") == 0 ) + { + arg_index++; + build_rhs_type = 2; + build_rhs_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-rhsrand") == 0 ) + { + arg_index++; + build_rhs_type = 3; + build_rhs_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-rhszero") == 0 ) + { + arg_index++; + build_rhs_type = 4; + build_rhs_arg_index = arg_index; + } + else if ( strcmp(argv[arg_index], "-cljp") == 0 ) + { + arg_index++; + coarsen_type = 0; + } + else if ( strcmp(argv[arg_index], "-pmis") == 0 ) + { + arg_index++; + coarsen_type = 8; + } + else if ( strcmp(argv[arg_index], "-hmis") == 0 ) + { + arg_index++; + coarsen_type = 10; + } + else if ( strcmp(argv[arg_index], "-ruge") == 0 ) + { + arg_index++; + coarsen_type = 1; + } + else if ( strcmp(argv[arg_index], "-ruge1p") == 0 ) + { + arg_index++; + coarsen_type = 11; + } + else if ( strcmp(argv[arg_index], "-ruge2b") == 0 ) + { + arg_index++; + coarsen_type = 2; + } + else if ( strcmp(argv[arg_index], "-ruge3") == 0 ) + { + arg_index++; + coarsen_type = 3; + } + else if ( strcmp(argv[arg_index], "-ruge3c") == 0 ) + { + arg_index++; + coarsen_type = 4; + } + else if ( strcmp(argv[arg_index], "-falgout") == 0 ) + { + arg_index++; + coarsen_type = 6; + } + else if ( strcmp(argv[arg_index], "-rlx_coarse") == 0 ) + { + arg_index++; + relax_coarse = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-rlx_down") == 0 ) + { + arg_index++; + relax_down = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-rlx_up") == 0 ) + { + arg_index++; + relax_up = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-smtype") == 0 ) + { + arg_index++; + smooth_type = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-smlv") == 0 ) + { + arg_index++; + smooth_num_levels = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-mxl") == 0 ) + { + arg_index++; + max_levels = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-dbg") == 0 ) + { + arg_index++; + debug_flag = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-nf") == 0 ) + { + arg_index++; + num_functions = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-agg_nl") == 0 ) + { + arg_index++; + agg_num_levels = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-npaths") == 0 ) + { + arg_index++; + num_paths = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-agg_interp") == 0 ) + { + arg_index++; + agg_interp_type = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-agg_Pmx") == 0 ) + { + arg_index++; + agg_P_max_elmts = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-agg_P12_mx") == 0 ) + { + arg_index++; + agg_P12_max_elmts = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-agg_tr") == 0 ) + { + arg_index++; + agg_trunc_factor = atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-agg_P12_tr") == 0 ) + { + arg_index++; + agg_P12_trunc_factor = atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-ns") == 0 ) + { + arg_index++; + num_sweeps = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-ns_coarse") == 0 ) + { + arg_index++; + ns_coarse = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-ns_down") == 0 ) + { + arg_index++; + ns_down = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-ns_up") == 0 ) + { + arg_index++; + ns_up = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-sns") == 0 ) + { + arg_index++; + smooth_num_sweeps = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-max_iter") == 0 ) + { + arg_index++; + max_iter = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-mg_max_iter") == 0 ) + { + arg_index++; + mg_max_iter = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-nodal") == 0 ) + { + arg_index++; + nodal = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-nodal_diag") == 0 ) + { + arg_index++; + nodal_diag = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-keepSS") == 0 ) + { + arg_index++; + keep_same_sign = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-mu") == 0 ) + { + arg_index++; + cycle_type = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-iout") == 0 ) + { + arg_index++; + ioutdat = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-pout") == 0 ) + { + arg_index++; + poutdat = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-flex") == 0 ) + { + arg_index++; + flex = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-mxrs") == 0 ) + { + arg_index++; + max_row_sum = atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-tol") == 0 ) + { + arg_index++; + tol = atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-two_norm") == 0 ) + { + arg_index++; + two_norm = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-k") == 0 ) + { + arg_index++; + k_dim = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + if (build_matrix_type == 2) + { + BuildParLaplacian_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl); + } + else if (build_matrix_type == 3) + { + BuildParLaplacian9pt_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl); + } + else if (build_matrix_type == 4) + { + BuildParLaplacian27pt_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl); + } + else if (build_matrix_type == 5) + { + BuildParLaplacian125pt_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl); + } + else if (build_matrix_type == 6) + { + BuildParDifConv_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl); + } + else if (build_matrix_type == 7) + { + BuildParVarDifConv_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl, &b_flt, &b_dbl); + build_rhs_type = 6; + } + else if (build_matrix_type == 8) + { + BuildParRotate7pt_mp(argc, argv, build_matrix_arg_index, &A_flt, &A_dbl); + } + + HYPRE_ParCSRMatrixGetLocalRange_flt( A_flt, + &ilower, &iupper, &jlower, &jupper); + + if (build_rhs_type == 2) + { + double one = 1.0; + if (myid == 0) + { + hypre_printf_dbl(" RHS vector has unit coefficients\n"); + hypre_printf_dbl(" Initial guess is 0\n"); + } + + /* RHS */ + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper, &ij_b_flt); + HYPRE_IJVectorSetObjectType_flt(ij_b_flt, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ij_b_flt); + HYPRE_IJVectorAssemble_flt(ij_b_flt); + HYPRE_IJVectorGetObject_flt( ij_b_flt, (void **) &b_flt ); + HYPRE_ParVectorSetConstantValues_flt(b_flt, (float)one); + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper, &ij_b_dbl); + HYPRE_IJVectorSetObjectType_dbl(ij_b_dbl, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ij_b_dbl); + HYPRE_IJVectorAssemble_dbl(ij_b_dbl); + HYPRE_IJVectorGetObject_dbl( ij_b_dbl, (void **) &b_dbl ); + HYPRE_ParVectorSetConstantValues_dbl(b_dbl, one); + /* X0 */ + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper, &ij_x_flt); + HYPRE_IJVectorSetObjectType_flt(ij_x_flt, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ij_x_flt); + HYPRE_IJVectorAssemble_flt(ij_x_flt); + HYPRE_IJVectorGetObject_flt( ij_x_flt, (void **) &x_flt ); + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper, &ij_x_dbl); + HYPRE_IJVectorSetObjectType_dbl(ij_x_dbl, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ij_x_dbl); + HYPRE_IJVectorAssemble_dbl(ij_x_dbl); + HYPRE_IJVectorGetObject_dbl( ij_x_dbl, (void **) &x_dbl ); + } + else if (build_rhs_type == 3) + { + double one = 1.0; + if (myid == 0) + { + hypre_printf_dbl(" RHS vector has random coefficients\n"); + hypre_printf_dbl(" Initial guess is 0\n"); + } + + /* RHS */ + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper, &ij_b_flt); + HYPRE_IJVectorSetObjectType_flt(ij_b_flt, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ij_b_flt); + HYPRE_IJVectorAssemble_flt(ij_b_flt); + HYPRE_IJVectorGetObject_flt( ij_b_flt, (void **) &b_flt ); + HYPRE_ParVectorSetRandomValues_flt(b_flt, 22775); + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper, &ij_b_dbl); + HYPRE_IJVectorSetObjectType_dbl(ij_b_dbl, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ij_b_dbl); + HYPRE_IJVectorAssemble_dbl(ij_b_dbl); + HYPRE_IJVectorGetObject_dbl( ij_b_dbl, (void **) &b_dbl ); + HYPRE_ParVectorSetRandomValues_dbl(b_dbl, 22775); + /* X0 */ + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper, &ij_x_flt); + HYPRE_IJVectorSetObjectType_flt(ij_x_flt, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ij_x_flt); + HYPRE_IJVectorAssemble_flt(ij_x_flt); + HYPRE_IJVectorGetObject_flt( ij_x_flt, (void **) &x_flt ); + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper, &ij_x_dbl); + HYPRE_IJVectorSetObjectType_dbl(ij_x_dbl, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ij_x_dbl); + HYPRE_IJVectorAssemble_dbl(ij_x_dbl); + HYPRE_IJVectorGetObject_dbl( ij_x_dbl, (void **) &x_dbl ); + } + else if (build_rhs_type == 4) + { + if (myid == 0) + { + hypre_printf_dbl(" RHS vector has unit coefficients\n"); + hypre_printf_dbl(" Initial guess is random\n"); + } + + /* RHS */ + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper, &ij_b_flt); + HYPRE_IJVectorSetObjectType_flt(ij_b_flt, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ij_b_flt); + HYPRE_IJVectorAssemble_flt(ij_b_flt); + HYPRE_IJVectorGetObject_flt( ij_b_flt, (void **) &b_flt ); + HYPRE_ParVectorSetConstantValues_flt(b_flt, (float)zero); + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper, &ij_b_dbl); + HYPRE_IJVectorSetObjectType_dbl(ij_b_dbl, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ij_b_dbl); + HYPRE_IJVectorAssemble_dbl(ij_b_dbl); + HYPRE_IJVectorGetObject_dbl( ij_b_dbl, (void **) &b_dbl ); + HYPRE_ParVectorSetConstantValues_dbl(b_dbl, zero); + /* X0 */ + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper, &ij_x_flt); + HYPRE_IJVectorSetObjectType_flt(ij_x_flt, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ij_x_flt); + HYPRE_IJVectorAssemble_flt(ij_x_flt); + HYPRE_IJVectorGetObject_flt( ij_x_flt, (void **) &x_flt ); + HYPRE_ParVectorSetRandomValues_flt(x_flt, 22775); + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper, &ij_x_dbl); + HYPRE_IJVectorSetObjectType_dbl(ij_x_dbl, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ij_x_dbl); + HYPRE_IJVectorAssemble_dbl(ij_x_dbl); + HYPRE_IJVectorGetObject_dbl( ij_x_dbl, (void **) &x_dbl ); + HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + } + + /*! Done with linear system setup. Now proceed to solve the system. */ + // PCG solve + if (solver_id < 2) + { +// Double precision + { + /* reset solution vector */ + if (build_rhs_type < 4 || build_rhs_type == 6) HYPRE_ParVectorSetConstantValues_dbl(x_dbl, zero); + else HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("DBL Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create PCG solver + HYPRE_ParCSRPCGCreate_dbl(MPI_COMM_WORLD, &pcg_solver); + HYPRE_PCGSetMaxIter_dbl(pcg_solver, max_iter); + HYPRE_PCGSetTol_dbl(pcg_solver, tol); + HYPRE_PCGSetTwoNorm_dbl(pcg_solver, two_norm); + HYPRE_PCGSetPrintLevel_dbl(pcg_solver, ioutdat); + HYPRE_PCGSetFlex_dbl(pcg_solver, flex); + HYPRE_PCGSetRecomputeResidual_dbl(pcg_solver, 1); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if (solver_id == 1) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: DOUBLE PRECISION AMG-PCG *****\n"); + + HYPRE_PCGSetMaxIter_dbl(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_dbl(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_dbl(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_dbl(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_dbl(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_dbl(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_dbl(amg_solver, 0.0); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_dbl(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_dbl(amg_solver, strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_dbl(amg_solver, trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_dbl(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_dbl(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_dbl(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_dbl(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_dbl(amg_solver, relax_wt); + HYPRE_BoomerAMGSetOuterWt_dbl(amg_solver, outer_wt); + HYPRE_BoomerAMGSetMaxLevels_dbl(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_dbl(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_dbl(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_dbl(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_dbl(amg_solver, max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_dbl(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_dbl(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_dbl(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_dbl(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_dbl(amg_solver, agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_dbl(amg_solver, agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_dbl(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_dbl(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_dbl(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_dbl(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_dbl(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_dbl(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_up, 2); + } + + // Set the preconditioner for PCG + HYPRE_PCGSetPrecondMatrix_dbl(pcg_solver, (HYPRE_Matrix)A_dbl); + + HYPRE_PCGSetPrecond_dbl(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_dbl, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_dbl, + amg_solver); + + HYPRE_PCGGetPrecond_dbl(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRPCGGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRPCGGetPrecond got good precond\n"); + } + } + else if (solver_id ==0) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: DOUBLE PRECISION DS-PCG *****\n"); + } + // Setup PCG solver + HYPRE_PCGSetup_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Double precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("DBL Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // PCG solve + HYPRE_PCGSolve_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Double precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_PCGGetNumIterations_dbl(pcg_solver, &num_iterations); + HYPRE_PCGGetFinalRelativeResidualNorm_dbl(pcg_solver, &dfinal_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", dfinal_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRPCGDestroy_dbl(pcg_solver); + if(solver_id == 1) HYPRE_BoomerAMGDestroy_dbl(amg_solver); + } +// Single precision + { + /* reset solution vector */ + if (build_rhs_type < 4) HYPRE_ParVectorSetConstantValues_flt(x_flt, zero); + else HYPRE_ParVectorSetRandomValues_flt(x_flt, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("FLT Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create PCG solver + HYPRE_ParCSRPCGCreate_flt(MPI_COMM_WORLD, &pcg_solver); + HYPRE_PCGSetMaxIter_flt(pcg_solver, max_iter); + HYPRE_PCGSetTol_flt(pcg_solver, (float)tol); + HYPRE_PCGSetTwoNorm_flt(pcg_solver, two_norm); + HYPRE_PCGSetPrintLevel_flt(pcg_solver, ioutdat); + HYPRE_PCGSetFlex_flt(pcg_solver, flex); + HYPRE_PCGSetRecomputeResidual_flt(pcg_solver, 1); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if(solver_id == 1) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: SINGLE PRECISION AMG-PCG *****\n"); + HYPRE_PCGSetMaxIter_flt(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_flt(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_flt(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_flt(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_flt(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_flt(amg_solver, (float)zero); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_flt(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_flt(amg_solver, (float)strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_flt(amg_solver, (float)trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_flt(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_flt(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_flt(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_flt(amg_solver, (float)relax_wt); + HYPRE_BoomerAMGSetOuterWt_flt(amg_solver, (float)outer_wt); + HYPRE_BoomerAMGSetMaxLevels_flt(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_flt(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_flt(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_flt(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_flt(amg_solver, (float)max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_flt(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_flt(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_flt(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_flt(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_flt(amg_solver, (float)agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_flt(amg_solver, (float)agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_flt(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_flt(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_flt(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_flt(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_flt(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_flt(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_up, 2); + } + + // Set the preconditioner for PCG + HYPRE_PCGSetPrecondMatrix_flt(pcg_solver, (HYPRE_Matrix)A_flt); + + HYPRE_PCGSetPrecond_flt(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_flt, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_flt, + amg_solver); + + HYPRE_PCGGetPrecond_flt(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRPCGGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRPCGGetPrecond got good precond\n"); + } + } + else if (solver_id == 0) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: SINGLE PRECISION DS-PCG *****\n"); + } + // Setup PCG solver + HYPRE_PCGSetup_flt(pcg_solver, (HYPRE_Matrix)A_flt, (HYPRE_Vector)b_flt, (HYPRE_Vector)x_flt); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Single precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("FLT Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // PCG solve + HYPRE_PCGSolve_flt(pcg_solver, (HYPRE_Matrix)A_flt, (HYPRE_Vector)b_flt, (HYPRE_Vector)x_flt); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Single precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_PCGGetNumIterations_flt(pcg_solver, &num_iterations); + HYPRE_PCGGetFinalRelativeResidualNorm_flt(pcg_solver, &final_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", final_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRPCGDestroy_flt(pcg_solver); + if(solver_id == 1) HYPRE_BoomerAMGDestroy_flt(amg_solver); + } +// mixed-precision + { + /* reset solution vector */ + if (build_rhs_type < 4) HYPRE_ParVectorSetConstantValues_dbl(x_dbl, zero); + else HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("DBL Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create PCG solver + HYPRE_ParCSRPCGCreate_dbl(MPI_COMM_WORLD, &pcg_solver); + HYPRE_PCGSetMaxIter_dbl(pcg_solver, max_iter); + HYPRE_PCGSetTol_dbl(pcg_solver, tol); + HYPRE_PCGSetTwoNorm_dbl(pcg_solver, two_norm); + HYPRE_PCGSetPrintLevel_dbl(pcg_solver, ioutdat); + HYPRE_PCGSetFlex_dbl(pcg_solver, flex); + HYPRE_PCGSetRecomputeResidual_dbl(pcg_solver, 1); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if (solver_id == 1) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: MIXED PRECISION AMG-PCG *****\n"); + HYPRE_PCGSetMaxIter_dbl(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_flt(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_flt(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_flt(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_flt(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_flt(amg_solver, (float)zero); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_flt(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_flt(amg_solver, (float)strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_flt(amg_solver, (float)trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_flt(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_flt(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_flt(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_flt(amg_solver, (float)relax_wt); + HYPRE_BoomerAMGSetOuterWt_flt(amg_solver, (float)outer_wt); + HYPRE_BoomerAMGSetMaxLevels_flt(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_flt(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_flt(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_flt(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_flt(amg_solver, (float)max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_flt(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_flt(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_flt(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_flt(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_flt(amg_solver, (float)agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_flt(amg_solver, (float)agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_flt(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_flt(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_flt(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_flt(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_flt(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_flt(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_up, 2); + } + + // Set the preconditioner for PCG (single precision matrix) + HYPRE_PCGSetPrecondMatrix_dbl(pcg_solver, (HYPRE_Matrix)A_flt); + // Set the preconditioner for PCG. + // This actually sets a pointer to a single precision AMG solver. + // The setup and solve functions just allow us to accept double precision + // rhs and sol vectors from the PCG solver to do the preconditioner solve. + HYPRE_PCGSetPrecond_dbl(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_mp, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_mp, + amg_solver); + + HYPRE_PCGGetPrecond_dbl(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRPCGGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRPCGGetPrecond got good precond\n"); + } + } + else if (solver_id == 0) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: MIXED PRECISION DS-PCG *****\n"); + } + // Setup PCG solver (double precision) + HYPRE_PCGSetup_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Mixed precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("DBL Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // PCG solve (double precision) + HYPRE_PCGSolve_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Mixed precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_PCGGetNumIterations_dbl(pcg_solver, &num_iterations); + HYPRE_PCGGetFinalRelativeResidualNorm_dbl(pcg_solver, &dfinal_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", dfinal_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRPCGDestroy_dbl(pcg_solver); + if(solver_id == 1) HYPRE_BoomerAMGDestroy_flt(amg_solver); + } //end PCG + } + else if (solver_id < 4) //GMRES + { +// double-precision + { + /* reset solution vector */ + if (build_rhs_type < 4 || build_rhs_type == 6) HYPRE_ParVectorSetConstantValues_dbl(x_dbl, zero); + else HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("DBL Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create GMRES solver + HYPRE_ParCSRGMRESCreate_dbl(MPI_COMM_WORLD, &pcg_solver); + HYPRE_GMRESSetKDim_dbl(pcg_solver, k_dim); + HYPRE_GMRESSetMaxIter_dbl(pcg_solver, max_iter); + HYPRE_GMRESSetTol_dbl(pcg_solver, tol); + HYPRE_GMRESSetPrintLevel_dbl(pcg_solver, ioutdat); +// HYPRE_PCGSetRecomputeResidual_dbl(pcg_solver, recompute_res); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if (solver_id == 3) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: DOUBLE PRECISION AMG-GMRES *****\n"); + + HYPRE_GMRESSetMaxIter_dbl(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_dbl(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_dbl(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_dbl(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_dbl(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_dbl(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_dbl(amg_solver, 0.0); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_dbl(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_dbl(amg_solver, strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_dbl(amg_solver, trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_dbl(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_dbl(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_dbl(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_dbl(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_dbl(amg_solver, relax_wt); + HYPRE_BoomerAMGSetOuterWt_dbl(amg_solver, outer_wt); + HYPRE_BoomerAMGSetMaxLevels_dbl(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_dbl(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_dbl(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_dbl(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_dbl(amg_solver, max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_dbl(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_dbl(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_dbl(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_dbl(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_dbl(amg_solver, agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_dbl(amg_solver, agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_dbl(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_dbl(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_dbl(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_dbl(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_dbl(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_dbl(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_up, 2); + } + + // Set the preconditioner for GMRES + HYPRE_GMRESSetPrecondMatrix_dbl(pcg_solver, (HYPRE_Matrix)A_dbl); + + HYPRE_GMRESSetPrecond_dbl(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_dbl, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_dbl, + amg_solver); + + HYPRE_GMRESGetPrecond_dbl(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRGMRESGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRGMRESGetPrecond got good precond\n"); + } + } + else if (solver_id ==2) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: DOUBLE PRECISION DS-GMRES *****\n"); + } + // Setup GMRES solver + HYPRE_GMRESSetup_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Double precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("DBL Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // GMRES solve + HYPRE_GMRESSolve_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Double precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_GMRESGetNumIterations_dbl(pcg_solver, &num_iterations); + HYPRE_GMRESGetFinalRelativeResidualNorm_dbl(pcg_solver, &dfinal_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", dfinal_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRGMRESDestroy_dbl(pcg_solver); + if(solver_id == 3) HYPRE_BoomerAMGDestroy_dbl(amg_solver); + } +// Single precision + { + /* reset solution vector */ + if (build_rhs_type < 4) HYPRE_ParVectorSetConstantValues_flt(x_flt, zero); + else HYPRE_ParVectorSetRandomValues_flt(x_flt, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("FLT Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create GMRES solver + HYPRE_ParCSRGMRESCreate_flt(MPI_COMM_WORLD, &pcg_solver); + HYPRE_GMRESSetMaxIter_flt(pcg_solver, max_iter); + HYPRE_GMRESSetTol_flt(pcg_solver, (float)tol); + HYPRE_GMRESSetKDim_flt(pcg_solver, k_dim); + HYPRE_GMRESSetPrintLevel_flt(pcg_solver, ioutdat); + + /* Now set up the AMG preconditioner and specify any parameters */ + if(solver_id == 3) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: SINGLE PRECISION AMG-GMRES *****\n"); + HYPRE_GMRESSetMaxIter_flt(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_flt(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_flt(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_flt(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_flt(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_flt(amg_solver, (float)zero); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_flt(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_flt(amg_solver, (float)strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_flt(amg_solver, (float)trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_flt(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_flt(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_flt(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_flt(amg_solver, (float)relax_wt); + HYPRE_BoomerAMGSetOuterWt_flt(amg_solver, (float)outer_wt); + HYPRE_BoomerAMGSetMaxLevels_flt(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_flt(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_flt(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_flt(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_flt(amg_solver, (float)max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_flt(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_flt(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_flt(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_flt(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_flt(amg_solver, (float)agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_flt(amg_solver, (float)agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_flt(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_flt(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_flt(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_flt(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_flt(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_flt(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_up, 2); + } + + // Set the preconditioner for GMRES + HYPRE_GMRESSetPrecondMatrix_flt(pcg_solver, (HYPRE_Matrix)A_flt); + + HYPRE_GMRESSetPrecond_flt(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_flt, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_flt, + amg_solver); + + HYPRE_GMRESGetPrecond_flt(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRGMRESGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRGMRESGetPrecond got good precond\n"); + } + } + else if (solver_id == 2) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: SINGLE PRECISION DS-GMRES *****\n"); + } + // Setup GMRES solver + HYPRE_GMRESSetup_flt(pcg_solver, (HYPRE_Matrix)A_flt, (HYPRE_Vector)b_flt, (HYPRE_Vector)x_flt); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Single precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("FLT Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // GMRES solve + HYPRE_GMRESSolve_flt(pcg_solver, (HYPRE_Matrix)A_flt, (HYPRE_Vector)b_flt, (HYPRE_Vector)x_flt); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Single precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_GMRESGetNumIterations_flt(pcg_solver, &num_iterations); + HYPRE_GMRESGetFinalRelativeResidualNorm_flt(pcg_solver, &final_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", final_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRGMRESDestroy_flt(pcg_solver); + if(solver_id == 3) HYPRE_BoomerAMGDestroy_flt(amg_solver); + } +// mixed-precision + { + /* reset solution vector */ + if (build_rhs_type < 4) HYPRE_ParVectorSetConstantValues_dbl(x_dbl, zero); + else HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("DBL Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create GMRES solver + HYPRE_ParCSRGMRESCreate_dbl(MPI_COMM_WORLD, &pcg_solver); + HYPRE_GMRESSetMaxIter_dbl(pcg_solver, max_iter); + HYPRE_GMRESSetTol_dbl(pcg_solver, tol); + HYPRE_GMRESSetKDim_dbl(pcg_solver, k_dim); + HYPRE_GMRESSetPrintLevel_dbl(pcg_solver, ioutdat); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if(solver_id == 3) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: MIXED PRECISION AMG-GMRES *****\n"); + HYPRE_GMRESSetMaxIter_dbl(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_flt(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_flt(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_flt(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_flt(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_flt(amg_solver, (float)zero); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_flt(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_flt(amg_solver, (float)strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_flt(amg_solver, (float)trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_flt(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_flt(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_flt(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_flt(amg_solver, (float)relax_wt); + HYPRE_BoomerAMGSetOuterWt_flt(amg_solver, (float)outer_wt); + HYPRE_BoomerAMGSetMaxLevels_flt(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_flt(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_flt(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_flt(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_flt(amg_solver, (float)max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_flt(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_flt(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_flt(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_flt(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_flt(amg_solver, (float)agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_flt(amg_solver, (float)agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_flt(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_flt(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_flt(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_flt(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_flt(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_flt(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_up, 2); + } + + // Set the preconditioner for GMRES (single precision matrix) + HYPRE_GMRESSetPrecondMatrix_dbl(pcg_solver, (HYPRE_Matrix)A_flt); + // Set the preconditioner for GMRES. + // This actually sets a pointer to a single precision AMG solver. + // The setup and solve functions just allow us to accept double precision + // rhs and sol vectors from the GMRES solver to do the preconditioner solve. + HYPRE_GMRESSetPrecond_dbl(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_mp, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_mp, + amg_solver); + + HYPRE_GMRESGetPrecond_dbl(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRGMRESGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRGMRESGetPrecond got good precond\n"); + } + } + else if (solver_id == 2) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: MIXED PRECISION DS-GMRES *****\n"); + } + // Setup GMRES solver (double precision) + HYPRE_GMRESSetup_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Mixed precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("DBL Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // GMRES solve (double precision) + HYPRE_GMRESSolve_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Mixed precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_GMRESGetNumIterations_dbl(pcg_solver, &num_iterations); + HYPRE_GMRESGetFinalRelativeResidualNorm_dbl(pcg_solver, &dfinal_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", dfinal_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy gmres solver + HYPRE_ParCSRGMRESDestroy_dbl(pcg_solver); + if(solver_id == 3) HYPRE_BoomerAMGDestroy_flt(amg_solver); + } // end GMRES + } + // BiCGSTAB solve + else if (solver_id < 6) + { +// Double precision + { + /* reset solution vector */ + if (build_rhs_type < 4 || build_rhs_type == 6) HYPRE_ParVectorSetConstantValues_dbl(x_dbl, zero); + else HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("DBL Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create BiCGSTAB solver + HYPRE_ParCSRBiCGSTABCreate_dbl(MPI_COMM_WORLD, &pcg_solver); + HYPRE_BiCGSTABSetMaxIter_dbl(pcg_solver, max_iter); + HYPRE_BiCGSTABSetTol_dbl(pcg_solver, tol); + HYPRE_BiCGSTABSetPrintLevel_dbl(pcg_solver, ioutdat); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if (solver_id == 5) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: DOUBLE PRECISION AMG-BiCGSTAB *****\n"); + + HYPRE_BiCGSTABSetMaxIter_dbl(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_dbl(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_dbl(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_dbl(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_dbl(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_dbl(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_dbl(amg_solver, 0.0); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_dbl(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_dbl(amg_solver, strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_dbl(amg_solver, trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_dbl(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_dbl(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_dbl(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_dbl(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_dbl(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_dbl(amg_solver, relax_wt); + HYPRE_BoomerAMGSetOuterWt_dbl(amg_solver, outer_wt); + HYPRE_BoomerAMGSetMaxLevels_dbl(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_dbl(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_dbl(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_dbl(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_dbl(amg_solver, max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_dbl(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_dbl(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_dbl(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_dbl(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_dbl(amg_solver, agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_dbl(amg_solver, agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_dbl(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_dbl(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_dbl(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_dbl(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_dbl(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_dbl(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_dbl(amg_solver, ns_up, 2); + } + + // Set the preconditioner for BiCGSTAB + HYPRE_BiCGSTABSetPrecondMatrix_dbl(pcg_solver, (HYPRE_Matrix)A_dbl); + + HYPRE_BiCGSTABSetPrecond_dbl(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_dbl, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_dbl, + amg_solver); + + HYPRE_BiCGSTABGetPrecond_dbl(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRBiCGSTABGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRBiCGSTABGetPrecond got good precond\n"); + } + } + else if (solver_id == 4) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: DOUBLE PRECISION DS-BiCGSTAB *****\n"); + } + // Setup BiCGSTAB solver + HYPRE_BiCGSTABSetup_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Double precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("DBL Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // BiCGSTAB solve + HYPRE_BiCGSTABSolve_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Double precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_BiCGSTABGetNumIterations_dbl(pcg_solver, &num_iterations); + HYPRE_BiCGSTABGetFinalRelativeResidualNorm_dbl(pcg_solver, &dfinal_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", dfinal_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRBiCGSTABDestroy_dbl(pcg_solver); + if (solver_id == 5) HYPRE_BoomerAMGDestroy_dbl(amg_solver); + } +// Single precision + { + /* reset solution vector */ + if (build_rhs_type < 4) HYPRE_ParVectorSetConstantValues_flt(x_flt, zero); + else HYPRE_ParVectorSetRandomValues_flt(x_flt, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("FLT Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create BiCGSTAB solver + HYPRE_ParCSRBiCGSTABCreate_flt(MPI_COMM_WORLD, &pcg_solver); + HYPRE_BiCGSTABSetMaxIter_flt(pcg_solver, max_iter); + HYPRE_BiCGSTABSetTol_flt(pcg_solver, (float)tol); + HYPRE_BiCGSTABSetPrintLevel_flt(pcg_solver, ioutdat); +// HYPRE_BiCGSTABSetRecomputeResidual_flt(pcg_solver, recompute_res); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if (solver_id == 5) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: SINGLE PRECISION AMG-BiCGSTAB *****\n"); + HYPRE_BiCGSTABSetMaxIter_flt(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_flt(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_flt(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_flt(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_flt(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_flt(amg_solver, (float)zero); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_flt(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_flt(amg_solver, (float)strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_flt(amg_solver, (float)trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_flt(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_flt(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_flt(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_flt(amg_solver, (float)relax_wt); + HYPRE_BoomerAMGSetOuterWt_flt(amg_solver, (float)outer_wt); + HYPRE_BoomerAMGSetMaxLevels_flt(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_flt(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_flt(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_flt(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_flt(amg_solver, (float)max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_flt(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_flt(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_flt(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_flt(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_flt(amg_solver, (float)agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_flt(amg_solver, (float)agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_flt(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_flt(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_flt(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_flt(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_flt(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_flt(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_up, 2); + } + + // Set the preconditioner for BiCGSTAB + HYPRE_BiCGSTABSetPrecondMatrix_flt(pcg_solver, (HYPRE_Matrix)A_flt); + + HYPRE_BiCGSTABSetPrecond_flt(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_flt, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_flt, + amg_solver); + + HYPRE_BiCGSTABGetPrecond_flt(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRBiCGSTABGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRBiCGSTABGetPrecond got good precond\n"); + } + } + else if (solver_id == 4) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: SINGLE PRECISION DS-BiCGSTAB *****\n"); + } + // Setup BiCGSTAB solver + HYPRE_BiCGSTABSetup_flt(pcg_solver, (HYPRE_Matrix)A_flt, (HYPRE_Vector)b_flt, (HYPRE_Vector)x_flt); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Single precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("FLT Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // BiCGSTAB solve + HYPRE_BiCGSTABSolve_flt(pcg_solver, (HYPRE_Matrix)A_flt, (HYPRE_Vector)b_flt, (HYPRE_Vector)x_flt); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Single precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_BiCGSTABGetNumIterations_flt(pcg_solver, &num_iterations); + HYPRE_BiCGSTABGetFinalRelativeResidualNorm_flt(pcg_solver, &final_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", final_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRBiCGSTABDestroy_flt(pcg_solver); + if(solver_id == 5) HYPRE_BoomerAMGDestroy_flt(amg_solver); + } +// mixed-precision + { + /* reset solution vector */ + if (build_rhs_type < 4) HYPRE_ParVectorSetConstantValues_dbl(x_dbl, zero); + else HYPRE_ParVectorSetRandomValues_dbl(x_dbl, 22775); + + HYPRE_Solver amg_solver; + HYPRE_Solver pcg_solver; + HYPRE_Solver pcg_precond_gotten; + + time_index = hypre_InitializeTiming_dbl("DBL Setup"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // Create BiCGSTAB solver + HYPRE_ParCSRBiCGSTABCreate_dbl(MPI_COMM_WORLD, &pcg_solver); + HYPRE_BiCGSTABSetMaxIter_dbl(pcg_solver, max_iter); + HYPRE_BiCGSTABSetTol_dbl(pcg_solver, tol); + HYPRE_BiCGSTABSetPrintLevel_dbl(pcg_solver, ioutdat); +// HYPRE_BiCGSTABSetRecomputeResidual_dbl(pcg_solver, recompute_res); + + + /* Now set up the AMG preconditioner and specify any parameters */ + if (solver_id == 5) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: MIXED PRECISION AMG-BiCGSTAB *****\n"); + HYPRE_BiCGSTABSetMaxIter_dbl(pcg_solver, mg_max_iter); + HYPRE_BoomerAMGCreate_flt(&amg_solver); + HYPRE_BoomerAMGSetPrintLevel_flt(amg_solver, poutdat); /* print amg solution info */ + HYPRE_BoomerAMGSetCoarsenType_flt(amg_solver, coarsen_type); + HYPRE_BoomerAMGSetInterpType_flt(amg_solver, interp_type); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + HYPRE_BoomerAMGSetTol_flt(amg_solver, (float)zero); /* conv. tolerance zero */ + HYPRE_BoomerAMGSetMaxIter_flt(amg_solver, 1); /* do only one iteration! */ + HYPRE_BoomerAMGSetStrongThreshold_flt(amg_solver, (float)strong_threshold); + HYPRE_BoomerAMGSetTruncFactor_flt(amg_solver, (float)trunc_factor); + HYPRE_BoomerAMGSetPMaxElmts_flt(amg_solver, P_max_elmts); + HYPRE_BoomerAMGSetNumSweeps_flt(amg_solver, num_sweeps); + if (relax_type > -1) { HYPRE_BoomerAMGSetRelaxType_flt(amg_solver, relax_type); } + if (relax_down > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_down, 1); + } + if (relax_up > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_up, 2); + } + if (relax_coarse > -1) + { + HYPRE_BoomerAMGSetCycleRelaxType_flt(amg_solver, relax_coarse, 3); + } + HYPRE_BoomerAMGSetRelaxOrder_flt(amg_solver, relax_order); + HYPRE_BoomerAMGSetRelaxWt_flt(amg_solver, (float)relax_wt); + HYPRE_BoomerAMGSetOuterWt_flt(amg_solver, (float)outer_wt); + HYPRE_BoomerAMGSetMaxLevels_flt(amg_solver, max_levels); + HYPRE_BoomerAMGSetSmoothType_flt(amg_solver, smooth_type); + HYPRE_BoomerAMGSetSmoothNumSweeps_flt(amg_solver, smooth_num_sweeps); + HYPRE_BoomerAMGSetSmoothNumLevels_flt(amg_solver, smooth_num_levels); + HYPRE_BoomerAMGSetMaxRowSum_flt(amg_solver, (float)max_row_sum); + HYPRE_BoomerAMGSetDebugFlag_flt(amg_solver, debug_flag); + HYPRE_BoomerAMGSetNumFunctions_flt(amg_solver, num_functions); + HYPRE_BoomerAMGSetAggNumLevels_flt(amg_solver, agg_num_levels); + HYPRE_BoomerAMGSetAggInterpType_flt(amg_solver, agg_interp_type); + HYPRE_BoomerAMGSetAggTruncFactor_flt(amg_solver, (float)agg_trunc_factor); + HYPRE_BoomerAMGSetAggP12TruncFactor_flt(amg_solver, (float)agg_P12_trunc_factor); + HYPRE_BoomerAMGSetAggPMaxElmts_flt(amg_solver, agg_P_max_elmts); + HYPRE_BoomerAMGSetAggP12MaxElmts_flt(amg_solver, agg_P12_max_elmts); + HYPRE_BoomerAMGSetNumPaths_flt(amg_solver, num_paths); + HYPRE_BoomerAMGSetNodal_flt(amg_solver, nodal); + HYPRE_BoomerAMGSetNodalDiag_flt(amg_solver, nodal_diag); + HYPRE_BoomerAMGSetKeepSameSign_flt(amg_solver, keep_same_sign); + if (ns_coarse > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_coarse, 3); + } + if (ns_down > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_down, 1); + } + if (ns_up > -1) + { + HYPRE_BoomerAMGSetCycleNumSweeps_flt(amg_solver, ns_up, 2); + } + + // Set the preconditioner for BiCGSTAB (single precision matrix) + HYPRE_BiCGSTABSetPrecondMatrix_dbl(pcg_solver, (HYPRE_Matrix)A_flt); + // Set the preconditioner for BiCGSTAB. + // This actually sets a pointer to a single precision AMG solver. + // The setup and solve functions just allow us to accept double precision + // rhs and sol vectors from the BiCGSTAB solver to do the preconditioner solve. + HYPRE_BiCGSTABSetPrecond_dbl(pcg_solver, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve_mp, + (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup_mp, + amg_solver); + + HYPRE_BiCGSTABGetPrecond_dbl(pcg_solver, &pcg_precond_gotten); + if (pcg_precond_gotten != amg_solver) + { + hypre_printf_dbl("HYPRE_ParCSRBiCGSTABGetPrecond got bad precond\n"); + return (-1); + } + else if (myid == 0) + { + hypre_printf_dbl("HYPRE_ParCSRBiCGSTABGetPrecond got good precond\n"); + } + } + else if (solver_id == 4) + { + if (myid == 0) hypre_printf_dbl("\n\n***** Solver: MIXED PRECISION DS-BiCGSTAB *****\n"); + } + // Setup BiCGSTAB solver (double precision) + HYPRE_BiCGSTABSetup_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Mixed precision Setup Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + fflush(NULL); + + time_index = hypre_InitializeTiming_dbl("DBL Solve"); + MPI_Barrier(MPI_COMM_WORLD); + hypre_BeginTiming_dbl(time_index); + // BiCGSTAB solve (double precision) + HYPRE_BiCGSTABSolve_dbl(pcg_solver, (HYPRE_Matrix)A_dbl, (HYPRE_Vector)b_dbl, (HYPRE_Vector)x_dbl); + + MPI_Barrier(MPI_COMM_WORLD); + hypre_EndTiming_dbl(time_index); + hypre_PrintTiming_dbl("Mixed precision Solve Time", MPI_COMM_WORLD); + hypre_FinalizeTiming_dbl(time_index); + hypre_ClearTiming_dbl(); + + HYPRE_BiCGSTABGetNumIterations_dbl(pcg_solver, &num_iterations); + HYPRE_BiCGSTABGetFinalRelativeResidualNorm_dbl(pcg_solver, &dfinal_res_norm); + if (myid == 0) + { + hypre_printf_dbl("final relative residual norm = %e \n", dfinal_res_norm); + hypre_printf_dbl("Iteration count = %d \n", num_iterations); + } + fflush(NULL); + // destroy pcg solver + HYPRE_ParCSRBiCGSTABDestroy_dbl(pcg_solver); + if (solver_id == 5) HYPRE_BoomerAMGDestroy_flt(amg_solver); + } //end BiCGSTAB + } + + /* Clean up */ + HYPRE_IJVectorDestroy_flt(ij_b_flt); + HYPRE_IJVectorDestroy_flt(ij_x_flt); + + HYPRE_IJVectorDestroy_dbl(ij_b_dbl); + HYPRE_IJVectorDestroy_dbl(ij_x_dbl); + + /* Finalize MPI*/ + MPI_Finalize(); + + return(0); +} + +HYPRE_Int HYPRE_DefectCorrectionSolver(HYPRE_ParCSRMatrix A, + HYPRE_ParCSRMatrix B, + HYPRE_ParVector x, + HYPRE_ParVector b, + HYPRE_Solver solver, + HYPRE_PtrToSolverFcn approx_solve, + HYPRE_Int maxits) +{ + + + + return 0; + +} +/*---------------------------------------------------------------------- + * Build standard 7-point laplacian in 3D with grid and anisotropy. + * Parameters given in command line. + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParLaplacian_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr ) +{ + HYPRE_BigInt nx, ny, nz; + HYPRE_Int P, Q, R; + double cx, cy, cz; + + HYPRE_ParCSRMatrix A_flt; + HYPRE_ParCSRMatrix A_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q, r; + HYPRE_Int num_fun = 1; + double *values_dbl; + float *values_flt; + double *mtrx_dbl; + float *mtrx_flt; + + HYPRE_Int sys_opt = 0; + HYPRE_Int i; + + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + nz = 10; + + P = 1; + Q = num_procs; + R = 1; + + cx = 1.; + cy = 1.; + cz = 1.; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + nz = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + R = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-c") == 0 ) + { + arg_index++; + cx = (HYPRE_Real)atof(argv[arg_index++]); + cy = (HYPRE_Real)atof(argv[arg_index++]); + cz = (HYPRE_Real)atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-sysL") == 0 ) + { + arg_index++; + num_fun = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-sysL_opt") == 0 ) + { + arg_index++; + sys_opt = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q * R) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" Laplacian: num_fun = %d\n", num_fun); + hypre_printf_dbl(" (nx, ny, nz) = (%b, %b, %b)\n", nx, ny, nz); + hypre_printf_dbl(" (Px, Py, Pz) = (%d, %d, %d)\n", P, Q, R); + hypre_printf_dbl(" (cx, cy, cz) = (%f, %f, %f)\n\n", cx, cy, cz); + } + + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q,r from P,Q,R and myid */ + p = myid % P; + q = (( myid - p) / P) % Q; + r = ( myid - p - P * q) / ( P * Q ); + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + + values_dbl = (double*) calloc(4, sizeof(double)); + values_flt = (float*) calloc(4, sizeof(float)); + + values_dbl[1] = -cx; + values_dbl[2] = -cy; + values_dbl[3] = -cz; + values_flt[1] = -(float)cx; + values_flt[2] = -(float)cy; + values_flt[3] = -(float)cz; + + values_dbl[0] = 0.; + values_flt[0] = 0.; + if (nx > 1) + { + values_dbl[0] += 2.0 * cx; + values_flt[0] += 2.0 * (float)cx; + } + if (ny > 1) + { + values_dbl[0] += 2.0 * cy; + values_flt[0] += 2.0 * (float)cy; + } + if (nz > 1) + { + values_dbl[0] += 2.0 * cz; + values_flt[0] += 2.0 * (float)cz; + } + + if (num_fun == 1) + { + A_dbl = (HYPRE_ParCSRMatrix) GenerateLaplacian_dbl(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_dbl); + A_flt = (HYPRE_ParCSRMatrix) GenerateLaplacian_flt(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_flt); + } + else + { + mtrx_dbl = (double*) calloc(num_fun * num_fun, sizeof(double)); + mtrx_flt = (float*) calloc(num_fun * num_fun, sizeof(float)); + + if (num_fun == 2) + { + if (sys_opt == 1) /* identity */ + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 0.0; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 1.0; + } + else if (sys_opt == 2) + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 0.0; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 20.0; + } + else if (sys_opt == 3) /* similar to barry's talk - ex1 */ + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 2.0; + mtrx_dbl[2] = 2.0; + mtrx_dbl[3] = 1.0; + } + else if (sys_opt == 4) /* can use with vcoef to get barry's ex*/ + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 1.0; + mtrx_dbl[2] = 1.0; + mtrx_dbl[3] = 1.0; + } + else if (sys_opt == 5) /* barry's talk - ex1 */ + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 1.1; + mtrx_dbl[2] = 1.1; + mtrx_dbl[3] = 1.0; + } + else if (sys_opt == 6) /* */ + { + mtrx_dbl[0] = 1.1; + mtrx_dbl[1] = 1.0; + mtrx_dbl[2] = 1.0; + mtrx_dbl[3] = 1.1; + } + + else /* == 0 */ + { + mtrx_dbl[0] = 2; + mtrx_dbl[1] = 1; + mtrx_dbl[2] = 1; + mtrx_dbl[3] = 2; + } + } + else if (num_fun == 3) + { + if (sys_opt == 1) + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 0.0; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 0.0; + mtrx_dbl[4] = 1.0; + mtrx_dbl[5] = 0.0; + mtrx_dbl[6] = 0.0; + mtrx_dbl[7] = 0.0; + mtrx_dbl[8] = 1.0; + } + else if (sys_opt == 2) + { + mtrx_dbl[0] = 1.0; + mtrx_dbl[1] = 0.0; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 0.0; + mtrx_dbl[4] = 20.0; + mtrx_dbl[5] = 0.0; + mtrx_dbl[6] = 0.0; + mtrx_dbl[7] = 0.0; + mtrx_dbl[8] = .01; + } + else if (sys_opt == 3) + { + mtrx_dbl[0] = 1.01; + mtrx_dbl[1] = 1; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 1; + mtrx_dbl[4] = 2; + mtrx_dbl[5] = 1; + mtrx_dbl[6] = 0.0; + mtrx_dbl[7] = 1; + mtrx_dbl[8] = 1.01; + } + else if (sys_opt == 4) /* barry ex4 */ + { + mtrx_dbl[0] = 3; + mtrx_dbl[1] = 1; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 1; + mtrx_dbl[4] = 4; + mtrx_dbl[5] = 2; + mtrx_dbl[6] = 0.0; + mtrx_dbl[7] = 2; + mtrx_dbl[8] = .25; + } + else /* == 0 */ + { + mtrx_dbl[0] = 2.0; + mtrx_dbl[1] = 1.0; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 1.0; + mtrx_dbl[4] = 2.0; + mtrx_dbl[5] = 1.0; + mtrx_dbl[6] = 0.0; + mtrx_dbl[7] = 1.0; + mtrx_dbl[8] = 2.0; + } + + } + else if (num_fun == 4) + { + mtrx_dbl[0] = 1.01; + mtrx_dbl[1] = 1; + mtrx_dbl[2] = 0.0; + mtrx_dbl[3] = 0.0; + mtrx_dbl[4] = 1; + mtrx_dbl[5] = 2; + mtrx_dbl[6] = 1; + mtrx_dbl[7] = 0.0; + mtrx_dbl[8] = 0.0; + mtrx_dbl[9] = 1; + mtrx_dbl[10] = 1.01; + mtrx_dbl[11] = 0.0; + mtrx_dbl[12] = 2; + mtrx_dbl[13] = 1; + mtrx_dbl[14] = 0.0; + mtrx_dbl[15] = 1; + } + + for (i=0; i a) ); +} + +/*---------------------------------------------------------------------- + * Build standard 7-point convection-diffusion operator + * Parameters given in command line. + * Operator: + * + * -cx Dxx - cy Dyy - cz Dzz + ax Dx + ay Dy + az Dz = f + * + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParDifConv_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr) +{ + HYPRE_BigInt nx, ny, nz; + HYPRE_Int P, Q, R; + double cx, cy, cz; + double ax, ay, az, atype; + double hinx, hiny, hinz; + HYPRE_Int sign_prod; + + HYPRE_ParCSRMatrix A_flt; + HYPRE_ParCSRMatrix A_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q, r, i; + double *values_dbl; + float *values_flt; + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + nz = 10; + + P = 1; + Q = num_procs; + R = 1; + + cx = 1.; + cy = 1.; + cz = 1.; + + ax = 1.; + ay = 1.; + az = 1.; + + atype = 0; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + nz = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + R = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-c") == 0 ) + { + arg_index++; + cx = (HYPRE_Real)atof(argv[arg_index++]); + cy = (HYPRE_Real)atof(argv[arg_index++]); + cz = (HYPRE_Real)atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-a") == 0 ) + { + arg_index++; + ax = (HYPRE_Real)atof(argv[arg_index++]); + ay = (HYPRE_Real)atof(argv[arg_index++]); + az = (HYPRE_Real)atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-atype") == 0 ) + { + arg_index++; + atype = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q * R) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" Convection-Diffusion: \n"); + hypre_printf_dbl(" -cx Dxx - cy Dyy - cz Dzz + ax Dx + ay Dy + az Dz = f\n"); + hypre_printf_dbl(" (nx, ny, nz) = (%b, %b, %b)\n", nx, ny, nz); + hypre_printf_dbl(" (Px, Py, Pz) = (%d, %d, %d)\n", P, Q, R); + hypre_printf_dbl(" (cx, cy, cz) = (%f, %f, %f)\n", cx, cy, cz); + hypre_printf_dbl(" (ax, ay, az) = (%f, %f, %f)\n\n", ax, ay, az); + } + + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q,r from P,Q,R and myid */ + p = myid % P; + q = (( myid - p) / P) % Q; + r = ( myid - p - P * q) / ( P * Q ); + + hinx = 1. / (double)(nx + 1); + hiny = 1. / (double)(ny + 1); + hinz = 1. / (double)(nz + 1); + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + /* values[7]: + * [0]: center + * [1]: X- + * [2]: Y- + * [3]: Z- + * [4]: X+ + * [5]: Y+ + * [6]: Z+ + */ + values_dbl = (double*) calloc(7, sizeof(double)); + values_flt = (float*) calloc(7, sizeof(float)); + + values_dbl[0] = 0.; + + if (0 == atype) /* forward scheme for conv */ + { + values_dbl[1] = -cx / (hinx * hinx); + values_dbl[2] = -cy / (hiny * hiny); + values_dbl[3] = -cz / (hinz * hinz); + values_dbl[4] = -cx / (hinx * hinx) + ax / hinx; + values_dbl[5] = -cy / (hiny * hiny) + ay / hiny; + values_dbl[6] = -cz / (hinz * hinz) + az / hinz; + + if (nx > 1) + { + values_dbl[0] += 2.0 * cx / (hinx * hinx) - 1.*ax / hinx; + } + if (ny > 1) + { + values_dbl[0] += 2.0 * cy / (hiny * hiny) - 1.*ay / hiny; + } + if (nz > 1) + { + values_dbl[0] += 2.0 * cz / (hinz * hinz) - 1.*az / hinz; + } + } + else if (1 == atype) /* backward scheme for conv */ + { + values_dbl[1] = -cx / (hinx * hinx) - ax / hinx; + values_dbl[2] = -cy / (hiny * hiny) - ay / hiny; + values_dbl[3] = -cz / (hinz * hinz) - az / hinz; + values_dbl[4] = -cx / (hinx * hinx); + values_dbl[5] = -cy / (hiny * hiny); + values_dbl[6] = -cz / (hinz * hinz); + + if (nx > 1) + { + values_dbl[0] += 2.0 * cx / (hinx * hinx) + 1.*ax / hinx; + } + if (ny > 1) + { + values_dbl[0] += 2.0 * cy / (hiny * hiny) + 1.*ay / hiny; + } + if (nz > 1) + { + values_dbl[0] += 2.0 * cz / (hinz * hinz) + 1.*az / hinz; + } + } + else if (3 == atype) /* upwind scheme */ + { + sign_prod = sign_double(cx) * sign_double(ax); + if (sign_prod == 1) /* same sign use back scheme */ + { + values_dbl[1] = -cx / (hinx * hinx) - ax / hinx; + values_dbl[4] = -cx / (hinx * hinx); + if (nx > 1) + { + values_dbl[0] += 2.0 * cx / (hinx * hinx) + 1.*ax / hinx; + } + } + else /* diff sign use forward scheme */ + { + values_dbl[1] = -cx / (hinx * hinx); + values_dbl[4] = -cx / (hinx * hinx) + ax / hinx; + if (nx > 1) + { + values_dbl[0] += 2.0 * cx / (hinx * hinx) - 1.*ax / hinx; + } + } + + sign_prod = sign_double(cy) * sign_double(ay); + if (sign_prod == 1) /* same sign use back scheme */ + { + values_dbl[2] = -cy / (hiny * hiny) - ay / hiny; + values_dbl[5] = -cy / (hiny * hiny); + if (ny > 1) + { + values_dbl[0] += 2.0 * cy / (hiny * hiny) + 1.*ay / hiny; + } + } + else /* diff sign use forward scheme */ + { + values_dbl[2] = -cy / (hiny * hiny); + values_dbl[5] = -cy / (hiny * hiny) + ay / hiny; + if (ny > 1) + { + values_dbl[0] += 2.0 * cy / (hiny * hiny) - 1.*ay / hiny; + } + } + + sign_prod = sign_double(cz) * sign_double(az); + if (sign_prod == 1) /* same sign use back scheme */ + { + values_dbl[3] = -cz / (hinz * hinz) - az / hinz; + values_dbl[6] = -cz / (hinz * hinz); + if (nz > 1) + { + values_dbl[0] += 2.0 * cz / (hinz * hinz) + 1.*az / hinz; + } + } + else /* diff sign use forward scheme */ + { + values_dbl[3] = -cz / (hinz * hinz); + values_dbl[6] = -cz / (hinz * hinz) + az / hinz; + if (nz > 1) + { + values_dbl[0] += 2.0 * cz / (hinz * hinz) - 1.*az / hinz; + } + } + } + else /* centered difference scheme */ + { + values_dbl[1] = -cx / (hinx * hinx) - ax / (2.*hinx); + values_dbl[2] = -cy / (hiny * hiny) - ay / (2.*hiny); + values_dbl[3] = -cz / (hinz * hinz) - az / (2.*hinz); + values_dbl[4] = -cx / (hinx * hinx) + ax / (2.*hinx); + values_dbl[5] = -cy / (hiny * hiny) + ay / (2.*hiny); + values_dbl[6] = -cz / (hinz * hinz) + az / (2.*hinz); + + if (nx > 1) + { + values_dbl[0] += 2.0 * cx / (hinx * hinx); + } + if (ny > 1) + { + values_dbl[0] += 2.0 * cy / (hiny * hiny); + } + if (nz > 1) + { + values_dbl[0] += 2.0 * cz / (hinz * hinz); + } + } + + for (i=0; i<7; i++) + { + values_flt[i] = (float)values_dbl[i]; + } + + A_dbl = (HYPRE_ParCSRMatrix) GenerateDifConv_dbl(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_dbl); + A_flt = (HYPRE_ParCSRMatrix) GenerateDifConv_flt(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_flt); + + free(values_dbl); + free(values_flt); + + *A_dbl_ptr = A_dbl; + *A_flt_ptr = A_flt; + + return (0); +} + +/*---------------------------------------------------------------------- + * Build standard 9-point laplacian in 2D with grid and anisotropy. + * Parameters given in command line. + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParLaplacian9pt_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr ) +{ + HYPRE_BigInt nx, ny; + HYPRE_Int P, Q; + + HYPRE_ParCSRMatrix A_flt; + HYPRE_ParCSRMatrix A_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q; + double *values_dbl; + float *values_flt; + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + + P = 1; + Q = num_procs; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" Laplacian 9pt:\n"); + hypre_printf_dbl(" (nx, ny) = (%b, %b)\n", nx, ny); + hypre_printf_dbl(" (Px, Py) = (%d, %d)\n\n", P, Q); + } + + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q from P,Q and myid */ + p = myid % P; + q = ( myid - p) / P; + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + + values_dbl = (double*) calloc(2, sizeof(double)); + values_flt = (float*) calloc(2, sizeof(float)); + + values_dbl[1] = -1.; + values_flt[1] = -1.; + + values_dbl[0] = 0.; + values_flt[0] = 0.; + if (nx > 1) + { + values_dbl[0] += 2.0; + values_flt[0] += 2.0; + } + if (ny > 1) + { + values_dbl[0] += 2.0; + values_flt[0] += 2.0; + } + if (nx > 1 && ny > 1) + { + values_dbl[0] += 4.0; + values_flt[0] += 4.0; + } + + A_flt = (HYPRE_ParCSRMatrix) GenerateLaplacian9pt_flt(MPI_COMM_WORLD, + nx, ny, P, Q, p, q, values_flt); + + free(values_flt); + + A_dbl = (HYPRE_ParCSRMatrix) GenerateLaplacian9pt_dbl(MPI_COMM_WORLD, + nx, ny, P, Q, p, q, values_dbl); + + free(values_dbl); + + *A_dbl_ptr = A_dbl; + + *A_flt_ptr = A_flt; + + return (0); +} + +/*---------------------------------------------------------------------- + * Build 27-point laplacian in 3D, + * Parameters given in command line. + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParLaplacian27pt_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr ) +{ + HYPRE_BigInt nx, ny, nz; + HYPRE_Int P, Q, R; + + HYPRE_ParCSRMatrix A_flt; + HYPRE_ParCSRMatrix A_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q, r; + float *values_flt; + double *values_dbl; + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + nz = 10; + + P = 1; + Q = num_procs; + R = 1; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + nz = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + R = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q * R) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" Laplacian_27pt:\n"); + hypre_printf_dbl(" (nx, ny, nz) = (%b, %b, %b)\n", nx, ny, nz); + hypre_printf_dbl(" (Px, Py, Pz) = (%d, %d, %d)\n\n", P, Q, R); + } + + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q,r from P,Q,R and myid */ + p = myid % P; + q = (( myid - p) / P) % Q; + r = ( myid - p - P * q) / ( P * Q ); + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + + values_flt = (float*) calloc(2, sizeof(float)); + values_dbl = (double*) calloc(2, sizeof(double)); + + values_flt[0] = 26.0; + values_dbl[0] = 26.0; + if (nx == 1 || ny == 1 || nz == 1) + { + values_flt[0] = 8.0; + values_dbl[0] = 8.0; + } + if (nx * ny == 1 || nx * nz == 1 || ny * nz == 1) + { + values_flt[0] = 2.0; + values_dbl[0] = 2.0; + } + values_flt[1] = -1.; + values_dbl[1] = -1.; + + A_flt = (HYPRE_ParCSRMatrix) GenerateLaplacian27pt_flt(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_flt); + + free(values_flt); + + A_dbl = (HYPRE_ParCSRMatrix) GenerateLaplacian27pt_dbl(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_dbl); + + free(values_dbl); + + *A_dbl_ptr = A_dbl; + *A_flt_ptr = A_flt; + + return (0); +} + +/*---------------------------------------------------------------------- + * Build 125-point laplacian in 3D (27-pt squared) + * Parameters given in command line. + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParLaplacian125pt_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr ) +{ + HYPRE_BigInt nx, ny, nz; + HYPRE_Int P, Q, R; + + HYPRE_ParCSRMatrix A_flt, B_flt; + HYPRE_ParCSRMatrix A_dbl, B_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q, r; + float *values_flt; + double *values_dbl; + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + nz = 10; + + P = 1; + Q = num_procs; + R = 1; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + nz = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + R = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q * R) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" Laplacian_125pt:\n"); + hypre_printf_dbl(" (nx, ny, nz) = (%b, %b, %b)\n", nx, ny, nz); + hypre_printf_dbl(" (Px, Py, Pz) = (%d, %d, %d)\n\n", P, Q, R); + } + + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q,r from P,Q,R and myid */ + p = myid % P; + q = (( myid - p) / P) % Q; + r = ( myid - p - P * q) / ( P * Q ); + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + + values_flt = (float*) calloc(2, sizeof(float)); + values_dbl = (double*) calloc(2, sizeof(double)); + + values_flt[0] = 26.0; + values_dbl[0] = 26.0; + if (nx == 1 || ny == 1 || nz == 1) + { + values_flt[0] = 8.0; + values_dbl[0] = 8.0; + } + if (nx * ny == 1 || nx * nz == 1 || ny * nz == 1) + { + values_flt[0] = 2.0; + values_dbl[0] = 2.0; + } + values_flt[1] = -1.; + values_dbl[1] = -1.; + + B_flt = (HYPRE_ParCSRMatrix) GenerateLaplacian27pt_flt(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_flt); + A_flt = (HYPRE_ParCSRMatrix) hypre_ParCSRMatMat_flt(B_flt, B_flt); + + HYPRE_ParCSRMatrixDestroy_flt(B_flt); + free(values_flt); + + B_dbl = (HYPRE_ParCSRMatrix) GenerateLaplacian27pt_dbl(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, values_dbl); + A_dbl = (HYPRE_ParCSRMatrix) hypre_ParCSRMatMat_dbl(B_dbl, B_dbl); + + HYPRE_ParCSRMatrixDestroy_dbl(B_dbl); + free(values_dbl); + + *A_dbl_ptr = A_dbl; + *A_flt_ptr = A_flt; + + return (0); +} + +/*---------------------------------------------------------------------- + * Build 7-point in 2D + * Parameters given in command line. + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParRotate7pt_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr ) +{ + HYPRE_BigInt nx, ny; + HYPRE_Int P, Q; + + HYPRE_ParCSRMatrix A_flt; + HYPRE_ParCSRMatrix A_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q; + double eps, alpha; + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + + P = 1; + Q = num_procs; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-alpha") == 0 ) + { + arg_index++; + alpha = (HYPRE_Real)atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-eps") == 0 ) + { + arg_index++; + eps = (HYPRE_Real)atof(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" Rotate 7pt:\n"); + hypre_printf_dbl(" alpha = %f, eps = %f\n", alpha, eps); + hypre_printf_dbl(" (nx, ny) = (%b, %b)\n", nx, ny); + hypre_printf_dbl(" (Px, Py) = (%d, %d)\n", P, Q); + } + + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q from P,Q and myid */ + p = myid % P; + q = ( myid - p) / P; + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + + A_flt = (HYPRE_ParCSRMatrix) GenerateRotate7pt_flt(MPI_COMM_WORLD, + nx, ny, P, Q, p, q, (float)alpha, (float)eps); + A_dbl = (HYPRE_ParCSRMatrix) GenerateRotate7pt_dbl(MPI_COMM_WORLD, + nx, ny, P, Q, p, q, alpha, eps); + + *A_flt_ptr = A_flt; + *A_dbl_ptr = A_dbl; + + return (0); +} + +/*---------------------------------------------------------------------- + * Build standard 7-point difference operator using centered differences + * + * eps*(a(x,y,z) ux)x + (b(x,y,z) uy)y + (c(x,y,z) uz)z + * d(x,y,z) ux + e(x,y,z) uy + f(x,y,z) uz + g(x,y,z) u + * + * functions a,b,c,d,e,f,g need to be defined inside par_vardifconv.c + * + *----------------------------------------------------------------------*/ + +HYPRE_Int +BuildParVarDifConv_mp( HYPRE_Int argc, + char *argv[], + HYPRE_Int arg_index, + HYPRE_ParCSRMatrix *A_flt_ptr, + HYPRE_ParCSRMatrix *A_dbl_ptr, + HYPRE_ParVector *rhs_flt_ptr, + HYPRE_ParVector *rhs_dbl_ptr ) +{ + HYPRE_BigInt nx, ny, nz; + HYPRE_Int P, Q, R; + + HYPRE_ParCSRMatrix A_flt; + HYPRE_ParCSRMatrix A_dbl; + HYPRE_ParVector rhs_flt; + HYPRE_ParVector rhs_dbl; + + HYPRE_Int num_procs, myid; + HYPRE_Int p, q, r; + HYPRE_Int type; + double eps; + + /*----------------------------------------------------------- + * Initialize some stuff + *-----------------------------------------------------------*/ + + MPI_Comm_size(MPI_COMM_WORLD, &num_procs ); + MPI_Comm_rank(MPI_COMM_WORLD, &myid ); + + /*----------------------------------------------------------- + * Set defaults + *-----------------------------------------------------------*/ + + nx = 10; + ny = 10; + nz = 10; + P = 1; + Q = num_procs; + R = 1; + eps = 1.0; + + /* type: 0 : default FD; + * 1-3 : FD and examples 1-3 in Ruge-Stuben paper */ + type = 0; + + /*----------------------------------------------------------- + * Parse command line + *-----------------------------------------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + nx = atoi(argv[arg_index++]); + ny = atoi(argv[arg_index++]); + nz = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-P") == 0 ) + { + arg_index++; + P = atoi(argv[arg_index++]); + Q = atoi(argv[arg_index++]); + R = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-eps") == 0 ) + { + arg_index++; + eps = (HYPRE_Real)atof(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-vardifconvRS") == 0 ) + { + arg_index++; + type = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /*----------------------------------------------------------- + * Check a few things + *-----------------------------------------------------------*/ + + if ((P * Q * R) != num_procs) + { + hypre_printf_dbl("Error: Invalid number of processors or processor topology \n"); + exit(1); + } + + /*----------------------------------------------------------- + * Print driver parameters + *-----------------------------------------------------------*/ + + if (myid == 0) + { + hypre_printf_dbl(" ell PDE: eps = %f\n", eps); + hypre_printf_dbl(" Dx(aDxu) + Dy(bDyu) + Dz(cDzu) + d Dxu + e Dyu + f Dzu + g u= f\n"); + hypre_printf_dbl(" (nx, ny, nz) = (%b, %b, %b)\n", nx, ny, nz); + hypre_printf_dbl(" (Px, Py, Pz) = (%d, %d, %d)\n", P, Q, R); + } + /*----------------------------------------------------------- + * Set up the grid structure + *-----------------------------------------------------------*/ + + /* compute p,q,r from P,Q,R and myid */ + p = myid % P; + q = (( myid - p) / P) % Q; + r = ( myid - p - P * q) / ( P * Q ); + + /*----------------------------------------------------------- + * Generate the matrix + *-----------------------------------------------------------*/ + + if (0 == type) + { + A_dbl = (HYPRE_ParCSRMatrix) GenerateVarDifConv_dbl(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, + eps, &rhs_dbl); + A_flt = (HYPRE_ParCSRMatrix) GenerateVarDifConv_flt(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, + (float)eps, &rhs_flt); + } + else + { + A_dbl = (HYPRE_ParCSRMatrix) GenerateRSVarDifConv_dbl(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, + eps, &rhs_dbl, type); + A_flt = (HYPRE_ParCSRMatrix) GenerateRSVarDifConv_flt(MPI_COMM_WORLD, + nx, ny, nz, P, Q, R, p, q, r, + (float)eps, &rhs_flt, type); + } + + *A_flt_ptr = A_flt; + *rhs_flt_ptr = rhs_flt; + *A_dbl_ptr = A_dbl; + *rhs_dbl_ptr = rhs_dbl; + + return (0); +} + + diff --git a/src/test/sstruct.c b/src/test/sstruct.c index 840f837c4e..95f34b4968 100644 --- a/src/test/sstruct.c +++ b/src/test/sstruct.c @@ -22,6 +22,7 @@ #include #include "HYPRE_lobpcg.h" +#include "lobpcg.h" #define NO_SOLVER -9198 diff --git a/src/test/struct.c b/src/test/struct.c index b63f255a43..c094bcee59 100644 --- a/src/test/struct.c +++ b/src/test/struct.c @@ -32,6 +32,7 @@ #include #include "HYPRE_lobpcg.h" +#include "lobpcg.h" /* end lobpcg */ diff --git a/src/test/test_ij.c b/src/test/test_ij.c index fb94b12e72..9e71c5a922 100644 --- a/src/test/test_ij.c +++ b/src/test/test_ij.c @@ -35,6 +35,7 @@ #include #include "HYPRE_lobpcg.h" +#include "lobpcg.h" HYPRE_Int BuildParIsoLaplacian( HYPRE_Int argc, char** argv, HYPRE_ParCSRMatrix *A_ptr ); diff --git a/src/test/test_mp.c b/src/test/test_mp.c new file mode 100644 index 0000000000..0cf72dc314 --- /dev/null +++ b/src/test/test_mp.c @@ -0,0 +1,456 @@ +/****************************************************************************** + * Copyright 1998-2019 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) + ******************************************************************************/ + +/*! + This file contains a mocked-up example, based on ex5.c in the examples directory. + The goal is to give an idea of how a user may utilize hypre to assemble matrix data + and access solvers in a way that would facilitate a mixed-precision solution of the + linear system. This particular driver demonstrates how the mixed-precision build may + be used to develop mixed-precision solvers, such as the defect-correction-based solver + implemented here. Feel free to ask questions, make comments or suggestions + regarding any of the information below. +*/ + +#include +#include +#include +#include +#include "_hypre_utilities.h" +#include "hypre_utilities_mup.h" +#include "HYPRE.h" +#include "HYPRE_parcsr_mv.h" +#include "HYPRE_parcsr_mv_mp.h" +#include "hypre_parcsr_mv_mup.h" + +#include "HYPRE_IJ_mv.h" +#include "hypre_IJ_mv_mup.h" +#include "HYPRE_parcsr_ls.h" +#include "HYPRE_parcsr_ls_mp.h" +#include "hypre_parcsr_ls_mup.h" +#include "_hypre_parcsr_mv.h" +#include "HYPRE_krylov.h" +#include "hypre_krylov_mup.h" +//#include "HYPRE_krylov_mp.h" +//#include "hypre_utilities_mp.h" + +#include + +#define MAXITS 50 + +#define my_min(a,b) (((a)<(b)) ? (a) : (b)) + +HYPRE_Int HYPRE_DefectCorrectionSolver(HYPRE_ParCSRMatrix A, + HYPRE_ParCSRMatrix B, + HYPRE_ParVector x, + HYPRE_ParVector b, + HYPRE_Solver solver, + HYPRE_PtrToSolverFcn approx_solve, + HYPRE_Int maxits); + +int main (int argc, char *argv[]) +{ + int i; + int myid, num_procs; + int N, n; + int ilower, iupper; + int local_size, extra; + int solver_id; + float h, h2; + double dh, dh2; + double d_one = 1.0; + float d_zero = 0.; + + int time_index; + float wall_time; + /*! Matrix and preconditioner declarations. Here, we declare IJMatrices and parcsr matrices + for the solver (A, parcsr_A) and the preconditioner (B, parcsr_B). I have included two suggestions + below on how we would utilize both of these matrices. + */ + + HYPRE_IJMatrix C; + HYPRE_ParCSRMatrix parcsr_C; + + HYPRE_IJMatrix A; + HYPRE_ParCSRMatrix parcsr_A; + HYPRE_IJVector b; + HYPRE_ParVector par_b; + HYPRE_IJVector x; + HYPRE_ParVector par_x; + + HYPRE_IJMatrix B; + HYPRE_ParCSRMatrix parcsr_B; + HYPRE_IJVector bb; + HYPRE_ParVector par_bb; + HYPRE_IJVector xb; + HYPRE_ParVector par_xb; + + HYPRE_IJVector ijres; + HYPRE_IJVector ijhres; + HYPRE_IJVector ije; + HYPRE_IJVector ijxtmp; + /*! Solver and preconditioner and declarations and solver_precision variable. Internally, HYPRE_SolverPrecision + is an enum struct containing HYPRE_REAL_float, HYPRE_REAL_SINGLE and HYPRE_REAL_LONG. + */ + HYPRE_Solver solver, precond; + /* Initialize MPI */ + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &myid); + MPI_Comm_size(MPI_COMM_WORLD, &num_procs); + + /*! We set up the linear system following ex5. */ + /* Some problem parameters */ + n = 2; + solver_id = 0; + /* Preliminaries: want at least one processor per row */ + if (n*n < num_procs) n = sqrt(num_procs) + 1; + N = n*n; /* global number of rows */ + /* double and float variants of mesh spacing */ + h = 1.0/(float)(n+1); /* mesh size*/ + dh = 1.0/(double)(n+1); + h2 = h*h; + dh2 = dh*dh; + /* partition rows */ + local_size = N/num_procs; + extra = N - local_size*num_procs; + + ilower = local_size*myid; + ilower += my_min(myid, extra); + + iupper = local_size*(myid+1); + iupper += my_min(myid+1, extra); + iupper = iupper - 1; + + local_size = iupper - ilower + 1; + + HYPRE_IJMatrixCreate_flt(MPI_COMM_WORLD, ilower, iupper, ilower, iupper, &A); + HYPRE_IJMatrixSetObjectType_flt(A, HYPRE_PARCSR); + + HYPRE_IJMatrixCreate_dbl(MPI_COMM_WORLD, ilower, iupper, ilower, iupper, &B); + HYPRE_IJMatrixSetObjectType_dbl(B, HYPRE_PARCSR); + + /*! Initialize before setting coefficients */ + HYPRE_IJMatrixInitialize_flt(A); + HYPRE_IJMatrixInitialize_dbl(B); + /*! Set matrix entries */ + { + int nnz; + /* double and float variants of values */ + float values[5]; + double dvalues[5]; + int cols[5]; + + for (i = ilower; i <= iupper; i++) + { + nnz = 0; + /* The left identity block:position i-n */ + if ((i-n)>=0) + { + cols[nnz] = i-n; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* The left -1: position i-1 */ + if (i%n) + { + cols[nnz] = i-1; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* Set the diagonal: position i */ + cols[nnz] = i; + values[nnz] = 4.0; + dvalues[nnz] = 4.0; + nnz++; + + /* The right -1: position i+1 */ + if ((i+1)%n) + { + cols[nnz] = i+1; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* The right identity block:position i+n */ + if ((i+n)< N) + { + cols[nnz] = i+n; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* Set the values for row i */ + HYPRE_IJMatrixSetValues_flt(A, 1, &nnz, &i, cols, values); + HYPRE_IJMatrixSetValues_dbl(B, 1, &nnz, &i, cols, dvalues); + } + } + + /*! Assemble after setting the coefficients */ + HYPRE_IJMatrixAssemble_flt(A); + HYPRE_IJMatrixAssemble_dbl(B); + /*! Get the parcsr matrix object to use */ + HYPRE_IJMatrixGetObject_flt(A, (void**) &parcsr_A); + HYPRE_IJMatrixGetObject_dbl(B, (void**) &parcsr_B); + /*! Create the rhs and solution. Here, we only account for the solver precision. Since the preconditioner solve + is done internally, we can pass the appropriate vector types there. + */ + { + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&b); + HYPRE_IJVectorSetObjectType_flt(b, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(b); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&x); + HYPRE_IJVectorSetObjectType_flt(x, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(x); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&bb); + HYPRE_IJVectorSetObjectType_dbl(bb, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(bb); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&xb); + HYPRE_IJVectorSetObjectType_dbl(xb, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(xb); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&ijres); + HYPRE_IJVectorSetObjectType_flt(ijres, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ijres); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&ije); + HYPRE_IJVectorSetObjectType_flt(ije, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ije); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&ijhres); + HYPRE_IJVectorSetObjectType_dbl(ijhres, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ijhres); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&ijxtmp); + HYPRE_IJVectorSetObjectType_dbl(ijxtmp, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ijxtmp); + } + + + /* Initialize rhs and solution */ + { + float *rhs_values, *x_values; + double *drhs_values, *dx_values; + int *rows; + + rhs_values = (float*) calloc(local_size, sizeof(float)); + x_values = (float*) calloc(local_size, sizeof(float)); + + drhs_values = (double*) calloc(local_size, sizeof(double)); + dx_values = (double*) calloc(local_size, sizeof(double)); + + rows = (int*) calloc(local_size, sizeof(int)); + + for (i=0; i \n"); + for(i=0; i +#include +#include +#include +#include "_hypre_utilities.h" +#include "hypre_utilities_mup.h" +#include "HYPRE.h" +#include "HYPRE_parcsr_mv.h" +#include "HYPRE_parcsr_mv_mp.h" +#include "hypre_parcsr_mv_mup.h" + +#include "HYPRE_IJ_mv.h" +#include "hypre_IJ_mv_mup.h" +#include "HYPRE_parcsr_ls.h" +#include "HYPRE_parcsr_ls_mp.h" +#include "hypre_parcsr_ls_mup.h" +#include "_hypre_parcsr_mv.h" +#include "HYPRE_krylov.h" +#include "hypre_krylov_mup.h" +//#include "hypre_utilities_mp.h" + +#include + +#define MAXITS 1000 + +#define my_min(a,b) (((a)<(b)) ? (a) : (b)) + +HYPRE_Int HYPRE_DefectCorrectionSolver(HYPRE_ParCSRMatrix A, + HYPRE_ParCSRMatrix B, + HYPRE_ParVector x, + HYPRE_ParVector b, + HYPRE_Solver solver, + HYPRE_PtrToSolverFcn approx_solve, + HYPRE_Int maxits); + +int main (int argc, char *argv[]) +{ + int arg_index; + int i; + int myid, num_procs; + int N, n; + int ilower, iupper; + int local_size, extra; + int solver_id; + float h, h2; + double dh, dh2; + double d_one = 1.0; + double d_zero = 0.; + float zero = 0.; + int num_iterations; + double dfinal_res_norm; + float final_res_norm; + int time_index; + float wall_time; + /*! Matrix and preconditioner declarations. Here, we declare IJMatrices and parcsr matrices + for the solver (A, parcsr_A) and the preconditioner (B, parcsr_B). I have included two suggestions + below on how we would utilize both of these matrices. + */ + + HYPRE_IJMatrix C; + HYPRE_ParCSRMatrix parcsr_C; + + HYPRE_IJMatrix A; + HYPRE_ParCSRMatrix parcsr_A; + HYPRE_IJVector b; + HYPRE_ParVector par_b; + HYPRE_IJVector x; + HYPRE_ParVector par_x; + + HYPRE_IJMatrix B; + HYPRE_ParCSRMatrix parcsr_B; + HYPRE_IJVector bb; + HYPRE_ParVector par_bb; + HYPRE_IJVector xb; + HYPRE_ParVector par_xb; + + HYPRE_IJVector ijres; + HYPRE_IJVector ijhres; + HYPRE_IJVector ije; + HYPRE_IJVector ijxtmp; + /*! Solver and preconditioner and declarations and solver_precision variable. Internally, HYPRE_SolverPrecision + is an enum struct containing HYPRE_REAL_float, HYPRE_REAL_SINGLE and HYPRE_REAL_LONG. + */ + HYPRE_Solver solver, precond; + /* Initialize MPI */ + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &myid); + MPI_Comm_size(MPI_COMM_WORLD, &num_procs); + + /*! We set up the linear system following ex5. */ + /* Some default problem parameters */ + n = 25; + solver_id = 0; + + /*-------------------------- + * Parse command line + *--------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-solver") == 0 ) + { + arg_index++; + solver_id = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + n = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /* Preliminaries: want at least one processor per row */ + if (n*n < num_procs) n = sqrt(num_procs) + 1; + N = n*n; /* global number of rows */ + /* double and float variants of mesh spacing */ + h = 1.0/(float)(n+1); /* mesh size*/ + dh = 1.0/(double)(n+1); + h2 = h*h; + dh2 = dh*dh; + /* partition rows */ + local_size = N/num_procs; + extra = N - local_size*num_procs; + + ilower = local_size*myid; + ilower += my_min(myid, extra); + + iupper = local_size*(myid+1); + iupper += my_min(myid+1, extra); + iupper = iupper - 1; + + local_size = iupper - ilower + 1; + + HYPRE_IJMatrixCreate_flt(MPI_COMM_WORLD, ilower, iupper, ilower, iupper, &A); + HYPRE_IJMatrixSetObjectType_flt(A, HYPRE_PARCSR); + + HYPRE_IJMatrixCreate_dbl(MPI_COMM_WORLD, ilower, iupper, ilower, iupper, &B); + HYPRE_IJMatrixSetObjectType_dbl(B, HYPRE_PARCSR); + + /*! Initialize before setting coefficients */ + HYPRE_IJMatrixInitialize_flt(A); + HYPRE_IJMatrixInitialize_dbl(B); + /*! Set matrix entries */ + { + int nnz; + /* double and float variants of values */ + float values[5]; + double dvalues[5]; + int cols[5]; + + for (i = ilower; i <= iupper; i++) + { + nnz = 0; + /* The left identity block:position i-n */ + if ((i-n)>=0) + { + cols[nnz] = i-n; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* The left -1: position i-1 */ + if (i%n) + { + cols[nnz] = i-1; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* Set the diagonal: position i */ + cols[nnz] = i; + values[nnz] = 4.0; + dvalues[nnz] = 4.0; + nnz++; + + /* The right -1: position i+1 */ + if ((i+1)%n) + { + cols[nnz] = i+1; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* The right identity block:position i+n */ + if ((i+n)< N) + { + cols[nnz] = i+n; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* Set the values for row i */ + HYPRE_IJMatrixSetValues_flt(A, 1, &nnz, &i, cols, values); + HYPRE_IJMatrixSetValues_dbl(B, 1, &nnz, &i, cols, dvalues); + } + } + + /*! Assemble after setting the coefficients */ + HYPRE_IJMatrixAssemble_flt(A); + HYPRE_IJMatrixAssemble_dbl(B); + /*! Get the parcsr matrix object to use */ + HYPRE_IJMatrixGetObject_flt(A, (void**) &parcsr_A); + HYPRE_IJMatrixGetObject_dbl(B, (void**) &parcsr_B); + /*! Create the rhs and solution. Here, we only account for the solver precision. Since the preconditioner solve + is done internally, we can pass the appropriate vector types there. + */ + { + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&b); + HYPRE_IJVectorSetObjectType_flt(b, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(b); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&x); + HYPRE_IJVectorSetObjectType_flt(x, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(x); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&bb); + HYPRE_IJVectorSetObjectType_dbl(bb, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(bb); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&xb); + HYPRE_IJVectorSetObjectType_dbl(xb, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(xb); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&ijres); + HYPRE_IJVectorSetObjectType_flt(ijres, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ijres); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&ije); + HYPRE_IJVectorSetObjectType_flt(ije, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ije); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&ijhres); + HYPRE_IJVectorSetObjectType_dbl(ijhres, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ijhres); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&ijxtmp); + HYPRE_IJVectorSetObjectType_dbl(ijxtmp, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ijxtmp); + } + + + /* Initialize rhs and solution */ + { + float *rhs_values, *x_values; + double *drhs_values, *dx_values; + int *rows; + + rhs_values = (float*) calloc(local_size, sizeof(float)); + x_values = (float*) calloc(local_size, sizeof(float)); + + drhs_values = (double*) calloc(local_size, sizeof(double)); + dx_values = (double*) calloc(local_size, sizeof(double)); + + rows = (int*) calloc(local_size, sizeof(int)); + + for (i=0; i +#include +#include +#include +#include "_hypre_utilities.h" +#include "hypre_utilities_mup.h" +#include "HYPRE.h" +#include "HYPRE_parcsr_mv.h" +#include "HYPRE_parcsr_mv_mp.h" +#include "hypre_parcsr_mv_mup.h" + +#include "HYPRE_IJ_mv.h" +#include "hypre_IJ_mv_mup.h" +#include "HYPRE_parcsr_ls.h" +#include "HYPRE_parcsr_ls_mp.h" +#include "hypre_parcsr_ls_mup.h" +#include "_hypre_parcsr_mv.h" +#include "HYPRE_krylov.h" +#include "hypre_krylov_mup.h" +//#include "hypre_utilities_mp.h" + +#include + +#define MAXITS 1000 + +#define my_min(a,b) (((a)<(b)) ? (a) : (b)) + +HYPRE_Int HYPRE_DefectCorrectionSolver(HYPRE_ParCSRMatrix A, + HYPRE_ParCSRMatrix B, + HYPRE_ParVector x, + HYPRE_ParVector b, + HYPRE_Solver solver, + HYPRE_PtrToSolverFcn approx_solve, + HYPRE_Int maxits); + +int main (int argc, char *argv[]) +{ + int arg_index; + int i; + int myid, num_procs; + int N, n, n2; + int ilower, iupper; + int local_size, extra; + int solver_id; + float h, h2; + double dh, dh2; + double d_one = 1.0; + double d_zero = 0.; + float zero = 0.; + int num_iterations; + double dfinal_res_norm; + float final_res_norm; + int time_index; + float wall_time; + /*! Matrix and preconditioner declarations. Here, we declare IJMatrices and parcsr matrices + for the solver (A, parcsr_A) and the preconditioner (B, parcsr_B). I have included two suggestions + below on how we would utilize both of these matrices. + */ + + HYPRE_IJMatrix C; + HYPRE_ParCSRMatrix parcsr_C; + + HYPRE_IJMatrix A; + HYPRE_ParCSRMatrix parcsr_A; + HYPRE_IJVector b; + HYPRE_ParVector par_b; + HYPRE_IJVector x; + HYPRE_ParVector par_x; + + HYPRE_IJMatrix B; + HYPRE_ParCSRMatrix parcsr_B; + HYPRE_IJVector bb; + HYPRE_ParVector par_bb; + HYPRE_IJVector xb; + HYPRE_ParVector par_xb; + + HYPRE_IJVector ijres; + HYPRE_IJVector ijhres; + HYPRE_IJVector ije; + HYPRE_IJVector ijxtmp; + /*! Solver and preconditioner and declarations and solver_precision variable. Internally, HYPRE_SolverPrecision + is an enum struct containing HYPRE_REAL_float, HYPRE_REAL_SINGLE and HYPRE_REAL_LONG. + */ + HYPRE_Solver solver, precond; + /* Initialize MPI */ + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &myid); + MPI_Comm_size(MPI_COMM_WORLD, &num_procs); + + /*! We set up the linear system following ex5. */ + /* Some default problem parameters */ + n = 25; + solver_id = 0; + + /*-------------------------- + * Parse command line + *--------------------------*/ + arg_index = 0; + while (arg_index < argc) + { + if ( strcmp(argv[arg_index], "-solver") == 0 ) + { + arg_index++; + solver_id = atoi(argv[arg_index++]); + } + else if ( strcmp(argv[arg_index], "-n") == 0 ) + { + arg_index++; + n = atoi(argv[arg_index++]); + } + else + { + arg_index++; + } + } + + /* Preliminaries: want at least one processor per row */ + if (n*n*n < num_procs) n = sqrt(num_procs) + 1; + N = n*n*n; /* global number of rows */ + /* double and float variants of mesh spacing */ + h = 1.0/(float)(n+1); /* mesh size*/ + dh = 1.0/(double)(n+1); + h2 = h*h; + n2 = n*n; + dh2 = dh*dh; + /* partition rows */ + local_size = N/num_procs; + //local_size = N; + extra = N - local_size*num_procs; + //extra = 0; + + ilower = local_size*myid; + ilower += my_min(myid, extra); + + iupper = local_size*(myid+1); + iupper += my_min(myid+1, extra); + iupper = iupper - 1; + + local_size = iupper - ilower + 1; + + HYPRE_IJMatrixCreate_flt(MPI_COMM_WORLD, ilower, iupper, ilower, iupper, &A); + HYPRE_IJMatrixSetObjectType_flt(A, HYPRE_PARCSR); + + HYPRE_IJMatrixCreate_dbl(MPI_COMM_WORLD, ilower, iupper, ilower, iupper, &B); + HYPRE_IJMatrixSetObjectType_dbl(B, HYPRE_PARCSR); + + /*! Initialize before setting coefficients */ + HYPRE_IJMatrixInitialize_flt(A); + HYPRE_IJMatrixInitialize_dbl(B); + /*! Set matrix entries */ + { + int nnz; + /* double and float variants of values */ + float values[7]; + double dvalues[7]; + int cols[7]; + + for (i = ilower; i <= iupper; i++) + { + nnz = 0; + /* The bottom identity block:position i-n^2 */ + if ((i-n2)>=0) + { + cols[nnz] = i-n2; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + /* The left identity block:position i-n */ + if ((i-n)>=0) + { + cols[nnz] = i-n; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + /* The left -1: position i-1 */ + if (i%n) + { + cols[nnz] = i-1; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + /* Set the diagonal: position i */ + cols[nnz] = i; + values[nnz] = 6.0; + dvalues[nnz] = 6.0; + nnz++; + /* The right -1: position i+1 */ + if ((i+1)%n) + { + cols[nnz] = i+1; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + /* The right identity block:position i+n */ + if ((i+n)< N) + { + cols[nnz] = i+n; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + /* The top identity block:position i+n^2 */ + if ((i+n2)< N) + { + cols[nnz] = i+n2; + values[nnz] = -1.0; + dvalues[nnz] = -1.0; + nnz++; + } + + /* Set the values for row i */ + HYPRE_IJMatrixSetValues_flt(A, 1, &nnz, &i, cols, values); + HYPRE_IJMatrixSetValues_dbl(B, 1, &nnz, &i, cols, dvalues); + } + } + + /*! Assemble after setting the coefficients */ + HYPRE_IJMatrixAssemble_flt(A); + HYPRE_IJMatrixAssemble_dbl(B); + /*! Get the parcsr matrix object to use */ + HYPRE_IJMatrixGetObject_flt(A, (void**) &parcsr_A); + HYPRE_IJMatrixGetObject_dbl(B, (void**) &parcsr_B); + /*! Create the rhs and solution. Here, we only account for the solver precision. Since the preconditioner solve + is done internally, we can pass the appropriate vector types there. + */ + { + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&b); + HYPRE_IJVectorSetObjectType_flt(b, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(b); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&x); + HYPRE_IJVectorSetObjectType_flt(x, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(x); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&bb); + HYPRE_IJVectorSetObjectType_dbl(bb, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(bb); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&xb); + HYPRE_IJVectorSetObjectType_dbl(xb, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(xb); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&ijres); + HYPRE_IJVectorSetObjectType_flt(ijres, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ijres); + + HYPRE_IJVectorCreate_flt(MPI_COMM_WORLD, ilower, iupper,&ije); + HYPRE_IJVectorSetObjectType_flt(ije, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_flt(ije); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&ijhres); + HYPRE_IJVectorSetObjectType_dbl(ijhres, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ijhres); + + HYPRE_IJVectorCreate_dbl(MPI_COMM_WORLD, ilower, iupper,&ijxtmp); + HYPRE_IJVectorSetObjectType_dbl(ijxtmp, HYPRE_PARCSR); + HYPRE_IJVectorInitialize_dbl(ijxtmp); + } + + + /* Initialize rhs and solution */ + { + float *rhs_values, *x_values; + double *drhs_values, *dx_values; + int *rows; + + rhs_values = (float*) calloc(local_size, sizeof(float)); + x_values = (float*) calloc(local_size, sizeof(float)); + + drhs_values = (double*) calloc(local_size, sizeof(double)); + dx_values = (double*) calloc(local_size, sizeof(double)); + + rows = (int*) calloc(local_size, sizeof(int)); + + for (i=0; i #endif +#ifdef HYPRE_MIXED_PRECISION +#include "utilities_mup_func.h" +#else +/* Expose this outside multiprecision.h to allow access to guarded global variables */ +#define DEFINE_GLOBAL_VARIABLE 1 +#endif + #ifdef __cplusplus extern "C" { #endif @@ -75,6 +82,9 @@ typedef int HYPRE_Int; #include +/* Include multiprecision header */ +//#include "multiprecision.h" + #if defined(HYPRE_SINGLE) typedef float HYPRE_Real; #define HYPRE_REAL_MAX FLT_MAX @@ -132,6 +142,11 @@ typedef HYPRE_Real HYPRE_Complex; #define HYPRE_MPI_COMPLEX HYPRE_MPI_REAL #endif +/* This allows us to consistently avoid 'float, double and longdouble' throughout hypre */ +typedef double hypre_double; +typedef float hypre_float; +typedef long double hypre_long_double; + /*-------------------------------------------------------------------------- * Sequential MPI stuff *--------------------------------------------------------------------------*/ @@ -152,6 +167,8 @@ typedef HYPRE_Int MPI_Comm; #define HYPRE_MAX_FILE_NAME_LEN 1024 /* longest filename length used in hypre */ #define HYPRE_MAX_MSG_LEN 2048 /* longest message length */ + + /*-------------------------------------------------------------------------- * HYPRE init/finalize *--------------------------------------------------------------------------*/ diff --git a/src/utilities/Makefile b/src/utilities/Makefile index 8a4f60b12b..f0ba9c96b1 100644 --- a/src/utilities/Makefile +++ b/src/utilities/Makefile @@ -27,6 +27,7 @@ HEADERS =\ int_array.h\ memory.h\ memory_tracker.h\ + multiprecision.h\ HYPRE_utilities.h\ mpistubs.h\ threading.h\ @@ -37,6 +38,11 @@ HEADERS =\ _hypre_utilities.hpp FILES =\ + +####################### +# Multiprecision files +####################### +MuP_FILES = \ F90_HYPRE_error.c\ F90_HYPRE_general.c\ HYPRE_handle.c\ @@ -79,9 +85,18 @@ CUFILES=\ nvtx.c\ stl_ops.c -COBJS = ${FILES:.c=.o} -CUOBJS = ${CUFILES:.c=.obj} -OBJS = ${COBJS} ${CUOBJS} +ifeq (${MP_BUILD}, 1) + COBJS = ${FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} + MuP_COBJS = ${MuP_FILES:.c=.o} +else + COBJS = ${FILES:.c=.o} ${MuP_FILES:.c=.o} + CUOBJS = ${CUFILES:.c=.obj} +endif + +#COBJS = ${FILES:.c=.o} +#CUOBJS = ${CUFILES:.c=.obj} +#OBJS = ${COBJS} ${CUOBJS} SONAME = libHYPRE_utilities-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} @@ -95,27 +110,107 @@ all: libHYPRE_utilities${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/_hypre_utilities.h $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/_hypre_utilities.hpp $(HYPRE_BUILD_DIR)/include cp -fR $(srcdir)/fortran*.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/multiprecision.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/utilities_mup_func.h $(HYPRE_BUILD_DIR)/include + cp -fR $(srcdir)/hypre_utilities_mup.h $(HYPRE_BUILD_DIR)/include # cp -fR libHYPRE* $(HYPRE_BUILD_DIR)/lib install: libHYPRE_utilities${HYPRE_LIB_SUFFIX} cp -fR $(srcdir)/HYPRE_*.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/_hypre_utilities.h $(HYPRE_INC_INSTALL) cp -fR $(srcdir)/fortran*.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/multiprecision.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/utilities_mup_func.h $(HYPRE_INC_INSTALL) + cp -fR $(srcdir)/hypre_utilities_mup.h $(HYPRE_INC_INSTALL) # cp -fR libHYPRE* $(HYPRE_LIB_INSTALL) -clean: +clean: clean_mup rm -f *.o *.obj libHYPRE* rm -rf pchdir tca.map *inslog* distclean: clean +ifeq (${MP_BUILD}, 1) +clean_mup: + rm -rf ${MuP_OBJDIR} +else +clean_mup: +endif + ################################################################## # Rules ################################################################## +#libHYPRE_utilities.a: ${OBJS} +# @echo "Building $@ ... " +# ${AR} $@ ${OBJS} +# ${RANLIB} $@ + +#libHYPRE_utilities.so libHYPRE_utilities.dylib: ${OBJS} +# @echo "Building $@ ... " +# ${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME} +# ln -s -f ${SONAME} $@ + +#${OBJS}: ${HEADERS} + +################################################################## +# Multiprecision build Rules +################################################################## + +ifeq (${MP_BUILD}, 1) + +MuP_OBJDIR = MuP_obj.dir +MuP_OBJDIR_single = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_flt} +MuP_OBJDIR_double = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_dbl} +MuP_OBJDIR_longdouble = ${MuP_OBJDIR}/${join ${shell basename ${CURDIR}},_ldbl} +# +#MKDIR_P = mkdir -p +#mkmpdir: +# ${MKDIR_P} ${MuP_OBJDIR} +# +ADD_OBJS_single = ${addprefix ${MuP_OBJDIR_single}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_single}: CFLAGS += -DMP_BUILD_SINGLE=1 +${MuP_OBJDIR_single}/%.o ${MuP_OBJDIR_single}/%.obj: %.c ${HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_double = ${addprefix ${MuP_OBJDIR_double}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_double}: CFLAGS += -DMP_BUILD_DOUBLE=1 +${MuP_OBJDIR_double}/%.o ${MuP_OBJDIR_double}/%.obj: %.c ${HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +ADD_OBJS_longdouble = ${addprefix ${MuP_OBJDIR_longdouble}/, ${notdir ${MuP_COBJS} ${CUOBJS}}} +${ADD_OBJS_longdouble}: CFLAGS += -DMP_BUILD_LONGDOUBLE=1 +${MuP_OBJDIR_longdouble}/%.o ${MuP_OBJDIR_longdouble}/%.obj: %.c ${HEADERS} + @echo "processing C object $@ ..." + @mkdir -p ${@D} + ${CC} ${CFLAGS} -c -o $@ $< +# +#.SECONDEXPANSION: +#MuPlibs = libHYPRE_utilities_single.a libHYPRE_utilities_double.a libHYPRE_utilities_longdouble.a +#${MuPlibs}: libHYPRE_utilities_%.a: $${ADD_OBJS_%} +# @echo "Building $@ ... " +# ar -rcu $@ $^ +# ${RANLIB} $@ + +# multiprecision object libraries +#libHYPRE_utilities.a: ${MuPlibs} + +#UTILITIESLIBS = ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +OBJS = ${COBJS} ${ADD_OBJS_single} ${ADD_OBJS_double} ${ADD_OBJS_longdouble} + +else +OBJS = ${COBJS} ${CUOBJS} +endif + libHYPRE_utilities.a: ${OBJS} - @echo "Building $@ ... " - ${AR} $@ ${OBJS} + @echo "Building $@ ..." + rm -f $@ + ar -rcu $@ ${OBJS} ${RANLIB} $@ libHYPRE_utilities.so libHYPRE_utilities.dylib: ${OBJS} @@ -123,4 +218,5 @@ libHYPRE_utilities.so libHYPRE_utilities.dylib: ${OBJS} ${BUILD_CC_SHARED} -o ${SONAME} ${OBJS} ${SHARED_SET_SONAME}${SONAME} ln -s -f ${SONAME} $@ + ${OBJS}: ${HEADERS} diff --git a/src/utilities/_hypre_utilities.h b/src/utilities/_hypre_utilities.h index 9a26c20a7f..504f33fd1e 100644 --- a/src/utilities/_hypre_utilities.h +++ b/src/utilities/_hypre_utilities.h @@ -10,6 +10,10 @@ #include #endif +#ifdef HYPRE_MIXED_PRECISION +#include "utilities_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -161,6 +165,7 @@ typedef struct #define hypre_HandleMagmaQueue(hypre_handle) ((hypre_handle) -> magma_queue) +extern hypre_Handle *_hypre_handle; #endif /****************************************************************************** * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other @@ -674,9 +679,12 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c void hypre_error_code_save(void); void hypre_error_code_restore(void); -#define hypre_error(IERR) hypre_error_handler(__FILE__, __LINE__, IERR, NULL) -#define hypre_error_w_msg(IERR, msg) hypre_error_handler(__FILE__, __LINE__, IERR, msg) -#define hypre_error_in_arg(IARG) hypre_error(HYPRE_ERROR_ARG | IARG<<3) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_error_w_msg_mp(IERR, msg) hypre_error_handler_dbl(__FILE__, __LINE__, IERR, msg) +#endif +#define hypre_error(IERR) hypre_error_handler(__FILE__, __LINE__, IERR, NULL) +#define hypre_error_w_msg(IERR, msg) hypre_error_handler(__FILE__, __LINE__, IERR, msg) +#define hypre_error_in_arg(IARG) hypre_error(HYPRE_ERROR_ARG | IARG<<3) #if defined(HYPRE_DEBUG) /* host assert */ @@ -958,8 +966,8 @@ typedef MPI_User_function hypre_MPI_User_function; HYPRE_Int hypre_MPI_Init( hypre_int *argc, char ***argv ); HYPRE_Int hypre_MPI_Finalize( void ); HYPRE_Int hypre_MPI_Abort( hypre_MPI_Comm comm, HYPRE_Int errorcode ); -HYPRE_Real hypre_MPI_Wtime( void ); -HYPRE_Real hypre_MPI_Wtick( void ); +hypre_double hypre_MPI_Wtime( void ); +hypre_double hypre_MPI_Wtick( void ); HYPRE_Int hypre_MPI_Barrier( hypre_MPI_Comm comm ); HYPRE_Int hypre_MPI_Comm_create( hypre_MPI_Comm comm, hypre_MPI_Group group, hypre_MPI_Comm *newcomm ); @@ -1638,10 +1646,11 @@ extern "C" { *--------------------------------------------------------------------------*/ /* timer.c */ -HYPRE_Real time_getWallclockSeconds( void ); -HYPRE_Real time_getCPUSeconds( void ); -HYPRE_Real time_get_wallclock_seconds_( void ); -HYPRE_Real time_get_cpu_seconds_( void ); +hypre_double time_getWallclockSeconds( void ); +hypre_double time_getCPUSeconds( void ); +/* These functions are not called anywhere else. Should we be ending with underscore?? - DOK */ +//hypre_double time_get_wallclock_seconds_( void ); +//hypre_double time_get_cpu_seconds_( void ); /*-------------------------------------------------------------------------- * With timing off @@ -1671,9 +1680,9 @@ HYPRE_Real time_get_cpu_seconds_( void ); typedef struct { - HYPRE_Real *wall_time; - HYPRE_Real *cpu_time; - HYPRE_Real *flops; + hypre_double *wall_time; + hypre_double *cpu_time; + hypre_double *flops; char **name; HYPRE_Int *state; /* boolean flag to allow for recursive timing */ HYPRE_Int *num_regs; /* count of how many times a name is registered */ @@ -1681,17 +1690,17 @@ typedef struct HYPRE_Int num_names; HYPRE_Int size; - HYPRE_Real wall_count; - HYPRE_Real CPU_count; - HYPRE_Real FLOP_count; + hypre_double wall_count; + hypre_double CPU_count; + hypre_double FLOP_count; } hypre_TimingType; -#ifdef HYPRE_TIMING_GLOBALS -hypre_TimingType *hypre_global_timing = NULL; -#else +//#ifdef HYPRE_TIMING_GLOBALS +//hypre_TimingType *hypre_global_timing = NULL; +//#else extern hypre_TimingType *hypre_global_timing; -#endif +//#endif /*------------------------------------------------------- * Accessor functions @@ -1720,7 +1729,7 @@ HYPRE_Int hypre_BeginTiming( HYPRE_Int time_index ); HYPRE_Int hypre_EndTiming( HYPRE_Int time_index ); HYPRE_Int hypre_ClearTiming( void ); HYPRE_Int hypre_PrintTiming( const char *heading, MPI_Comm comm ); -HYPRE_Int hypre_GetTiming( const char *heading, HYPRE_Real *wall_time_ptr, MPI_Comm comm ); +HYPRE_Int hypre_GetTiming( const char *heading, hypre_double *wall_time_ptr, MPI_Comm comm ); #endif @@ -2427,7 +2436,7 @@ HYPRE_Int hypre_SetSpGemmAlgorithm( HYPRE_Int value ); HYPRE_Int hypre_SetSpGemmBinned( HYPRE_Int value ); HYPRE_Int hypre_SetSpGemmRownnzEstimateMethod( HYPRE_Int value ); HYPRE_Int hypre_SetSpGemmRownnzEstimateNSamples( HYPRE_Int value ); -HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor( HYPRE_Real value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor( hypre_float value ); HYPRE_Int hypre_SetSpGemmHashType( char value ); HYPRE_Int hypre_SetUseGpuRand( HYPRE_Int use_gpurand ); HYPRE_Int hypre_SetGaussSeidelMethod( HYPRE_Int gs_method ); diff --git a/src/utilities/_hypre_utilities.hpp b/src/utilities/_hypre_utilities.hpp index 67f80446ad..1cba57cee6 100644 --- a/src/utilities/_hypre_utilities.hpp +++ b/src/utilities/_hypre_utilities.hpp @@ -4,6 +4,9 @@ #ifndef hypre_UTILITIES_HPP #define hypre_UTILITIES_HPP +#ifdef HYPRE_MIXED_PRECISION +#include "utilities_mup_func.h" +#endif #ifdef __cplusplus extern "C++" { diff --git a/src/utilities/error.c b/src/utilities/error.c index 74d56fb65d..193b014b8f 100644 --- a/src/utilities/error.c +++ b/src/utilities/error.c @@ -8,8 +8,10 @@ #include "_hypre_utilities.h" /* Global variable for error handling */ +/* guard definition of global variables to avoid linker errors for multiprecision build */ +#if defined (DEFINE_GLOBAL_VARIABLE) hypre_Error hypre__global_error = {0, 0, 0, NULL, 0, 0}; - +#endif /*-------------------------------------------------------------------------- * Process the error raised on the given line of the given source file *--------------------------------------------------------------------------*/ diff --git a/src/utilities/error.h b/src/utilities/error.h index 5e7559c249..0c937609cb 100644 --- a/src/utilities/error.h +++ b/src/utilities/error.h @@ -37,9 +37,12 @@ void hypre_error_handler(const char *filename, HYPRE_Int line, HYPRE_Int ierr, c void hypre_error_code_save(void); void hypre_error_code_restore(void); -#define hypre_error(IERR) hypre_error_handler(__FILE__, __LINE__, IERR, NULL) -#define hypre_error_w_msg(IERR, msg) hypre_error_handler(__FILE__, __LINE__, IERR, msg) -#define hypre_error_in_arg(IARG) hypre_error(HYPRE_ERROR_ARG | IARG<<3) +#if defined(HYPRE_MIXED_PRECISION) +#define hypre_error_w_msg_mp(IERR, msg) hypre_error_handler_dbl(__FILE__, __LINE__, IERR, msg) +#endif +#define hypre_error(IERR) hypre_error_handler(__FILE__, __LINE__, IERR, NULL) +#define hypre_error_w_msg(IERR, msg) hypre_error_handler(__FILE__, __LINE__, IERR, msg) +#define hypre_error_in_arg(IARG) hypre_error(HYPRE_ERROR_ARG | IARG<<3) #if defined(HYPRE_DEBUG) /* host assert */ diff --git a/src/utilities/general.c b/src/utilities/general.c index 71535e51d4..1d76780ae0 100644 --- a/src/utilities/general.c +++ b/src/utilities/general.c @@ -11,7 +11,9 @@ /* global variable _hypre_handle: * Outside this file, do NOT access it directly, * but use hypre_handle() instead (see handle.h) */ +#if defined (DEFINE_GLOBAL_VARIABLE) hypre_Handle *_hypre_handle = NULL; +#endif /* accessor to the global ``_hypre_handle'' */ hypre_Handle* diff --git a/src/utilities/handle.c b/src/utilities/handle.c index 8abaf30bd3..ba88dfe687 100644 --- a/src/utilities/handle.c +++ b/src/utilities/handle.c @@ -157,7 +157,7 @@ hypre_SetSpGemmRownnzEstimateNSamples( HYPRE_Int value ) *--------------------------------------------------------------------------*/ HYPRE_Int -hypre_SetSpGemmRownnzEstimateMultFactor( HYPRE_Real value ) +hypre_SetSpGemmRownnzEstimateMultFactor( hypre_float value ) { #if defined(HYPRE_USING_GPU) if (value > 0.0) diff --git a/src/utilities/handle.h b/src/utilities/handle.h index 7ca8c12442..868c184012 100644 --- a/src/utilities/handle.h +++ b/src/utilities/handle.h @@ -145,4 +145,5 @@ typedef struct #define hypre_HandleMagmaQueue(hypre_handle) ((hypre_handle) -> magma_queue) +extern hypre_Handle *_hypre_handle; #endif diff --git a/src/utilities/headers b/src/utilities/headers index 7de3d3a8b2..eb63bc8b27 100755 --- a/src/utilities/headers +++ b/src/utilities/headers @@ -23,6 +23,10 @@ cat > $INTERNAL_HEADER <<@ #include #endif +#ifdef HYPRE_MIXED_PRECISION +#include "utilities_mup_func.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -85,6 +89,9 @@ cat > $INTERNAL_HEADER <<@ #ifndef hypre_UTILITIES_HPP #define hypre_UTILITIES_HPP +#ifdef HYPRE_MIXED_PRECISION +#include "utilities_mup_func.h" +#endif #ifdef __cplusplus extern "C++" { diff --git a/src/utilities/hypre_utilities_mup.h b/src/utilities/hypre_utilities_mup.h new file mode 100644 index 0000000000..2cd7d93abb --- /dev/null +++ b/src/utilities/hypre_utilities_mup.h @@ -0,0 +1,588 @@ + +/****************************************************************************** + * 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file of multiprecision function prototypes. + * This is needed for mixed-precision algorithm development. + *****************************************************************************/ + +#ifndef HYPRE_UTILITIES_MUP_HEADER +#define HYPRE_UTILITIES_MUP_HEADER + +#include "HYPRE_utilities.h" + +#if defined (HYPRE_MIXED_PRECISION) + +hypre_LinkList hypre_create_elt_flt ( HYPRE_Int Item ); +hypre_LinkList hypre_create_elt_dbl ( HYPRE_Int Item ); +hypre_LinkList hypre_create_elt_long_dbl ( HYPRE_Int Item ); +void hypre_dispose_elt_flt ( hypre_LinkList element_ptr ); +void hypre_dispose_elt_dbl ( hypre_LinkList element_ptr ); +void hypre_dispose_elt_long_dbl ( hypre_LinkList element_ptr ); +void hypre_enter_on_lists_flt ( hypre_LinkList *LoL_head_ptr, hypre_LinkList *LoL_tail_ptr, + HYPRE_Int measure, HYPRE_Int index, HYPRE_Int *lists, HYPRE_Int *where ); +void hypre_enter_on_lists_dbl ( hypre_LinkList *LoL_head_ptr, hypre_LinkList *LoL_tail_ptr, + HYPRE_Int measure, HYPRE_Int index, HYPRE_Int *lists, HYPRE_Int *where ); +void hypre_enter_on_lists_long_dbl ( hypre_LinkList *LoL_head_ptr, hypre_LinkList *LoL_tail_ptr, + HYPRE_Int measure, HYPRE_Int index, HYPRE_Int *lists, HYPRE_Int *where ); +void hypre_remove_point_flt ( hypre_LinkList *LoL_head_ptr, hypre_LinkList *LoL_tail_ptr, + HYPRE_Int measure, HYPRE_Int index, HYPRE_Int *lists, HYPRE_Int *where ); +void hypre_remove_point_dbl ( hypre_LinkList *LoL_head_ptr, hypre_LinkList *LoL_tail_ptr, + HYPRE_Int measure, HYPRE_Int index, HYPRE_Int *lists, HYPRE_Int *where ); +void hypre_remove_point_long_dbl ( hypre_LinkList *LoL_head_ptr, hypre_LinkList *LoL_tail_ptr, + HYPRE_Int measure, HYPRE_Int index, HYPRE_Int *lists, HYPRE_Int *where ); +HYPRE_Int hypre_BigBinarySearch_flt ( HYPRE_BigInt *list, HYPRE_BigInt value, HYPRE_Int list_length ); +HYPRE_Int hypre_BigBinarySearch_dbl ( HYPRE_BigInt *list, HYPRE_BigInt value, HYPRE_Int list_length ); +HYPRE_Int hypre_BigBinarySearch_long_dbl ( HYPRE_BigInt *list, HYPRE_BigInt value, HYPRE_Int list_length ); +HYPRE_BigInt *hypre_BigLowerBound_flt ( HYPRE_BigInt *first, HYPRE_BigInt *last, HYPRE_BigInt value ); +HYPRE_BigInt *hypre_BigLowerBound_dbl ( HYPRE_BigInt *first, HYPRE_BigInt *last, HYPRE_BigInt value ); +HYPRE_BigInt *hypre_BigLowerBound_long_dbl ( HYPRE_BigInt *first, HYPRE_BigInt *last, HYPRE_BigInt value ); +HYPRE_Int hypre_BinarySearch_flt ( HYPRE_Int *list, HYPRE_Int value, HYPRE_Int list_length ); +HYPRE_Int hypre_BinarySearch_dbl ( HYPRE_Int *list, HYPRE_Int value, HYPRE_Int list_length ); +HYPRE_Int hypre_BinarySearch_long_dbl ( HYPRE_Int *list, HYPRE_Int value, HYPRE_Int list_length ); +HYPRE_Int hypre_BinarySearch2_flt ( HYPRE_Int *list, HYPRE_Int value, HYPRE_Int low, HYPRE_Int high, + HYPRE_Int *spot ); +HYPRE_Int hypre_BinarySearch2_dbl ( HYPRE_Int *list, HYPRE_Int value, HYPRE_Int low, HYPRE_Int high, + HYPRE_Int *spot ); +HYPRE_Int hypre_BinarySearch2_long_dbl ( HYPRE_Int *list, HYPRE_Int value, HYPRE_Int low, HYPRE_Int high, + HYPRE_Int *spot ); +HYPRE_Int *hypre_LowerBound_flt ( HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int value ); +HYPRE_Int *hypre_LowerBound_dbl ( HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int value ); +HYPRE_Int *hypre_LowerBound_long_dbl ( HYPRE_Int *first, HYPRE_Int *last, HYPRE_Int value ); +hypre_float hypre_cabs_flt ( hypre_float value ); +hypre_double hypre_cabs_dbl ( hypre_double value ); +hypre_long_double hypre_cabs_long_dbl ( hypre_long_double value ); +hypre_float hypre_cimag_flt ( hypre_float value ); +hypre_double hypre_cimag_dbl ( hypre_double value ); +hypre_long_double hypre_cimag_long_dbl ( hypre_long_double value ); +hypre_float hypre_conj_flt ( hypre_float value ); +hypre_double hypre_conj_dbl ( hypre_double value ); +hypre_long_double hypre_conj_long_dbl ( hypre_long_double value ); +hypre_float hypre_creal_flt ( hypre_float value ); +hypre_double hypre_creal_dbl ( hypre_double value ); +hypre_long_double hypre_creal_long_dbl ( hypre_long_double value ); +hypre_float hypre_csqrt_flt ( hypre_float value ); +hypre_double hypre_csqrt_dbl ( hypre_double value ); +hypre_long_double hypre_csqrt_long_dbl ( hypre_long_double value ); +HYPRE_Int hypre_bind_device_flt (HYPRE_Int myid, HYPRE_Int nproc, MPI_Comm comm); +HYPRE_Int hypre_bind_device_dbl (HYPRE_Int myid, HYPRE_Int nproc, MPI_Comm comm); +HYPRE_Int hypre_bind_device_long_dbl (HYPRE_Int myid, HYPRE_Int nproc, MPI_Comm comm); +void hypre_error_handler_flt (const char *filename, HYPRE_Int line, HYPRE_Int ierr, const char *msg); +void hypre_error_handler_dbl (const char *filename, HYPRE_Int line, HYPRE_Int ierr, const char *msg); +void hypre_error_handler_long_dbl (const char *filename, HYPRE_Int line, HYPRE_Int ierr, const char *msg); +HYPRE_Int hypre_CreateBinaryTree_flt (HYPRE_Int, HYPRE_Int, hypre_BinaryTree*); +HYPRE_Int hypre_CreateBinaryTree_dbl (HYPRE_Int, HYPRE_Int, hypre_BinaryTree*); +HYPRE_Int hypre_CreateBinaryTree_long_dbl (HYPRE_Int, HYPRE_Int, hypre_BinaryTree*); +HYPRE_Int hypre_DataExchangeList_flt (HYPRE_Int num_contacts, HYPRE_Int *contact_proc_list, + void *contact_send_buf, HYPRE_Int *contact_send_buf_starts, HYPRE_Int contact_obj_size, + HYPRE_Int response_obj_size, hypre_DataExchangeResponse *response_obj, HYPRE_Int max_response_size, + HYPRE_Int rnum, MPI_Comm comm, void **p_response_recv_buf, HYPRE_Int **p_response_recv_buf_starts); +HYPRE_Int hypre_DataExchangeList_dbl (HYPRE_Int num_contacts, HYPRE_Int *contact_proc_list, + void *contact_send_buf, HYPRE_Int *contact_send_buf_starts, HYPRE_Int contact_obj_size, + HYPRE_Int response_obj_size, hypre_DataExchangeResponse *response_obj, HYPRE_Int max_response_size, + HYPRE_Int rnum, MPI_Comm comm, void **p_response_recv_buf, HYPRE_Int **p_response_recv_buf_starts); +HYPRE_Int hypre_DataExchangeList_long_dbl (HYPRE_Int num_contacts, HYPRE_Int *contact_proc_list, + void *contact_send_buf, HYPRE_Int *contact_send_buf_starts, HYPRE_Int contact_obj_size, + HYPRE_Int response_obj_size, hypre_DataExchangeResponse *response_obj, HYPRE_Int max_response_size, + HYPRE_Int rnum, MPI_Comm comm, void **p_response_recv_buf, HYPRE_Int **p_response_recv_buf_starts); +HYPRE_Int hypre_DestroyBinaryTree_flt (hypre_BinaryTree*); +HYPRE_Int hypre_DestroyBinaryTree_dbl (hypre_BinaryTree*); +HYPRE_Int hypre_DestroyBinaryTree_long_dbl (hypre_BinaryTree*); +HYPRE_Int hypre_GetDevice_flt (hypre_int *device_id); +HYPRE_Int hypre_GetDevice_dbl (hypre_int *device_id); +HYPRE_Int hypre_GetDevice_long_dbl (hypre_int *device_id); +HYPRE_Int hypre_GetDeviceCount_flt (hypre_int *device_count); +HYPRE_Int hypre_GetDeviceCount_dbl (hypre_int *device_count); +HYPRE_Int hypre_GetDeviceCount_long_dbl (hypre_int *device_count); +HYPRE_Int hypre_GetDeviceLastError_flt (void); +HYPRE_Int hypre_GetDeviceLastError_dbl (void); +HYPRE_Int hypre_GetDeviceLastError_long_dbl (void); + +HYPRE_Int hypre_HandleDestroy_flt (hypre_Handle *hypre_handle_); +HYPRE_Int hypre_HandleDestroy_dbl (hypre_Handle *hypre_handle_); +HYPRE_Int hypre_HandleDestroy_long_dbl (hypre_Handle *hypre_handle_); +HYPRE_Int hypre_SetDevice_flt (hypre_int device_id, hypre_Handle *hypre_handle_); +HYPRE_Int hypre_SetDevice_dbl (hypre_int device_id, hypre_Handle *hypre_handle_); +HYPRE_Int hypre_SetDevice_long_dbl (hypre_int device_id, hypre_Handle *hypre_handle_); +HYPRE_Int hypre_SetGaussSeidelMethod_flt ( HYPRE_Int gs_method ); +HYPRE_Int hypre_SetGaussSeidelMethod_dbl ( HYPRE_Int gs_method ); +HYPRE_Int hypre_SetGaussSeidelMethod_long_dbl ( HYPRE_Int gs_method ); +HYPRE_Int hypre_SetSpGemmAlgorithm_flt ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmAlgorithm_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmAlgorithm_long_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmBinned_flt ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmBinned_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmBinned_long_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMethod_flt ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMethod_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMethod_long_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor_flt ( hypre_float value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor_dbl ( hypre_float value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor_long_dbl ( hypre_float value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateNSamples_flt ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateNSamples_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateNSamples_long_dbl ( HYPRE_Int value ); +HYPRE_Int hypre_SetSpGemmUseVendor_flt ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpGemmUseVendor_dbl ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpGemmUseVendor_long_dbl ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpMVUseVendor_flt ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpMVUseVendor_dbl ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpMVUseVendor_long_dbl ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpTransUseVendor_flt ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpTransUseVendor_dbl ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetSpTransUseVendor_long_dbl ( HYPRE_Int use_vendor ); +HYPRE_Int hypre_SetUseGpuRand_flt ( HYPRE_Int use_gpurand ); +HYPRE_Int hypre_SetUseGpuRand_dbl ( HYPRE_Int use_gpurand ); +HYPRE_Int hypre_SetUseGpuRand_long_dbl ( HYPRE_Int use_gpurand ); +HYPRE_Int hypre_SetUserDeviceMalloc_flt (GPUMallocFunc func); +HYPRE_Int hypre_SetUserDeviceMalloc_dbl (GPUMallocFunc func); +HYPRE_Int hypre_SetUserDeviceMalloc_long_dbl (GPUMallocFunc func); +HYPRE_Int hypre_SetUserDeviceMfree_flt (GPUMfreeFunc func); +HYPRE_Int hypre_SetUserDeviceMfree_dbl (GPUMfreeFunc func); +HYPRE_Int hypre_SetUserDeviceMfree_long_dbl (GPUMfreeFunc func); +void hypre_UnorderedBigIntMapCreate_flt ( hypre_UnorderedBigIntMap *m, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedBigIntMapCreate_dbl ( hypre_UnorderedBigIntMap *m, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedBigIntMapCreate_long_dbl ( hypre_UnorderedBigIntMap *m, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedBigIntMapDestroy_flt ( hypre_UnorderedBigIntMap *m ); +void hypre_UnorderedBigIntMapDestroy_dbl ( hypre_UnorderedBigIntMap *m ); +void hypre_UnorderedBigIntMapDestroy_long_dbl ( hypre_UnorderedBigIntMap *m ); +HYPRE_BigInt *hypre_UnorderedBigIntSetCopyToArray_flt ( hypre_UnorderedBigIntSet *s, HYPRE_Int *len ); +HYPRE_BigInt *hypre_UnorderedBigIntSetCopyToArray_dbl ( hypre_UnorderedBigIntSet *s, HYPRE_Int *len ); +HYPRE_BigInt *hypre_UnorderedBigIntSetCopyToArray_long_dbl ( hypre_UnorderedBigIntSet *s, HYPRE_Int *len ); +void hypre_UnorderedBigIntSetCreate_flt ( hypre_UnorderedBigIntSet *s, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedBigIntSetCreate_dbl ( hypre_UnorderedBigIntSet *s, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedBigIntSetCreate_long_dbl ( hypre_UnorderedBigIntSet *s, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedBigIntSetDestroy_flt ( hypre_UnorderedBigIntSet *s ); +void hypre_UnorderedBigIntSetDestroy_dbl ( hypre_UnorderedBigIntSet *s ); +void hypre_UnorderedBigIntSetDestroy_long_dbl ( hypre_UnorderedBigIntSet *s ); +void hypre_UnorderedIntMapCreate_flt ( hypre_UnorderedIntMap *m, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedIntMapCreate_dbl ( hypre_UnorderedIntMap *m, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedIntMapCreate_long_dbl ( hypre_UnorderedIntMap *m, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedIntMapDestroy_flt ( hypre_UnorderedIntMap *m ); +void hypre_UnorderedIntMapDestroy_dbl ( hypre_UnorderedIntMap *m ); +void hypre_UnorderedIntMapDestroy_long_dbl ( hypre_UnorderedIntMap *m ); +HYPRE_Int *hypre_UnorderedIntSetCopyToArray_flt ( hypre_UnorderedIntSet *s, HYPRE_Int *len ); +HYPRE_Int *hypre_UnorderedIntSetCopyToArray_dbl ( hypre_UnorderedIntSet *s, HYPRE_Int *len ); +HYPRE_Int *hypre_UnorderedIntSetCopyToArray_long_dbl ( hypre_UnorderedIntSet *s, HYPRE_Int *len ); +void hypre_UnorderedIntSetCreate_flt ( hypre_UnorderedIntSet *s, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedIntSetCreate_dbl ( hypre_UnorderedIntSet *s, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedIntSetCreate_long_dbl ( hypre_UnorderedIntSet *s, + HYPRE_Int inCapacity, + HYPRE_Int concurrencyLevel); +void hypre_UnorderedIntSetDestroy_flt ( hypre_UnorderedIntSet *s ); +void hypre_UnorderedIntSetDestroy_dbl ( hypre_UnorderedIntSet *s ); +void hypre_UnorderedIntSetDestroy_long_dbl ( hypre_UnorderedIntSet *s ); +hypre_IntArray* hypre_IntArrayCloneDeep_flt ( hypre_IntArray *x ); +hypre_IntArray* hypre_IntArrayCloneDeep_dbl ( hypre_IntArray *x ); +hypre_IntArray* hypre_IntArrayCloneDeep_long_dbl ( hypre_IntArray *x ); +hypre_IntArray* hypre_IntArrayCloneDeep_v2_flt ( hypre_IntArray *x, + HYPRE_MemoryLocation memory_location ); +hypre_IntArray* hypre_IntArrayCloneDeep_v2_dbl ( hypre_IntArray *x, + HYPRE_MemoryLocation memory_location ); +hypre_IntArray* hypre_IntArrayCloneDeep_v2_long_dbl ( hypre_IntArray *x, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayCopy_flt ( hypre_IntArray *x, hypre_IntArray *y ); +HYPRE_Int hypre_IntArrayCopy_dbl ( hypre_IntArray *x, hypre_IntArray *y ); +HYPRE_Int hypre_IntArrayCopy_long_dbl ( hypre_IntArray *x, hypre_IntArray *y ); +HYPRE_Int hypre_IntArrayCount_flt ( hypre_IntArray *v, HYPRE_Int value, + HYPRE_Int *num_values_ptr ); +HYPRE_Int hypre_IntArrayCount_dbl ( hypre_IntArray *v, HYPRE_Int value, + HYPRE_Int *num_values_ptr ); +HYPRE_Int hypre_IntArrayCount_long_dbl ( hypre_IntArray *v, HYPRE_Int value, + HYPRE_Int *num_values_ptr ); +HYPRE_Int hypre_IntArrayCountHost_flt ( hypre_IntArray *v, HYPRE_Int value, + HYPRE_Int *num_values_ptr ); +HYPRE_Int hypre_IntArrayCountHost_dbl ( hypre_IntArray *v, HYPRE_Int value, + HYPRE_Int *num_values_ptr ); +HYPRE_Int hypre_IntArrayCountHost_long_dbl ( hypre_IntArray *v, HYPRE_Int value, + HYPRE_Int *num_values_ptr ); +hypre_IntArray* hypre_IntArrayCreate_flt ( HYPRE_Int size ); +hypre_IntArray* hypre_IntArrayCreate_dbl ( HYPRE_Int size ); +hypre_IntArray* hypre_IntArrayCreate_long_dbl ( HYPRE_Int size ); +HYPRE_Int hypre_IntArrayDestroy_flt ( hypre_IntArray *array ); +HYPRE_Int hypre_IntArrayDestroy_dbl ( hypre_IntArray *array ); +HYPRE_Int hypre_IntArrayDestroy_long_dbl ( hypre_IntArray *array ); +HYPRE_Int hypre_IntArrayInitialize_flt ( hypre_IntArray *array ); +HYPRE_Int hypre_IntArrayInitialize_dbl ( hypre_IntArray *array ); +HYPRE_Int hypre_IntArrayInitialize_long_dbl ( hypre_IntArray *array ); +HYPRE_Int hypre_IntArrayInitialize_v2_flt ( hypre_IntArray *array, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayInitialize_v2_dbl ( hypre_IntArray *array, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayInitialize_v2_long_dbl ( hypre_IntArray *array, + HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayInverseMapping_flt ( hypre_IntArray *v, hypre_IntArray **w_ptr ); +HYPRE_Int hypre_IntArrayInverseMapping_dbl ( hypre_IntArray *v, hypre_IntArray **w_ptr ); +HYPRE_Int hypre_IntArrayInverseMapping_long_dbl ( hypre_IntArray *v, hypre_IntArray **w_ptr ); +HYPRE_Int hypre_IntArrayMigrate_flt ( hypre_IntArray *v, HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayMigrate_dbl ( hypre_IntArray *v, HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayMigrate_long_dbl ( hypre_IntArray *v, HYPRE_MemoryLocation memory_location ); +HYPRE_Int hypre_IntArrayNegate_flt ( hypre_IntArray *v ); +HYPRE_Int hypre_IntArrayNegate_dbl ( hypre_IntArray *v ); +HYPRE_Int hypre_IntArrayNegate_long_dbl ( hypre_IntArray *v ); +HYPRE_Int hypre_IntArrayPrint_flt ( MPI_Comm comm, hypre_IntArray *array, const char *filename ); +HYPRE_Int hypre_IntArrayPrint_dbl ( MPI_Comm comm, hypre_IntArray *array, const char *filename ); +HYPRE_Int hypre_IntArrayPrint_long_dbl ( MPI_Comm comm, hypre_IntArray *array, const char *filename ); +HYPRE_Int hypre_IntArrayRead_flt ( MPI_Comm comm, const char *filename, hypre_IntArray **array_ptr ); +HYPRE_Int hypre_IntArrayRead_dbl ( MPI_Comm comm, const char *filename, hypre_IntArray **array_ptr ); +HYPRE_Int hypre_IntArrayRead_long_dbl ( MPI_Comm comm, const char *filename, hypre_IntArray **array_ptr ); +HYPRE_Int hypre_IntArraySetConstantValues_flt ( hypre_IntArray *v, HYPRE_Int value ); +HYPRE_Int hypre_IntArraySetConstantValues_dbl ( hypre_IntArray *v, HYPRE_Int value ); +HYPRE_Int hypre_IntArraySetConstantValues_long_dbl ( hypre_IntArray *v, HYPRE_Int value ); +HYPRE_Int hypre_IntArraySetConstantValuesHost_flt ( hypre_IntArray *v, HYPRE_Int value ); +HYPRE_Int hypre_IntArraySetConstantValuesHost_dbl ( hypre_IntArray *v, HYPRE_Int value ); +HYPRE_Int hypre_IntArraySetConstantValuesHost_long_dbl ( hypre_IntArray *v, HYPRE_Int value ); +HYPRE_Int hypre_Log2_flt ( HYPRE_Int p ); +HYPRE_Int hypre_Log2_dbl ( HYPRE_Int p ); +HYPRE_Int hypre_Log2_long_dbl ( HYPRE_Int p ); +/*-------------------------------------------------------------------------- + *Prototypes + *--------------------------------------------------------------------------*/ + +/* memory.c */ +HYPRE_Int hypre_GetMemoryLocationName(hypre_MemoryLocation memory_location, + char *memory_location_name); +HYPRE_Int hypre_SetCubMemPoolSize_flt ( hypre_uint bin_growth, hypre_uint min_bin, hypre_uint max_bin, + size_t max_cached_bytes ); +HYPRE_Int hypre_SetCubMemPoolSize_dbl ( hypre_uint bin_growth, hypre_uint min_bin, hypre_uint max_bin, + size_t max_cached_bytes ); +HYPRE_Int hypre_SetCubMemPoolSize_long_dbl ( hypre_uint bin_growth, hypre_uint min_bin, hypre_uint max_bin, + size_t max_cached_bytes ); +void hypre_big_merge_sort_flt (HYPRE_BigInt *in, HYPRE_BigInt *temp, HYPRE_Int len, + HYPRE_BigInt **sorted); +void hypre_big_merge_sort_dbl (HYPRE_BigInt *in, HYPRE_BigInt *temp, HYPRE_Int len, + HYPRE_BigInt **sorted); +void hypre_big_merge_sort_long_dbl (HYPRE_BigInt *in, HYPRE_BigInt *temp, HYPRE_Int len, + HYPRE_BigInt **sorted); +void hypre_big_sort_and_create_inverse_map_flt (HYPRE_BigInt *in, HYPRE_Int len, HYPRE_BigInt **out, + hypre_UnorderedBigIntMap *inverse_map); +void hypre_big_sort_and_create_inverse_map_dbl (HYPRE_BigInt *in, HYPRE_Int len, HYPRE_BigInt **out, + hypre_UnorderedBigIntMap *inverse_map); +void hypre_big_sort_and_create_inverse_map_long_dbl (HYPRE_BigInt *in, HYPRE_Int len, HYPRE_BigInt **out, + hypre_UnorderedBigIntMap *inverse_map); +HYPRE_Int hypre_IntArrayMergeOrdered_flt ( hypre_IntArray *array1, hypre_IntArray *array2, + hypre_IntArray *array3 ); +HYPRE_Int hypre_IntArrayMergeOrdered_dbl ( hypre_IntArray *array1, hypre_IntArray *array2, + hypre_IntArray *array3 ); +HYPRE_Int hypre_IntArrayMergeOrdered_long_dbl ( hypre_IntArray *array1, hypre_IntArray *array2, + hypre_IntArray *array3 ); +void hypre_merge_sort_flt (HYPRE_Int *in, HYPRE_Int *temp, HYPRE_Int len, HYPRE_Int **sorted); +void hypre_merge_sort_dbl (HYPRE_Int *in, HYPRE_Int *temp, HYPRE_Int len, HYPRE_Int **sorted); +void hypre_merge_sort_long_dbl (HYPRE_Int *in, HYPRE_Int *temp, HYPRE_Int len, HYPRE_Int **sorted); +void hypre_sort_and_create_inverse_map_flt (HYPRE_Int *in, HYPRE_Int len, HYPRE_Int **out, + hypre_UnorderedIntMap *inverse_map); +void hypre_sort_and_create_inverse_map_dbl (HYPRE_Int *in, HYPRE_Int len, HYPRE_Int **out, + hypre_UnorderedIntMap *inverse_map); +void hypre_sort_and_create_inverse_map_long_dbl (HYPRE_Int *in, HYPRE_Int len, HYPRE_Int **out, + hypre_UnorderedIntMap *inverse_map); +void hypre_union2_flt (HYPRE_Int n1, HYPRE_BigInt *arr1, HYPRE_Int n2, HYPRE_BigInt *arr2, HYPRE_Int *n3, + HYPRE_BigInt *arr3, HYPRE_Int *map1, HYPRE_Int *map2); +void hypre_union2_dbl (HYPRE_Int n1, HYPRE_BigInt *arr1, HYPRE_Int n2, HYPRE_BigInt *arr2, HYPRE_Int *n3, + HYPRE_BigInt *arr3, HYPRE_Int *map1, HYPRE_Int *map2); +void hypre_union2_long_dbl (HYPRE_Int n1, HYPRE_BigInt *arr1, HYPRE_Int n2, HYPRE_BigInt *arr2, HYPRE_Int *n3, + HYPRE_BigInt *arr3, HYPRE_Int *map1, HYPRE_Int *map2); +HYPRE_Int hypre_mm_is_valid_flt (MM_typecode matcode); /* too complex for a macro */ +HYPRE_Int hypre_mm_read_banner(FILE *f, MM_typecode *matcode); +HYPRE_Int hypre_mm_is_valid_dbl (MM_typecode matcode); /* too complex for a macro */ +HYPRE_Int hypre_mm_read_banner(FILE *f, MM_typecode *matcode); +HYPRE_Int hypre_mm_is_valid_long_dbl (MM_typecode matcode); /* too complex for a macro */ +HYPRE_Int hypre_mm_read_banner(FILE *f, MM_typecode *matcode); +HYPRE_Int hypre_mm_read_mtx_crd_size_flt (FILE *f, HYPRE_Int *M, HYPRE_Int *N, HYPRE_Int *nz); +HYPRE_Int hypre_mm_read_mtx_crd_size_dbl (FILE *f, HYPRE_Int *M, HYPRE_Int *N, HYPRE_Int *nz); +HYPRE_Int hypre_mm_read_mtx_crd_size_long_dbl (FILE *f, HYPRE_Int *M, HYPRE_Int *N, HYPRE_Int *nz); +void hypre_GpuProfilingPopRange_flt (void); +void hypre_GpuProfilingPopRange_dbl (void); +void hypre_GpuProfilingPopRange_long_dbl (void); +void hypre_GpuProfilingPushRange_flt (const char *name); +void hypre_GpuProfilingPushRange_dbl (const char *name); +void hypre_GpuProfilingPushRange_long_dbl (const char *name); +void hypre_GpuProfilingPushRangeColor_flt (const char *name, HYPRE_Int cid); +void hypre_GpuProfilingPushRangeColor_dbl (const char *name, HYPRE_Int cid); +void hypre_GpuProfilingPushRangeColor_long_dbl (const char *name, HYPRE_Int cid); +void hypre_prefix_sum_flt (HYPRE_Int *in_out, HYPRE_Int *sum, HYPRE_Int *workspace); +void hypre_prefix_sum_dbl (HYPRE_Int *in_out, HYPRE_Int *sum, HYPRE_Int *workspace); +void hypre_prefix_sum_long_dbl (HYPRE_Int *in_out, HYPRE_Int *sum, HYPRE_Int *workspace); +void hypre_prefix_sum_multiple_flt (HYPRE_Int *in_out, HYPRE_Int *sum, HYPRE_Int n, + HYPRE_Int *workspace); +void hypre_prefix_sum_multiple_dbl (HYPRE_Int *in_out, HYPRE_Int *sum, HYPRE_Int n, + HYPRE_Int *workspace); +void hypre_prefix_sum_multiple_long_dbl (HYPRE_Int *in_out, HYPRE_Int *sum, HYPRE_Int n, + HYPRE_Int *workspace); +void hypre_prefix_sum_pair_flt (HYPRE_Int *in_out1, HYPRE_Int *sum1, HYPRE_Int *in_out2, HYPRE_Int *sum2, + HYPRE_Int *workspace); +void hypre_prefix_sum_pair_dbl (HYPRE_Int *in_out1, HYPRE_Int *sum1, HYPRE_Int *in_out2, HYPRE_Int *sum2, + HYPRE_Int *workspace); +void hypre_prefix_sum_pair_long_dbl (HYPRE_Int *in_out1, HYPRE_Int *sum1, HYPRE_Int *in_out2, HYPRE_Int *sum2, + HYPRE_Int *workspace); +void hypre_prefix_sum_triple_flt (HYPRE_Int *in_out1, HYPRE_Int *sum1, HYPRE_Int *in_out2, + HYPRE_Int *sum2, HYPRE_Int *in_out3, HYPRE_Int *sum3, HYPRE_Int *workspace); +void hypre_prefix_sum_triple_dbl (HYPRE_Int *in_out1, HYPRE_Int *sum1, HYPRE_Int *in_out2, + HYPRE_Int *sum2, HYPRE_Int *in_out3, HYPRE_Int *sum3, HYPRE_Int *workspace); +void hypre_prefix_sum_triple_long_dbl (HYPRE_Int *in_out1, HYPRE_Int *sum1, HYPRE_Int *in_out2, + HYPRE_Int *sum2, HYPRE_Int *in_out3, HYPRE_Int *sum3, HYPRE_Int *workspace); +HYPRE_Int hypre_fprintf_flt ( FILE *stream, const char *format, ... ); +HYPRE_Int hypre_fprintf_dbl ( FILE *stream, const char *format, ... ); +HYPRE_Int hypre_fprintf_long_dbl ( FILE *stream, const char *format, ... ); +HYPRE_Int hypre_fscanf_flt ( FILE *stream, const char *format, ... ); +HYPRE_Int hypre_fscanf_dbl ( FILE *stream, const char *format, ... ); +HYPRE_Int hypre_fscanf_long_dbl ( FILE *stream, const char *format, ... ); +HYPRE_Int hypre_ndigits_flt ( HYPRE_BigInt number ); +HYPRE_Int hypre_ndigits_dbl ( HYPRE_BigInt number ); +HYPRE_Int hypre_ndigits_long_dbl ( HYPRE_BigInt number ); +HYPRE_Int hypre_ParPrintf_flt (MPI_Comm comm, const char *format, ...); +HYPRE_Int hypre_ParPrintf_dbl (MPI_Comm comm, const char *format, ...); +HYPRE_Int hypre_ParPrintf_long_dbl (MPI_Comm comm, const char *format, ...); +HYPRE_Int hypre_printf_flt ( const char *format, ... ); +HYPRE_Int hypre_printf_dbl ( const char *format, ... ); +HYPRE_Int hypre_printf_long_dbl ( const char *format, ... ); +HYPRE_Int hypre_scanf_flt ( const char *format, ... ); +HYPRE_Int hypre_scanf_dbl ( const char *format, ... ); +HYPRE_Int hypre_scanf_long_dbl ( const char *format, ... ); +HYPRE_Int hypre_snprintf_flt ( char *s, size_t size, const char *format, ...); +HYPRE_Int hypre_snprintf_dbl ( char *s, size_t size, const char *format, ...); +HYPRE_Int hypre_snprintf_long_dbl ( char *s, size_t size, const char *format, ...); +HYPRE_Int hypre_sprintf_flt ( char *s, const char *format, ... ); +HYPRE_Int hypre_sprintf_dbl ( char *s, const char *format, ... ); +HYPRE_Int hypre_sprintf_long_dbl ( char *s, const char *format, ... ); +HYPRE_Int hypre_sscanf_flt ( char *s, const char *format, ... ); +HYPRE_Int hypre_sscanf_dbl ( char *s, const char *format, ... ); +HYPRE_Int hypre_sscanf_long_dbl ( char *s, const char *format, ... ); +void hypre_BigQsort0_flt ( HYPRE_BigInt *v, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort0_dbl ( HYPRE_BigInt *v, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort0_long_dbl ( HYPRE_BigInt *v, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort1_flt ( HYPRE_BigInt *v, hypre_float *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort1_dbl ( HYPRE_BigInt *v, hypre_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort1_long_dbl ( HYPRE_BigInt *v, hypre_long_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort2i_flt ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort2i_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort2i_long_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort4_abs_flt ( hypre_float *v, HYPRE_BigInt *w, HYPRE_Int *z, HYPRE_Int *y, + HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort4_abs_dbl ( hypre_double *v, HYPRE_BigInt *w, HYPRE_Int *z, HYPRE_Int *y, + HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsort4_abs_long_dbl ( hypre_long_double *v, HYPRE_BigInt *w, HYPRE_Int *z, HYPRE_Int *y, + HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsortb2i_flt ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, + HYPRE_Int right ); +void hypre_BigQsortb2i_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, + HYPRE_Int right ); +void hypre_BigQsortb2i_long_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, + HYPRE_Int right ); +void hypre_BigQsortbi_flt ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsortbi_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsortbi_long_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsortbLoc_flt ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsortbLoc_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigQsortbLoc_long_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_BigSwap_flt ( HYPRE_BigInt *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap_dbl ( HYPRE_BigInt *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap_long_dbl ( HYPRE_BigInt *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap2_flt ( HYPRE_BigInt *v, hypre_float *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap2_dbl ( HYPRE_BigInt *v, hypre_double *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap2_long_dbl ( HYPRE_BigInt *v, hypre_long_double *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap2i_flt ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap2i_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap2i_long_dbl ( HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwap4_d_flt ( hypre_float *v, HYPRE_BigInt *w, HYPRE_Int *z, HYPRE_Int *y, HYPRE_Int i, + HYPRE_Int j ); +void hypre_BigSwap4_d_dbl ( hypre_double *v, HYPRE_BigInt *w, HYPRE_Int *z, HYPRE_Int *y, HYPRE_Int i, + HYPRE_Int j ); +void hypre_BigSwap4_d_long_dbl ( hypre_long_double *v, HYPRE_BigInt *w, HYPRE_Int *z, HYPRE_Int *y, HYPRE_Int i, + HYPRE_Int j ); +void hypre_BigSwapb2i_flt (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapb2i_dbl (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapb2i_long_dbl (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapbi_flt (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapbi_dbl (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapbi_long_dbl (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapLoc_flt (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapLoc_dbl (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_BigSwapLoc_long_dbl (HYPRE_BigInt *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_dense_topo_sort_flt (const hypre_float *L, HYPRE_Int *ordering, HYPRE_Int n, + HYPRE_Int is_col_major); +void hypre_dense_topo_sort_dbl (const hypre_double *L, HYPRE_Int *ordering, HYPRE_Int n, + HYPRE_Int is_col_major); +void hypre_dense_topo_sort_long_dbl (const hypre_long_double *L, HYPRE_Int *ordering, HYPRE_Int n, + HYPRE_Int is_col_major); +void hypre_qsort0_flt ( HYPRE_Int *v, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort0_dbl ( HYPRE_Int *v, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort0_long_dbl ( HYPRE_Int *v, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort1_flt ( HYPRE_Int *v, hypre_float *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort1_dbl ( HYPRE_Int *v, hypre_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort1_long_dbl ( HYPRE_Int *v, hypre_long_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_flt ( HYPRE_Int *v, hypre_float *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_dbl ( HYPRE_Int *v, hypre_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_long_dbl ( HYPRE_Int *v, hypre_long_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_abs_flt ( HYPRE_Int *v, hypre_float *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_abs_dbl ( HYPRE_Int *v, hypre_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2_abs_long_dbl ( HYPRE_Int *v, hypre_long_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2i_flt ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2i_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort2i_long_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3_flt ( hypre_float *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3_dbl ( hypre_double *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3_long_dbl ( hypre_long_double *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3_abs_flt ( hypre_float *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, + HYPRE_Int right ); +void hypre_qsort3_abs_dbl ( hypre_double *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, + HYPRE_Int right ); +void hypre_qsort3_abs_long_dbl ( hypre_long_double *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, + HYPRE_Int right ); +void hypre_qsort3i_flt ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3i_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3i_long_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3ir_flt ( HYPRE_Int *v, hypre_float *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3ir_dbl ( HYPRE_Int *v, hypre_double *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort3ir_long_dbl ( HYPRE_Int *v, hypre_long_double *w, HYPRE_Int *z, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort_abs_flt ( hypre_float *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort_abs_dbl ( hypre_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_qsort_abs_long_dbl ( hypre_long_double *w, HYPRE_Int left, HYPRE_Int right ); +void hypre_swap_flt ( HYPRE_Int *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_dbl ( HYPRE_Int *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_long_dbl ( HYPRE_Int *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2_flt ( HYPRE_Int *v, hypre_float *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2_dbl ( HYPRE_Int *v, hypre_double *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2_long_dbl ( HYPRE_Int *v, hypre_long_double *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2i_flt ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2i_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap2i_long_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3_d_flt ( hypre_float *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3_d_dbl ( hypre_double *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3_d_long_dbl ( hypre_long_double *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3_d_perm_flt (HYPRE_Int *v, hypre_float *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3_d_perm_dbl (HYPRE_Int *v, hypre_double *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3_d_perm_long_dbl (HYPRE_Int *v, hypre_long_double *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3i_flt ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3i_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap3i_long_dbl ( HYPRE_Int *v, HYPRE_Int *w, HYPRE_Int *z, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_c_flt ( hypre_float *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_c_dbl ( hypre_double *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_c_long_dbl ( hypre_long_double *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_d_flt ( hypre_float *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_d_dbl ( hypre_double *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_swap_d_long_dbl ( hypre_long_double *v, HYPRE_Int i, HYPRE_Int j ); +void hypre_topo_sort_flt (const HYPRE_Int *row_ptr, const HYPRE_Int *col_inds, const hypre_float *data, + HYPRE_Int *ordering, HYPRE_Int n); +void hypre_topo_sort_dbl (const HYPRE_Int *row_ptr, const HYPRE_Int *col_inds, const hypre_double *data, + HYPRE_Int *ordering, HYPRE_Int n); +void hypre_topo_sort_long_dbl (const HYPRE_Int *row_ptr, const HYPRE_Int *col_inds, const hypre_long_double *data, + HYPRE_Int *ordering, HYPRE_Int n); +HYPRE_Int hypre_DoubleQuickSplit_flt ( hypre_float *values, HYPRE_Int *indices, HYPRE_Int list_length, + HYPRE_Int NumberKept ); +HYPRE_Int hypre_DoubleQuickSplit_dbl ( hypre_double *values, HYPRE_Int *indices, HYPRE_Int list_length, + HYPRE_Int NumberKept ); +HYPRE_Int hypre_DoubleQuickSplit_long_dbl ( hypre_long_double *values, HYPRE_Int *indices, HYPRE_Int list_length, + HYPRE_Int NumberKept ); +/* HYPRE_CUDA_GLOBAL_flt */ hypre_float hypre_Rand_flt ( void ); +/* HYPRE_CUDA_GLOBAL_dbl */ hypre_double hypre_Rand_dbl ( void ); +/* HYPRE_CUDA_GLOBAL_long_dbl */ hypre_long_double hypre_Rand_long_dbl ( void ); +/* HYPRE_CUDA_GLOBAL_flt */ HYPRE_Int hypre_RandI_flt ( void ); +/* HYPRE_CUDA_GLOBAL_dbl */ HYPRE_Int hypre_RandI_dbl ( void ); +/* HYPRE_CUDA_GLOBAL_long_dbl */ HYPRE_Int hypre_RandI_long_dbl ( void ); +/* HYPRE_CUDA_GLOBAL_flt */ void hypre_SeedRand_flt ( HYPRE_Int seed ); +/* HYPRE_CUDA_GLOBAL_dbl */ void hypre_SeedRand_dbl ( HYPRE_Int seed ); +/* HYPRE_CUDA_GLOBAL_long_dbl */ void hypre_SeedRand_long_dbl ( HYPRE_Int seed ); +HYPRE_Int HYPRE_Initialize_flt(void); +HYPRE_Int HYPRE_Initialize_dbl(void); +HYPRE_Int HYPRE_Initialize_long_dbl(void); +HYPRE_Int HYPRE_Initialized_flt(void); +HYPRE_Int HYPRE_Initialized_dbl(void); +HYPRE_Int HYPRE_Initialized_long_dbl(void); +HYPRE_Int HYPRE_Finalize_flt(void); +HYPRE_Int HYPRE_Finalize_dbl(void); +HYPRE_Int HYPRE_Finalize_long_dbl(void); +HYPRE_Int HYPRE_Finalized_flt(void); +HYPRE_Int HYPRE_Finalized_dbl(void); +HYPRE_Int HYPRE_Finalized_long_dbl(void); +HYPRE_Int hypre_Finalized_flt ( void ); +HYPRE_Int hypre_Finalized_dbl ( void ); +HYPRE_Int hypre_Finalized_long_dbl ( void ); +HYPRE_Int hypre_Initialized_flt ( void ); +HYPRE_Int hypre_Initialized_dbl ( void ); +HYPRE_Int hypre_Initialized_long_dbl ( void ); +HYPRE_Int hypre_SetFinalized_flt ( void ); +HYPRE_Int hypre_SetFinalized_dbl ( void ); +HYPRE_Int hypre_SetFinalized_long_dbl ( void ); +HYPRE_Int hypre_SetInitialized_flt ( void ); +HYPRE_Int hypre_SetInitialized_dbl ( void ); +HYPRE_Int hypre_SetInitialized_long_dbl ( void ); +void hypre_GetSimpleThreadPartition_flt ( HYPRE_Int *begin, HYPRE_Int *end, HYPRE_Int n ); +void hypre_GetSimpleThreadPartition_dbl ( HYPRE_Int *begin, HYPRE_Int *end, HYPRE_Int n ); +void hypre_GetSimpleThreadPartition_long_dbl ( HYPRE_Int *begin, HYPRE_Int *end, HYPRE_Int n ); +hypre_double time_getCPUSeconds_flt ( void ); +hypre_double time_getCPUSeconds_dbl ( void ); +hypre_double time_getCPUSeconds_long_dbl ( void ); +hypre_double time_getWallclockSeconds_flt ( void ); +hypre_double time_getWallclockSeconds_dbl ( void ); +hypre_double time_getWallclockSeconds_long_dbl ( void ); + +#if defined (HYPRE_TIMING) +/* timing.c */ +HYPRE_Int hypre_InitializeTiming_flt( const char *name ); +HYPRE_Int hypre_InitializeTiming_dbl( const char *name ); +HYPRE_Int hypre_InitializeTiming_long_dbl( const char *name ); +HYPRE_Int hypre_FinalizeTiming_flt( HYPRE_Int time_index ); +HYPRE_Int hypre_FinalizeTiming_dbl( HYPRE_Int time_index ); +HYPRE_Int hypre_FinalizeTiming_long_dbl( HYPRE_Int time_index ); +HYPRE_Int hypre_FinalizeAllTimings_flt( void ); +HYPRE_Int hypre_FinalizeAllTimings_dbl( void ); +HYPRE_Int hypre_FinalizeAllTimings_long_dbl( void ); +HYPRE_Int hypre_IncFLOPCount_flt( HYPRE_BigInt inc ); +HYPRE_Int hypre_IncFLOPCount_dbl( HYPRE_BigInt inc ); +HYPRE_Int hypre_IncFLOPCount_long_dbl( HYPRE_BigInt inc ); +HYPRE_Int hypre_BeginTiming_flt( HYPRE_Int time_index ); +HYPRE_Int hypre_BeginTiming_dbl( HYPRE_Int time_index ); +HYPRE_Int hypre_BeginTiming_long_dbl( HYPRE_Int time_index ); +HYPRE_Int hypre_EndTiming_flt( HYPRE_Int time_index ); +HYPRE_Int hypre_EndTiming_dbl( HYPRE_Int time_index ); +HYPRE_Int hypre_EndTiming_long_dbl( HYPRE_Int time_index ); +HYPRE_Int hypre_ClearTiming_flt( void ); +HYPRE_Int hypre_ClearTiming_dbl( void ); +HYPRE_Int hypre_ClearTiming_long_dbl( void ); +HYPRE_Int hypre_PrintTiming_flt( const char *heading, MPI_Comm comm ); +HYPRE_Int hypre_PrintTiming_dbl( const char *heading, MPI_Comm comm ); +HYPRE_Int hypre_PrintTiming_long_dbl( const char *heading, MPI_Comm comm ); +HYPRE_Int hypre_GetTiming_flt( const char *heading, hypre_double *wall_time_ptr, MPI_Comm comm ); +HYPRE_Int hypre_GetTiming_dbl( const char *heading, hypre_double *wall_time_ptr, MPI_Comm comm ); +HYPRE_Int hypre_GetTiming_long_dbl( const char *heading, hypre_double *wall_time_ptr, MPI_Comm comm ); +HYPRE_Int hypre_multmod_flt (HYPRE_Int a, HYPRE_Int b, HYPRE_Int mod); +HYPRE_Int hypre_multmod_dbl (HYPRE_Int a, HYPRE_Int b, HYPRE_Int mod); +HYPRE_Int hypre_multmod_long_dbl (HYPRE_Int a, HYPRE_Int b, HYPRE_Int mod); +void hypre_partition1D_flt (HYPRE_Int n, HYPRE_Int p, HYPRE_Int j, HYPRE_Int *s, HYPRE_Int *e); +void hypre_partition1D_dbl (HYPRE_Int n, HYPRE_Int p, HYPRE_Int j, HYPRE_Int *s, HYPRE_Int *e); +void hypre_partition1D_long_dbl (HYPRE_Int n, HYPRE_Int p, HYPRE_Int j, HYPRE_Int *s, HYPRE_Int *e); +char *hypre_strcpy_flt (char *destination, const char *source); +char *hypre_strcpy_dbl (char *destination, const char *source); +char *hypre_strcpy_long_dbl (char *destination, const char *source); +#endif + +#endif + +#endif diff --git a/src/utilities/mpistubs.c b/src/utilities/mpistubs.c index 988081923e..3500e7c832 100644 --- a/src/utilities/mpistubs.c +++ b/src/utilities/mpistubs.c @@ -50,13 +50,13 @@ hypre_MPI_Abort( hypre_MPI_Comm comm, return (0); } -HYPRE_Real +hypre_double hypre_MPI_Wtime( void ) { return (0.0); } -HYPRE_Real +hypre_double hypre_MPI_Wtick( void ) { return (0.0); @@ -779,16 +779,16 @@ hypre_MPI_Abort( hypre_MPI_Comm comm, return (HYPRE_Int) MPI_Abort(comm, (hypre_int)errorcode); } -HYPRE_Real +hypre_double hypre_MPI_Wtime( void ) { - return (HYPRE_Real)MPI_Wtime(); + return MPI_Wtime(); } -HYPRE_Real +hypre_double hypre_MPI_Wtick( void ) { - return (HYPRE_Real)MPI_Wtick(); + return MPI_Wtick(); } HYPRE_Int diff --git a/src/utilities/mpistubs.h b/src/utilities/mpistubs.h index 50cf780ef4..e9cec547a3 100644 --- a/src/utilities/mpistubs.h +++ b/src/utilities/mpistubs.h @@ -255,8 +255,8 @@ typedef MPI_User_function hypre_MPI_User_function; HYPRE_Int hypre_MPI_Init( hypre_int *argc, char ***argv ); HYPRE_Int hypre_MPI_Finalize( void ); HYPRE_Int hypre_MPI_Abort( hypre_MPI_Comm comm, HYPRE_Int errorcode ); -HYPRE_Real hypre_MPI_Wtime( void ); -HYPRE_Real hypre_MPI_Wtick( void ); +hypre_double hypre_MPI_Wtime( void ); +hypre_double hypre_MPI_Wtick( void ); HYPRE_Int hypre_MPI_Barrier( hypre_MPI_Comm comm ); HYPRE_Int hypre_MPI_Comm_create( hypre_MPI_Comm comm, hypre_MPI_Group group, hypre_MPI_Comm *newcomm ); diff --git a/src/utilities/multiprecision.h b/src/utilities/multiprecision.h new file mode 100644 index 0000000000..ba5bff2212 --- /dev/null +++ b/src/utilities/multiprecision.h @@ -0,0 +1,159 @@ +/****************************************************************************** + * Copyright 1998-2019 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) + ******************************************************************************/ + +/****************************************************************************** + * + * Header file for multiprecision utilities + * + *****************************************************************************/ + +#ifndef MULTIPRECISION_UTILITIES_HEADER +#define MULTIPRECISION_UTILITIES_HEADER + +#define CONCAT2_(a, b) a ## _ ## b +#define CONCAT_(a, b) CONCAT2_(a, b) + +/* multiprecision build types */ +#define FLT_SUFFIX flt +#define DBL_SUFFIX dbl +#define LDBL_SUFFIX long_dbl + +/*-------------------------------------------------------------------------- +* For Multi-precision build. Only set when hypre +* is built with mixed-precision +*---------------------------------------------------------------------------*/ +#if defined(HYPRE_MIXED_PRECISION) +/* matrix/ solver precision options */ +typedef enum +{ + HYPRE_REAL_SINGLE, + HYPRE_REAL_DOUBLE, + HYPRE_REAL_LONGDOUBLE +} HYPRE_Precision; +/*-------------------------------------------------------------------------- +* Reset build types for Multi-precision build +*---------------------------------------------------------------------------*/ +#if defined(MP_BUILD_SINGLE) +#define HYPRE_OBJECT_PRECISION HYPRE_REAL_SINGLE +#define BUILD_MP_FUNC 1 +#undef HYPRE_LONG_DOUBLE +#ifndef HYPRE_SINGLE +#define HYPRE_SINGLE 1 +#endif +#elif defined(MP_BUILD_LONGDOUBLE) +#define HYPRE_OBJECT_PRECISION HYPRE_REAL_LONGDOUBLE +#define BUILD_MP_FUNC 1 +#undef HYPRE_SINGLE +#ifndef HYPRE_LONG_DOUBLE +#define HYPRE_LONG_DOUBLE 1 +#endif +#elif defined(MP_BUILD_DOUBLE) +#define HYPRE_OBJECT_PRECISION HYPRE_REAL_DOUBLE +#define BUILD_MP_FUNC 1 +#undef HYPRE_SINGLE +#undef HYPRE_LONG_DOUBLE +/* allow definition of global variables when building in DP +* to avoid multiple definition errors +*/ +#define DEFINE_GLOBAL_VARIABLE 1 +#else +#ifdef BUILD_MP_FUNC +#undef BUILD_MP_FUNC +#endif +#define BUILD_NON_MP_FUNC 1 +#endif +/*-------------------------------------------------------------------------- + * HYPRE multiprecision extensions + *--------------------------------------------------------------------------*/ +/* Macro to generate typed functions */ +#if defined(BUILD_MP_FUNC) +#if defined(HYPRE_SINGLE) +//#define FUNC_SUFFIX flt +#define HYPRE_MULTIPRECISION_FUNC(a) CONCAT_(a, FLT_SUFFIX) +#elif defined(HYPRE_LONG_DOUBLE) +//#define FUNC_SUFFIX long_dbl +#define HYPRE_MULTIPRECISION_FUNC(a) CONCAT_(a, LDBL_SUFFIX) +#else /* HYPRE_DOUBLE */ +//#define FUNC_SUFFIX dbl +#define HYPRE_MULTIPRECISION_FUNC(a) CONCAT_(a, DBL_SUFFIX) +#endif +#else +#define HYPRE_MULTIPRECISION_FUNC(a) a +#endif + +/* Apply suffix to define typed function */ +//#define HYPRE_MULTIPRECISION_FUNC(a) CONCAT_(a, FUNC_SUFFIX) + +#else +/* define no-op for typed function macro */ +//#define HYPRE_MULTIPRECISION_FUNC(a) a +#define BUILD_MP_FUNC 1 +#define BUILD_NON_MP_FUNC 1 +#define DEFINE_GLOBAL_VARIABLE 1 +#endif + +/* Helper macros to generate multiprecision function declarations */ +#define DECLARE_MP_FUNC(rtype,func,fargs...)\ + rtype CONCAT_(func,FLT_SUFFIX) (fargs);\ + rtype CONCAT_(func,DBL_SUFFIX) (fargs);\ + rtype CONCAT_(func,LDBL_SUFFIX) (fargs);\ + +#define DECLARE_DP_FUNC(rtype,func,fargs...)\ + rtype CONCAT_(func,DBL_SUFFIX) (fargs);\ + +#define HYPRE_DP_FUNC(a) CONCAT_(a, DBL_SUFFIX) + +#define DECLARE_SP_FUNC(rtype,func,fargs...)\ + rtype CONCAT_(func,FLT_SUFFIX) (fargs);\ + +#define HYPRE_SP_FUNC(a) CONCAT_(a, FLT_SUFFIX) + +/* code for scalar or void return type */ +#define MP_METHOD_FUNC(precision,func,args...)\ + switch(precision) {\ + case HYPRE_REAL_SINGLE: \ + return CONCAT_(func,FLT_SUFFIX) (args);\ + case HYPRE_REAL_DOUBLE: \ + return CONCAT_(func,DBL_SUFFIX) (args);\ + case HYPRE_REAL_LONGDOUBLE: \ + return CONCAT_(func,LDBL_SUFFIX) (args);\ + default:\ + hypre_printf("Unknown solver precision" );\ + exit(0);\ + }\ + +/* code for pointer return type */ +#define MP_METHOD_FUNCPTR(rval,precision,func,args...)\ + switch(precision) {\ + case HYPRE_REAL_SINGLE: \ + rval = CONCAT_(func,FLT_SUFFIX) (args);\ + case HYPRE_REAL_DOUBLE: \ + rval = CONCAT_(func,DBL_SUFFIX) (args);\ + case HYPRE_REAL_LONGDOUBLE: \ + rval = CONCAT_(func,LDBL_SUFFIX) (args);\ + default:\ + hypre_printf("Unknown solver precision" );\ + exit(0);\ + }\ + +/* code for pointer return type */ +#define MP_METHOD_FUNCPTR_NP(rval,func,args...)\ + switch(precision) {\ + case HYPRE_REAL_SINGLE: \ + rval = CONCAT_(func,FLT_SUFFIX) (args);\ + case HYPRE_REAL_DOUBLE: \ + rval = CONCAT_(func,DBL_SUFFIX) (args);\ + case HYPRE_REAL_LONGDOUBLE: \ + rval = CONCAT_(func,LDBL_SUFFIX) (args);\ + default:\ + hypre_printf("Unknown solver precision" );\ + exit(0);\ + }\ + + +#endif + diff --git a/src/utilities/printf.c b/src/utilities/printf.c index 7e0531d98f..15d6be3681 100644 --- a/src/utilities/printf.c +++ b/src/utilities/printf.c @@ -10,7 +10,8 @@ #include #define hypre_printf_buffer_len 4096 -char hypre_printf_buffer[hypre_printf_buffer_len]; +/* OK to make hypre_printf_buffer a static variable since it is only declared and accessed here */ +static char hypre_printf_buffer[hypre_printf_buffer_len]; // #ifdef HYPRE_BIGINT diff --git a/src/utilities/protos.h b/src/utilities/protos.h index d43f6ab7ec..2c9479329a 100644 --- a/src/utilities/protos.h +++ b/src/utilities/protos.h @@ -388,7 +388,7 @@ HYPRE_Int hypre_SetSpGemmAlgorithm( HYPRE_Int value ); HYPRE_Int hypre_SetSpGemmBinned( HYPRE_Int value ); HYPRE_Int hypre_SetSpGemmRownnzEstimateMethod( HYPRE_Int value ); HYPRE_Int hypre_SetSpGemmRownnzEstimateNSamples( HYPRE_Int value ); -HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor( HYPRE_Real value ); +HYPRE_Int hypre_SetSpGemmRownnzEstimateMultFactor( hypre_float value ); HYPRE_Int hypre_SetSpGemmHashType( char value ); HYPRE_Int hypre_SetUseGpuRand( HYPRE_Int use_gpurand ); HYPRE_Int hypre_SetGaussSeidelMethod( HYPRE_Int gs_method ); diff --git a/src/utilities/state.c b/src/utilities/state.c index ed3caca057..1aeacfeb80 100644 --- a/src/utilities/state.c +++ b/src/utilities/state.c @@ -8,7 +8,10 @@ #include "_hypre_utilities.h" /* Global variable: library state (initialized, finalized, or none) */ +/* guard definition of global variables to avoid linker errors for multiprecision build */ +#if defined (DEFINE_GLOBAL_VARIABLE) hypre_State hypre__global_state = HYPRE_STATE_NONE; +#endif /*-------------------------------------------------------------------------- * HYPRE_Initialized diff --git a/src/utilities/timer.c b/src/utilities/timer.c index 3bdfda5cf4..8e69ff4ef1 100644 --- a/src/utilities/timer.c +++ b/src/utilities/timer.c @@ -21,38 +21,40 @@ #include #endif -HYPRE_Real time_getWallclockSeconds(void) +hypre_double time_getWallclockSeconds(void) { #ifndef HYPRE_SEQUENTIAL return (hypre_MPI_Wtime()); #else #ifdef WIN32 clock_t cl = clock(); - return (((HYPRE_Real) cl) / ((HYPRE_Real) CLOCKS_PER_SEC)); + return (((hypre_double) cl) / ((hypre_double) CLOCKS_PER_SEC)); #else struct tms usage; hypre_longint wallclock = times(&usage); - return (((HYPRE_Real) wallclock) / ((HYPRE_Real) sysconf(_SC_CLK_TCK))); + return (((hypre_double) wallclock) / ((hypre_double) sysconf(_SC_CLK_TCK))); #endif #endif } -HYPRE_Real time_getCPUSeconds(void) +hypre_double time_getCPUSeconds(void) { #ifndef TIMER_NO_SYS clock_t cpuclock = clock(); - return (((HYPRE_Real) (cpuclock)) / ((HYPRE_Real) CLOCKS_PER_SEC)); + return (((hypre_double) (cpuclock)) / ((hypre_double) CLOCKS_PER_SEC)); #else return (0.0); #endif } - -HYPRE_Real time_get_wallclock_seconds_(void) +/* These functions are not called anywhere else. Should we be ending with underscore?? - DOK */ +/* +hypre_double time_get_wallclock_seconds_(void) { return (time_getWallclockSeconds()); } -HYPRE_Real time_get_cpu_seconds_(void) +hypre_double time_get_cpu_seconds_(void) { return (time_getCPUSeconds()); } +*/ diff --git a/src/utilities/timing.c b/src/utilities/timing.c index af64058c0a..9df0789286 100644 --- a/src/utilities/timing.c +++ b/src/utilities/timing.c @@ -28,6 +28,11 @@ hypre_TimingCPUCount -= time_getCPUSeconds() hypre_TimingWallCount += time_getWallclockSeconds();\ hypre_TimingCPUCount += time_getCPUSeconds() +/* Global variable for error handling */ +/* guard definition of global variables to avoid linker errors for multiprecision build */ +#if defined (DEFINE_GLOBAL_VARIABLE) +hypre_TimingType *hypre_global_timing = NULL; +#endif #define hypre_global_timing_ref(index,field) hypre_global_timing->field /*-------------------------------------------------------------------------- @@ -39,9 +44,9 @@ hypre_InitializeTiming( const char *name ) { HYPRE_Int time_index; - HYPRE_Real *old_wall_time; - HYPRE_Real *old_cpu_time; - HYPRE_Real *old_flops; + hypre_double *old_wall_time; + hypre_double *old_cpu_time; + hypre_double *old_flops; char **old_name; HYPRE_Int *old_state; HYPRE_Int *old_num_regs; @@ -105,11 +110,11 @@ hypre_InitializeTiming( const char *name ) old_num_regs = (hypre_global_timing_ref(threadid, num_regs)); (hypre_global_timing_ref(threadid, wall_time)) = - hypre_CTAlloc(HYPRE_Real, (time_index + 1), HYPRE_MEMORY_HOST); + hypre_CTAlloc(hypre_double, (time_index + 1), HYPRE_MEMORY_HOST); (hypre_global_timing_ref(threadid, cpu_time)) = - hypre_CTAlloc(HYPRE_Real, (time_index + 1), HYPRE_MEMORY_HOST); + hypre_CTAlloc(hypre_double, (time_index + 1), HYPRE_MEMORY_HOST); (hypre_global_timing_ref(threadid, flops)) = - hypre_CTAlloc(HYPRE_Real, (time_index + 1), HYPRE_MEMORY_HOST); + hypre_CTAlloc(hypre_double, (time_index + 1), HYPRE_MEMORY_HOST); (hypre_global_timing_ref(threadid, name)) = hypre_CTAlloc(char *, (time_index + 1), HYPRE_MEMORY_HOST); (hypre_global_timing_ref(threadid, state)) = @@ -228,7 +233,7 @@ hypre_IncFLOPCount( HYPRE_BigInt inc ) return ierr; } - hypre_TimingFLOPCount += (HYPRE_Real) (inc); + hypre_TimingFLOPCount += (hypre_double) (inc); return ierr; } @@ -330,12 +335,12 @@ hypre_PrintTiming( const char *heading, { HYPRE_Int ierr = 0; - HYPRE_Real local_wall_time; - HYPRE_Real local_cpu_time; - HYPRE_Real wall_time; - HYPRE_Real cpu_time; - HYPRE_Real wall_mflops; - HYPRE_Real cpu_mflops; + hypre_double local_wall_time; + hypre_double local_cpu_time; + hypre_double wall_time; + hypre_double cpu_time; + hypre_double wall_mflops; + hypre_double cpu_mflops; HYPRE_Int i; HYPRE_Int myrank; @@ -406,13 +411,13 @@ hypre_PrintTiming( const char *heading, HYPRE_Int hypre_GetTiming( const char *heading, - HYPRE_Real *wall_time_ptr, + hypre_double *wall_time_ptr, MPI_Comm comm ) { HYPRE_Int ierr = 0; - HYPRE_Real local_wall_time; - HYPRE_Real wall_time; + hypre_double local_wall_time; + hypre_double wall_time; HYPRE_Int i; HYPRE_Int myrank; diff --git a/src/utilities/timing.h b/src/utilities/timing.h index f09fb1db4c..fada750e04 100644 --- a/src/utilities/timing.h +++ b/src/utilities/timing.h @@ -27,10 +27,11 @@ extern "C" { *--------------------------------------------------------------------------*/ /* timer.c */ -HYPRE_Real time_getWallclockSeconds( void ); -HYPRE_Real time_getCPUSeconds( void ); -HYPRE_Real time_get_wallclock_seconds_( void ); -HYPRE_Real time_get_cpu_seconds_( void ); +hypre_double time_getWallclockSeconds( void ); +hypre_double time_getCPUSeconds( void ); +/* These functions are not called anywhere else. Should we be ending with underscore?? - DOK */ +//hypre_double time_get_wallclock_seconds_( void ); +//hypre_double time_get_cpu_seconds_( void ); /*-------------------------------------------------------------------------- * With timing off @@ -60,9 +61,9 @@ HYPRE_Real time_get_cpu_seconds_( void ); typedef struct { - HYPRE_Real *wall_time; - HYPRE_Real *cpu_time; - HYPRE_Real *flops; + hypre_double *wall_time; + hypre_double *cpu_time; + hypre_double *flops; char **name; HYPRE_Int *state; /* boolean flag to allow for recursive timing */ HYPRE_Int *num_regs; /* count of how many times a name is registered */ @@ -70,17 +71,17 @@ typedef struct HYPRE_Int num_names; HYPRE_Int size; - HYPRE_Real wall_count; - HYPRE_Real CPU_count; - HYPRE_Real FLOP_count; + hypre_double wall_count; + hypre_double CPU_count; + hypre_double FLOP_count; } hypre_TimingType; -#ifdef HYPRE_TIMING_GLOBALS -hypre_TimingType *hypre_global_timing = NULL; -#else +//#ifdef HYPRE_TIMING_GLOBALS +//hypre_TimingType *hypre_global_timing = NULL; +//#else extern hypre_TimingType *hypre_global_timing; -#endif +//#endif /*------------------------------------------------------- * Accessor functions @@ -109,7 +110,7 @@ HYPRE_Int hypre_BeginTiming( HYPRE_Int time_index ); HYPRE_Int hypre_EndTiming( HYPRE_Int time_index ); HYPRE_Int hypre_ClearTiming( void ); HYPRE_Int hypre_PrintTiming( const char *heading, MPI_Comm comm ); -HYPRE_Int hypre_GetTiming( const char *heading, HYPRE_Real *wall_time_ptr, MPI_Comm comm ); +HYPRE_Int hypre_GetTiming( const char *heading, hypre_double *wall_time_ptr, MPI_Comm comm ); #endif diff --git a/src/utilities/utilities_func_header b/src/utilities/utilities_func_header new file mode 100755 index 0000000000..1646b6d87c --- /dev/null +++ b/src/utilities/utilities_func_header @@ -0,0 +1,84 @@ +#!/bin/sh +# 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) + +# generate header file for transforming multiprecision function names + +MUP_HEADER=utilities_mup_func.h + +cat > $MUP_HEADER <<@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'utilities_func_header' to generate) ***/ +@ +# Generate copyright header +../config/writeHeader.sh $MUP_HEADER + +cat >> $MUP_HEADER <<@ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef UTILITIES_MUP_FUNC_HEADER +#define UTILITIES_MUP_FUNC_HEADER + +#include "multiprecision.h" + +@ + +# Special functions guarded by preprocessor directives +# timing.h +cat <ftiming +hypre_BeginTiming +hypre_ClearTiming +hypre_EndTiming +hypre_FinalizeTiming +hypre_FinalizeAllTimings +hypre_GetTiming +hypre_IncFLOPCount +hypre_InitializeTiming +hypre_PrintTiming +EOF +# complex +cat <fcomplex +hypre_cabs +hypre_cimag +hypre_conj +hypre_creal +hypre_csqrt +EOF + +FIN=utilities_functions.saved +cat>> $MUP_HEADER <<@ +$( +cat "$FIN" | while read -r func_name +do +# dressed-up function +p_string="$(echo "#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name )")" + +# define pre-processor directives +# timing.h +p_timing_string="#if defined (HYPRE_TIMING) +#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name ) +#endif" + +# complex.h +p_cmplx_string="#if defined (HYPRE_COMPLEX) +#define $func_name HYPRE_MULTIPRECISION_FUNC ( $func_name ) +#endif" + +# print dressed-up function with guards if needed +awk -v pat="$func_name" -v pat1="$p_timing_string" -v pat2="$p_cmplx_string" -v pat_def="$p_string" \ +'fname != FILENAME { fname = FILENAME; idx++ } \ +$0~pat && idx == 1 {print pat1; found=1; exit}; \ +$0~pat && idx == 2 {print pat2; found=1; exit}; \ +END{ if(!found) print pat_def}' "ftiming" "fcomplex" + +done +) + +#endif +@ + +rm -rf ftiming fcomplex diff --git a/src/utilities/utilities_functions.saved b/src/utilities/utilities_functions.saved new file mode 100644 index 0000000000..5621658ebf --- /dev/null +++ b/src/utilities/utilities_functions.saved @@ -0,0 +1,316 @@ +hypre_create_elt +hypre_dispose_elt +hypre_enter_on_lists +hypre_remove_point +HYPRE_AssumedPartitionCheck +hypre_BigBinarySearch +hypre_BigLowerBound +hypre_BinarySearch +hypre_BinarySearch2 +hypre_LowerBound +hypre_cabs +hypre_cimag +hypre_conj +hypre_creal +hypre_csqrt +hypre_bind_device +hypre_bind_device_id +HYPRE_CheckError +HYPRE_ClearAllErrors +HYPRE_ClearError +HYPRE_DescribeError +hypre_error_code_restore +hypre_error_code_save +hypre_error_handler +HYPRE_GetError +HYPRE_GetErrorArg +HYPRE_GetErrorMessages +HYPRE_GetGlobalError +HYPRE_PrintErrorMessages +HYPRE_SetPrintErrorMode +hypre_CreateBinaryTree +hypre_DataExchangeList +hypre_DestroyBinaryTree +hypre_checkerror +hypre_clearallerrors +hypre_clearerror +hypre_geterror +hypre_geterrorarg +hypre_finalize +hypre_init +hypre_initialize +hypre_setexecutionpolicy +hypre_setmemorylocation +hypre_setspgemmusevendor +utilities_FortranMatrixAdd +utilities_FortranMatrixAllocateData +utilities_FortranMatrixClear +utilities_FortranMatrixClearL +utilities_FortranMatrixCopy +utilities_FortranMatrixCreate +utilities_FortranMatrixDestroy +utilities_FortranMatrixDMultiply +utilities_FortranMatrixFNorm +utilities_FortranMatrixGetDiagonal +utilities_FortranMatrixGlobalHeight +utilities_FortranMatrixHeight +utilities_FortranMatrixIndexCopy +utilities_FortranMatrixMaxValue +utilities_FortranMatrixMultiply +utilities_FortranMatrixMultiplyD +utilities_FortranMatrixPrint +utilities_FortranMatrixSelectBlock +utilities_FortranMatrixSetDiagonal +utilities_FortranMatrixSetToIdentity +utilities_FortranMatrixSymmetrize +utilities_FortranMatrixTransposeSquare +utilities_FortranMatrixUpperInv +utilities_FortranMatrixValue +utilities_FortranMatrixValuePtr +utilities_FortranMatrixValues +utilities_FortranMatrixWidth +utilities_FortranMatrixWrap +HYPRE_DeviceInitialize +HYPRE_Finalize +hypre_GetDevice +hypre_GetDeviceCount +hypre_GetDeviceLastError +hypre_GetDeviceMaxShmemSize +HYPRE_GetExecutionPolicy +HYPRE_GetExecutionPolicyName +HYPRE_GetMemoryLocation +hypre_handle +hypre_HandleCreate +hypre_HandleDestroy +HYPRE_Initialize +HYPRE_MemoryPrintUsage +HYPRE_PrintDeviceInfo +hypre_SetDevice +HYPRE_SetExecutionPolicy +HYPRE_SetMemoryLocation +hypre_GetGpuAwareMPI +hypre_SetGaussSeidelMethod +hypre_SetGpuAwareMPI +hypre_SetLogLevel +hypre_SetSpGemmAlgorithm +hypre_SetSpGemmBinned +hypre_SetSpGemmRownnzEstimateMethod +hypre_SetSpGemmRownnzEstimateMultFactor +hypre_SetSpGemmRownnzEstimateNSamples +hypre_SetSpGemmUseVendor +hypre_SetSpMVUseVendor +hypre_SetSpTransUseVendor +hypre_SetUseGpuRand +hypre_SetUserDeviceMalloc +hypre_SetUserDeviceMfree +hypre_UnorderedBigIntMapCreate +hypre_UnorderedBigIntMapDestroy +hypre_UnorderedBigIntSetCopyToArray +hypre_UnorderedBigIntSetCreate +hypre_UnorderedBigIntSetDestroy +hypre_UnorderedIntMapCreate +hypre_UnorderedIntMapDestroy +hypre_UnorderedIntSetCopyToArray +hypre_UnorderedIntSetCreate +hypre_UnorderedIntSetDestroy +HYPRE_SetGpuAwareMPI +HYPRE_SetLogLevel +HYPRE_SetSpGemmUseVendor +HYPRE_SetSpMVUseVendor +HYPRE_SetSpTransUseVendor +HYPRE_SetUseGpuRand +HYPRE_Version +HYPRE_VersionNumber +hypre_IntArrayArrayCreate +hypre_IntArrayArrayDestroy +hypre_IntArrayArrayInitialize +hypre_IntArrayArrayInitializeIn +hypre_IntArrayArrayMigrate +hypre_IntArrayCloneDeep +hypre_IntArrayCloneDeep_v2 +hypre_IntArrayCopy +hypre_IntArrayCount +hypre_IntArrayCountHost +hypre_IntArrayCreate +hypre_IntArrayDestroy +hypre_IntArrayInitialize +hypre_IntArrayInitialize_v2 +hypre_IntArrayInverseMapping +hypre_IntArrayInverseMappingHost +hypre_IntArrayMigrate +hypre_IntArrayNegate +hypre_IntArrayPrint +hypre_IntArrayRead +hypre_IntArraySeparateByValue +hypre_IntArraySetConstantValues +hypre_IntArraySetConstantValuesHost +hypre_IntArraySetInterleavedValues +hypre_IntArraySetInterleavedValuesHost +hypre_Log2 +hypre_MatrixStatsArrayCreate +hypre_MatrixStatsArrayDestroy +hypre_MatrixStatsArrayPrint +hypre_MatrixStatsCreate +hypre_MatrixStatsDestroy +hypre_CAlloc +hypre_CheckMemoryLocation +_hypre_Free +hypre_Free +hypre_GetExecPolicy1 +hypre_GetExecPolicy2 +hypre_GetMemoryLocationName +hypre_GetPointerLocation +hypre_HostMemoryGetUsage +_hypre_MAlloc +hypre_MAlloc +hypre_Memcpy +hypre_MemoryPrintUsage +hypre_MemPrefetch +hypre_Memset +hypre_ReAlloc +hypre_ReAlloc_v2 +hypre_SetCubMemPoolSize +HYPRE_SetGPUMemoryPoolSize +hypre_big_merge_sort +hypre_big_sort_and_create_inverse_map +hypre_IntArrayMergeOrdered +hypre_merge_sort +hypre_sort_and_create_inverse_map +hypre_union2 +hypre_mm_is_valid +hypre_mm_read_banner +hypre_mm_read_mtx_crd_size +hypre_MPI_Abort +hypre_MPI_Address +hypre_MPI_Allgather +hypre_MPI_Allgatherv +hypre_MPI_Allreduce +hypre_MPI_Alltoall +hypre_MPI_Barrier +hypre_MPI_Bcast +hypre_MPI_Comm_create +hypre_MPI_Comm_dup +hypre_MPI_Comm_f2c +hypre_MPI_Comm_free +hypre_MPI_Comm_group +hypre_MPI_Comm_rank +hypre_MPI_Comm_size +hypre_MPI_Comm_split +hypre_MPI_Finalize +hypre_MPI_Gather +hypre_MPI_Gatherv +hypre_MPI_Get_count +hypre_MPI_Group_free +hypre_MPI_Group_incl +hypre_MPI_Init +hypre_MPI_Iprobe +hypre_MPI_Irecv +hypre_MPI_Irsend +hypre_MPI_Isend +hypre_MPI_Op_create +hypre_MPI_Op_free +hypre_MPI_Probe +hypre_MPI_Recv +hypre_MPI_Recv_init +hypre_MPI_Reduce +hypre_MPI_Request_free +hypre_MPI_Scan +hypre_MPI_Scatter +hypre_MPI_Scatterv +hypre_MPI_Send +hypre_MPI_Send_init +hypre_MPI_Startall +hypre_MPI_Test +hypre_MPI_Testall +hypre_MPI_Type_commit +hypre_MPI_Type_contiguous +hypre_MPI_Type_free +hypre_MPI_Type_hvector +hypre_MPI_Type_struct +hypre_MPI_Type_vector +hypre_MPI_Wait +hypre_MPI_Waitall +hypre_MPI_Waitany +hypre_MPI_Wtick +hypre_MPI_Wtime +hypre_GpuProfilingPopRange +hypre_GpuProfilingPushRange +hypre_GpuProfilingPushRangeColor +hypre_prefix_sum +hypre_prefix_sum_multiple +hypre_prefix_sum_pair +hypre_prefix_sum_triple +free_format +hypre_fprintf +hypre_fscanf +hypre_ndigits +hypre_ParPrintf +hypre_printf +hypre_scanf +hypre_snprintf +hypre_sprintf +hypre_sscanf +new_format +hypre_BigQsort0 +hypre_BigQsort1 +hypre_BigQsort2i +hypre_BigQsort4_abs +hypre_BigQsortb2i +hypre_BigQsortbi +hypre_BigQsortbLoc +hypre_BigSwap +hypre_BigSwap2 +hypre_BigSwap2i +hypre_BigSwap4_d +hypre_BigSwapb2i +hypre_BigSwapbi +hypre_BigSwapLoc +hypre_dense_topo_sort +hypre_qsort0 +hypre_qsort1 +hypre_qsort2 +hypre_qsort2_abs +hypre_qsort2i +hypre_qsort3 +hypre_qsort3_abs +hypre_qsort3i +hypre_qsort3ir +hypre_qsort_abs +hypre_swap +hypre_swap2 +hypre_swap2i +hypre_swap3_d +hypre_swap3_d_perm +hypre_swap3i +hypre_swap_c +hypre_swap_d +hypre_topo_sort +hypre_DoubleQuickSplit +hypre_Rand +hypre_RandI +hypre_SeedRand +hypre_Finalized +HYPRE_Finalized +hypre_Initialized +HYPRE_Initialized +hypre_SetFinalized +hypre_SetInitialized +hypre_IntSequence +hypre_GetSimpleThreadPartition +time_getCPUSeconds +time_getWallclockSeconds +hypre_BeginTiming +hypre_ClearTiming +hypre_EndTiming +hypre_FinalizeAllTimings +hypre_FinalizeTiming +hypre_GetTiming +hypre_IncFLOPCount +hypre_InitializeTiming +hypre_PrintTiming +hypre_CheckDirExists +hypre_CreateDir +hypre_CreateNextDirOfSequence +hypre_multmod +hypre_partition1D +hypre_strcpy diff --git a/src/utilities/utilities_mup_func.h b/src/utilities/utilities_mup_func.h new file mode 100644 index 0000000000..686f5de61e --- /dev/null +++ b/src/utilities/utilities_mup_func.h @@ -0,0 +1,364 @@ +/*** DO NOT EDIT THIS FILE DIRECTLY (use 'utilities_func_header' 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) + ******************************************************************************/ + +/****************************************************************************** + * Header file for transforming multiprecision functions names + *****************************************************************************/ + +#ifndef UTILITIES_MUP_FUNC_HEADER +#define UTILITIES_MUP_FUNC_HEADER + +#include "multiprecision.h" + +#define hypre_create_elt HYPRE_MULTIPRECISION_FUNC ( hypre_create_elt ) +#define hypre_dispose_elt HYPRE_MULTIPRECISION_FUNC ( hypre_dispose_elt ) +#define hypre_enter_on_lists HYPRE_MULTIPRECISION_FUNC ( hypre_enter_on_lists ) +#define hypre_remove_point HYPRE_MULTIPRECISION_FUNC ( hypre_remove_point ) +#define HYPRE_AssumedPartitionCheck HYPRE_MULTIPRECISION_FUNC ( HYPRE_AssumedPartitionCheck ) +#define hypre_BigBinarySearch HYPRE_MULTIPRECISION_FUNC ( hypre_BigBinarySearch ) +#define hypre_BigLowerBound HYPRE_MULTIPRECISION_FUNC ( hypre_BigLowerBound ) +#define hypre_BinarySearch HYPRE_MULTIPRECISION_FUNC ( hypre_BinarySearch ) +#define hypre_BinarySearch2 HYPRE_MULTIPRECISION_FUNC ( hypre_BinarySearch2 ) +#define hypre_LowerBound HYPRE_MULTIPRECISION_FUNC ( hypre_LowerBound ) +#if defined (HYPRE_COMPLEX) +#define hypre_cabs HYPRE_MULTIPRECISION_FUNC ( hypre_cabs ) +#endif +#if defined (HYPRE_COMPLEX) +#define hypre_cimag HYPRE_MULTIPRECISION_FUNC ( hypre_cimag ) +#endif +#if defined (HYPRE_COMPLEX) +#define hypre_conj HYPRE_MULTIPRECISION_FUNC ( hypre_conj ) +#endif +#if defined (HYPRE_COMPLEX) +#define hypre_creal HYPRE_MULTIPRECISION_FUNC ( hypre_creal ) +#endif +#if defined (HYPRE_COMPLEX) +#define hypre_csqrt HYPRE_MULTIPRECISION_FUNC ( hypre_csqrt ) +#endif +#define hypre_bind_device HYPRE_MULTIPRECISION_FUNC ( hypre_bind_device ) +#define hypre_bind_device_id HYPRE_MULTIPRECISION_FUNC ( hypre_bind_device_id ) +#define HYPRE_CheckError HYPRE_MULTIPRECISION_FUNC ( HYPRE_CheckError ) +#define HYPRE_ClearAllErrors HYPRE_MULTIPRECISION_FUNC ( HYPRE_ClearAllErrors ) +#define HYPRE_ClearError HYPRE_MULTIPRECISION_FUNC ( HYPRE_ClearError ) +#define HYPRE_DescribeError HYPRE_MULTIPRECISION_FUNC ( HYPRE_DescribeError ) +#define hypre_error_code_restore HYPRE_MULTIPRECISION_FUNC ( hypre_error_code_restore ) +#define hypre_error_code_save HYPRE_MULTIPRECISION_FUNC ( hypre_error_code_save ) +#define hypre_error_handler HYPRE_MULTIPRECISION_FUNC ( hypre_error_handler ) +#define HYPRE_GetError HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetError ) +#define HYPRE_GetErrorArg HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetErrorArg ) +#define HYPRE_GetErrorMessages HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetErrorMessages ) +#define HYPRE_GetGlobalError HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetGlobalError ) +#define HYPRE_PrintErrorMessages HYPRE_MULTIPRECISION_FUNC ( HYPRE_PrintErrorMessages ) +#define HYPRE_SetPrintErrorMode HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetPrintErrorMode ) +#define hypre_CreateBinaryTree HYPRE_MULTIPRECISION_FUNC ( hypre_CreateBinaryTree ) +#define hypre_DataExchangeList HYPRE_MULTIPRECISION_FUNC ( hypre_DataExchangeList ) +#define hypre_DestroyBinaryTree HYPRE_MULTIPRECISION_FUNC ( hypre_DestroyBinaryTree ) +#define hypre_checkerror HYPRE_MULTIPRECISION_FUNC ( hypre_checkerror ) +#define hypre_clearallerrors HYPRE_MULTIPRECISION_FUNC ( hypre_clearallerrors ) +#define hypre_clearerror HYPRE_MULTIPRECISION_FUNC ( hypre_clearerror ) +#define hypre_geterror HYPRE_MULTIPRECISION_FUNC ( hypre_geterror ) +#define hypre_geterrorarg HYPRE_MULTIPRECISION_FUNC ( hypre_geterrorarg ) +#define hypre_finalize HYPRE_MULTIPRECISION_FUNC ( hypre_finalize ) +#define hypre_init HYPRE_MULTIPRECISION_FUNC ( hypre_init ) +#define hypre_initialize HYPRE_MULTIPRECISION_FUNC ( hypre_initialize ) +#define hypre_setexecutionpolicy HYPRE_MULTIPRECISION_FUNC ( hypre_setexecutionpolicy ) +#define hypre_setmemorylocation HYPRE_MULTIPRECISION_FUNC ( hypre_setmemorylocation ) +#define hypre_setspgemmusevendor HYPRE_MULTIPRECISION_FUNC ( hypre_setspgemmusevendor ) +#define utilities_FortranMatrixAdd HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixAdd ) +#define utilities_FortranMatrixAllocateData HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixAllocateData ) +#define utilities_FortranMatrixClear HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixClear ) +#define utilities_FortranMatrixClearL HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixClearL ) +#define utilities_FortranMatrixCopy HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixCopy ) +#define utilities_FortranMatrixCreate HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixCreate ) +#define utilities_FortranMatrixDestroy HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixDestroy ) +#define utilities_FortranMatrixDMultiply HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixDMultiply ) +#define utilities_FortranMatrixFNorm HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixFNorm ) +#define utilities_FortranMatrixGetDiagonal HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixGetDiagonal ) +#define utilities_FortranMatrixGlobalHeight HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixGlobalHeight ) +#define utilities_FortranMatrixHeight HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixHeight ) +#define utilities_FortranMatrixIndexCopy HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixIndexCopy ) +#define utilities_FortranMatrixMaxValue HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixMaxValue ) +#define utilities_FortranMatrixMultiply HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixMultiply ) +#define utilities_FortranMatrixMultiplyD HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixMultiplyD ) +#define utilities_FortranMatrixPrint HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixPrint ) +#define utilities_FortranMatrixSelectBlock HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixSelectBlock ) +#define utilities_FortranMatrixSetDiagonal HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixSetDiagonal ) +#define utilities_FortranMatrixSetToIdentity HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixSetToIdentity ) +#define utilities_FortranMatrixSymmetrize HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixSymmetrize ) +#define utilities_FortranMatrixTransposeSquare HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixTransposeSquare ) +#define utilities_FortranMatrixUpperInv HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixUpperInv ) +#define utilities_FortranMatrixValue HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixValue ) +#define utilities_FortranMatrixValuePtr HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixValuePtr ) +#define utilities_FortranMatrixValues HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixValues ) +#define utilities_FortranMatrixWidth HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixWidth ) +#define utilities_FortranMatrixWrap HYPRE_MULTIPRECISION_FUNC ( utilities_FortranMatrixWrap ) +#define HYPRE_DeviceInitialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_DeviceInitialize ) +#define HYPRE_Finalize HYPRE_MULTIPRECISION_FUNC ( HYPRE_Finalize ) +#define hypre_GetDevice HYPRE_MULTIPRECISION_FUNC ( hypre_GetDevice ) +#define hypre_GetDeviceCount HYPRE_MULTIPRECISION_FUNC ( hypre_GetDeviceCount ) +#define hypre_GetDeviceLastError HYPRE_MULTIPRECISION_FUNC ( hypre_GetDeviceLastError ) +#define hypre_GetDeviceMaxShmemSize HYPRE_MULTIPRECISION_FUNC ( hypre_GetDeviceMaxShmemSize ) +#define HYPRE_GetExecutionPolicy HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetExecutionPolicy ) +#define HYPRE_GetExecutionPolicyName HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetExecutionPolicyName ) +#define HYPRE_GetMemoryLocation HYPRE_MULTIPRECISION_FUNC ( HYPRE_GetMemoryLocation ) +#define hypre_handle HYPRE_MULTIPRECISION_FUNC ( hypre_handle ) +#define hypre_HandleCreate HYPRE_MULTIPRECISION_FUNC ( hypre_HandleCreate ) +#define hypre_HandleDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_HandleDestroy ) +#define HYPRE_Initialize HYPRE_MULTIPRECISION_FUNC ( HYPRE_Initialize ) +#define HYPRE_MemoryPrintUsage HYPRE_MULTIPRECISION_FUNC ( HYPRE_MemoryPrintUsage ) +#define HYPRE_PrintDeviceInfo HYPRE_MULTIPRECISION_FUNC ( HYPRE_PrintDeviceInfo ) +#define hypre_SetDevice HYPRE_MULTIPRECISION_FUNC ( hypre_SetDevice ) +#define HYPRE_SetExecutionPolicy HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetExecutionPolicy ) +#define HYPRE_SetMemoryLocation HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetMemoryLocation ) +#define hypre_GetGpuAwareMPI HYPRE_MULTIPRECISION_FUNC ( hypre_GetGpuAwareMPI ) +#define hypre_SetGaussSeidelMethod HYPRE_MULTIPRECISION_FUNC ( hypre_SetGaussSeidelMethod ) +#define hypre_SetGpuAwareMPI HYPRE_MULTIPRECISION_FUNC ( hypre_SetGpuAwareMPI ) +#define hypre_SetLogLevel HYPRE_MULTIPRECISION_FUNC ( hypre_SetLogLevel ) +#define hypre_SetSpGemmAlgorithm HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpGemmAlgorithm ) +#define hypre_SetSpGemmBinned HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpGemmBinned ) +#define hypre_SetSpGemmRownnzEstimateMethod HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpGemmRownnzEstimateMethod ) +#define hypre_SetSpGemmRownnzEstimateMultFactor HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpGemmRownnzEstimateMultFactor ) +#define hypre_SetSpGemmRownnzEstimateNSamples HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpGemmRownnzEstimateNSamples ) +#define hypre_SetSpGemmUseVendor HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpGemmUseVendor ) +#define hypre_SetSpMVUseVendor HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpMVUseVendor ) +#define hypre_SetSpTransUseVendor HYPRE_MULTIPRECISION_FUNC ( hypre_SetSpTransUseVendor ) +#define hypre_SetUseGpuRand HYPRE_MULTIPRECISION_FUNC ( hypre_SetUseGpuRand ) +#define hypre_SetUserDeviceMalloc HYPRE_MULTIPRECISION_FUNC ( hypre_SetUserDeviceMalloc ) +#define hypre_SetUserDeviceMfree HYPRE_MULTIPRECISION_FUNC ( hypre_SetUserDeviceMfree ) +#define hypre_UnorderedBigIntMapCreate HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedBigIntMapCreate ) +#define hypre_UnorderedBigIntMapDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedBigIntMapDestroy ) +#define hypre_UnorderedBigIntSetCopyToArray HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedBigIntSetCopyToArray ) +#define hypre_UnorderedBigIntSetCreate HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedBigIntSetCreate ) +#define hypre_UnorderedBigIntSetDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedBigIntSetDestroy ) +#define hypre_UnorderedIntMapCreate HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedIntMapCreate ) +#define hypre_UnorderedIntMapDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedIntMapDestroy ) +#define hypre_UnorderedIntSetCopyToArray HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedIntSetCopyToArray ) +#define hypre_UnorderedIntSetCreate HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedIntSetCreate ) +#define hypre_UnorderedIntSetDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_UnorderedIntSetDestroy ) +#define HYPRE_SetGpuAwareMPI HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetGpuAwareMPI ) +#define HYPRE_SetLogLevel HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetLogLevel ) +#define HYPRE_SetSpGemmUseVendor HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetSpGemmUseVendor ) +#define HYPRE_SetSpMVUseVendor HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetSpMVUseVendor ) +#define HYPRE_SetSpTransUseVendor HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetSpTransUseVendor ) +#define HYPRE_SetUseGpuRand HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetUseGpuRand ) +#define HYPRE_Version HYPRE_MULTIPRECISION_FUNC ( HYPRE_Version ) +#define HYPRE_VersionNumber HYPRE_MULTIPRECISION_FUNC ( HYPRE_VersionNumber ) +#define hypre_IntArrayArrayCreate HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayArrayCreate ) +#define hypre_IntArrayArrayDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayArrayDestroy ) +#define hypre_IntArrayArrayInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayArrayInitialize ) +#define hypre_IntArrayArrayInitializeIn HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayArrayInitializeIn ) +#define hypre_IntArrayArrayMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayArrayMigrate ) +#define hypre_IntArrayCloneDeep HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayCloneDeep ) +#define hypre_IntArrayCloneDeep_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayCloneDeep_v2 ) +#define hypre_IntArrayCopy HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayCopy ) +#define hypre_IntArrayCount HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayCount ) +#define hypre_IntArrayCountHost HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayCountHost ) +#define hypre_IntArrayCreate HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayCreate ) +#define hypre_IntArrayDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayDestroy ) +#define hypre_IntArrayInitialize HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayInitialize ) +#define hypre_IntArrayInitialize_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayInitialize_v2 ) +#define hypre_IntArrayInverseMapping HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayInverseMapping ) +#define hypre_IntArrayInverseMappingHost HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayInverseMappingHost ) +#define hypre_IntArrayMigrate HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayMigrate ) +#define hypre_IntArrayNegate HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayNegate ) +#define hypre_IntArrayPrint HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayPrint ) +#define hypre_IntArrayRead HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayRead ) +#define hypre_IntArraySeparateByValue HYPRE_MULTIPRECISION_FUNC ( hypre_IntArraySeparateByValue ) +#define hypre_IntArraySetConstantValues HYPRE_MULTIPRECISION_FUNC ( hypre_IntArraySetConstantValues ) +#define hypre_IntArraySetConstantValuesHost HYPRE_MULTIPRECISION_FUNC ( hypre_IntArraySetConstantValuesHost ) +#define hypre_IntArraySetInterleavedValues HYPRE_MULTIPRECISION_FUNC ( hypre_IntArraySetInterleavedValues ) +#define hypre_IntArraySetInterleavedValuesHost HYPRE_MULTIPRECISION_FUNC ( hypre_IntArraySetInterleavedValuesHost ) +#define hypre_Log2 HYPRE_MULTIPRECISION_FUNC ( hypre_Log2 ) +#define hypre_MatrixStatsArrayCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MatrixStatsArrayCreate ) +#define hypre_MatrixStatsArrayDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MatrixStatsArrayDestroy ) +#define hypre_MatrixStatsArrayPrint HYPRE_MULTIPRECISION_FUNC ( hypre_MatrixStatsArrayPrint ) +#define hypre_MatrixStatsCreate HYPRE_MULTIPRECISION_FUNC ( hypre_MatrixStatsCreate ) +#define hypre_MatrixStatsDestroy HYPRE_MULTIPRECISION_FUNC ( hypre_MatrixStatsDestroy ) +#define hypre_CAlloc HYPRE_MULTIPRECISION_FUNC ( hypre_CAlloc ) +#define hypre_CheckMemoryLocation HYPRE_MULTIPRECISION_FUNC ( hypre_CheckMemoryLocation ) +#define _hypre_Free HYPRE_MULTIPRECISION_FUNC ( _hypre_Free ) +#define hypre_Free HYPRE_MULTIPRECISION_FUNC ( hypre_Free ) +#define hypre_GetExecPolicy1 HYPRE_MULTIPRECISION_FUNC ( hypre_GetExecPolicy1 ) +#define hypre_GetExecPolicy2 HYPRE_MULTIPRECISION_FUNC ( hypre_GetExecPolicy2 ) +#define hypre_GetMemoryLocationName HYPRE_MULTIPRECISION_FUNC ( hypre_GetMemoryLocationName ) +#define hypre_GetPointerLocation HYPRE_MULTIPRECISION_FUNC ( hypre_GetPointerLocation ) +#define hypre_HostMemoryGetUsage HYPRE_MULTIPRECISION_FUNC ( hypre_HostMemoryGetUsage ) +#define _hypre_MAlloc HYPRE_MULTIPRECISION_FUNC ( _hypre_MAlloc ) +#define hypre_MAlloc HYPRE_MULTIPRECISION_FUNC ( hypre_MAlloc ) +#define hypre_Memcpy HYPRE_MULTIPRECISION_FUNC ( hypre_Memcpy ) +#define hypre_MemoryPrintUsage HYPRE_MULTIPRECISION_FUNC ( hypre_MemoryPrintUsage ) +#define hypre_MemPrefetch HYPRE_MULTIPRECISION_FUNC ( hypre_MemPrefetch ) +#define hypre_Memset HYPRE_MULTIPRECISION_FUNC ( hypre_Memset ) +#define hypre_ReAlloc HYPRE_MULTIPRECISION_FUNC ( hypre_ReAlloc ) +#define hypre_ReAlloc_v2 HYPRE_MULTIPRECISION_FUNC ( hypre_ReAlloc_v2 ) +#define hypre_SetCubMemPoolSize HYPRE_MULTIPRECISION_FUNC ( hypre_SetCubMemPoolSize ) +#define HYPRE_SetGPUMemoryPoolSize HYPRE_MULTIPRECISION_FUNC ( HYPRE_SetGPUMemoryPoolSize ) +#define hypre_big_merge_sort HYPRE_MULTIPRECISION_FUNC ( hypre_big_merge_sort ) +#define hypre_big_sort_and_create_inverse_map HYPRE_MULTIPRECISION_FUNC ( hypre_big_sort_and_create_inverse_map ) +#define hypre_IntArrayMergeOrdered HYPRE_MULTIPRECISION_FUNC ( hypre_IntArrayMergeOrdered ) +#define hypre_merge_sort HYPRE_MULTIPRECISION_FUNC ( hypre_merge_sort ) +#define hypre_sort_and_create_inverse_map HYPRE_MULTIPRECISION_FUNC ( hypre_sort_and_create_inverse_map ) +#define hypre_union2 HYPRE_MULTIPRECISION_FUNC ( hypre_union2 ) +#define hypre_mm_is_valid HYPRE_MULTIPRECISION_FUNC ( hypre_mm_is_valid ) +#define hypre_mm_read_banner HYPRE_MULTIPRECISION_FUNC ( hypre_mm_read_banner ) +#define hypre_mm_read_mtx_crd_size HYPRE_MULTIPRECISION_FUNC ( hypre_mm_read_mtx_crd_size ) +#define hypre_MPI_Abort HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Abort ) +#define hypre_MPI_Address HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Address ) +#define hypre_MPI_Allgather HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Allgather ) +#define hypre_MPI_Allgatherv HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Allgatherv ) +#define hypre_MPI_Allreduce HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Allreduce ) +#define hypre_MPI_Alltoall HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Alltoall ) +#define hypre_MPI_Barrier HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Barrier ) +#define hypre_MPI_Bcast HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Bcast ) +#define hypre_MPI_Comm_create HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_create ) +#define hypre_MPI_Comm_dup HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_dup ) +#define hypre_MPI_Comm_f2c HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_f2c ) +#define hypre_MPI_Comm_free HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_free ) +#define hypre_MPI_Comm_group HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_group ) +#define hypre_MPI_Comm_rank HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_rank ) +#define hypre_MPI_Comm_size HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_size ) +#define hypre_MPI_Comm_split HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Comm_split ) +#define hypre_MPI_Finalize HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Finalize ) +#define hypre_MPI_Gather HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Gather ) +#define hypre_MPI_Gatherv HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Gatherv ) +#define hypre_MPI_Get_count HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Get_count ) +#define hypre_MPI_Group_free HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Group_free ) +#define hypre_MPI_Group_incl HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Group_incl ) +#define hypre_MPI_Init HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Init ) +#define hypre_MPI_Iprobe HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Iprobe ) +#define hypre_MPI_Irecv HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Irecv ) +#define hypre_MPI_Irsend HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Irsend ) +#define hypre_MPI_Isend HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Isend ) +#define hypre_MPI_Op_create HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Op_create ) +#define hypre_MPI_Op_free HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Op_free ) +#define hypre_MPI_Probe HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Probe ) +#define hypre_MPI_Recv HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Recv ) +#define hypre_MPI_Recv_init HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Recv_init ) +#define hypre_MPI_Reduce HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Reduce ) +#define hypre_MPI_Request_free HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Request_free ) +#define hypre_MPI_Scan HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Scan ) +#define hypre_MPI_Scatter HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Scatter ) +#define hypre_MPI_Scatterv HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Scatterv ) +#define hypre_MPI_Send HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Send ) +#define hypre_MPI_Send_init HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Send_init ) +#define hypre_MPI_Startall HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Startall ) +#define hypre_MPI_Test HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Test ) +#define hypre_MPI_Testall HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Testall ) +#define hypre_MPI_Type_commit HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Type_commit ) +#define hypre_MPI_Type_contiguous HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Type_contiguous ) +#define hypre_MPI_Type_free HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Type_free ) +#define hypre_MPI_Type_hvector HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Type_hvector ) +#define hypre_MPI_Type_struct HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Type_struct ) +#define hypre_MPI_Type_vector HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Type_vector ) +#define hypre_MPI_Wait HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Wait ) +#define hypre_MPI_Waitall HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Waitall ) +#define hypre_MPI_Waitany HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Waitany ) +#define hypre_MPI_Wtick HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Wtick ) +#define hypre_MPI_Wtime HYPRE_MULTIPRECISION_FUNC ( hypre_MPI_Wtime ) +#define hypre_GpuProfilingPopRange HYPRE_MULTIPRECISION_FUNC ( hypre_GpuProfilingPopRange ) +#define hypre_GpuProfilingPushRange HYPRE_MULTIPRECISION_FUNC ( hypre_GpuProfilingPushRange ) +#define hypre_GpuProfilingPushRangeColor HYPRE_MULTIPRECISION_FUNC ( hypre_GpuProfilingPushRangeColor ) +#define hypre_prefix_sum HYPRE_MULTIPRECISION_FUNC ( hypre_prefix_sum ) +#define hypre_prefix_sum_multiple HYPRE_MULTIPRECISION_FUNC ( hypre_prefix_sum_multiple ) +#define hypre_prefix_sum_pair HYPRE_MULTIPRECISION_FUNC ( hypre_prefix_sum_pair ) +#define hypre_prefix_sum_triple HYPRE_MULTIPRECISION_FUNC ( hypre_prefix_sum_triple ) +#define free_format HYPRE_MULTIPRECISION_FUNC ( free_format ) +#define hypre_fprintf HYPRE_MULTIPRECISION_FUNC ( hypre_fprintf ) +#define hypre_fscanf HYPRE_MULTIPRECISION_FUNC ( hypre_fscanf ) +#define hypre_ndigits HYPRE_MULTIPRECISION_FUNC ( hypre_ndigits ) +#define hypre_ParPrintf HYPRE_MULTIPRECISION_FUNC ( hypre_ParPrintf ) +#define hypre_printf HYPRE_MULTIPRECISION_FUNC ( hypre_printf ) +#define hypre_scanf HYPRE_MULTIPRECISION_FUNC ( hypre_scanf ) +#define hypre_snprintf HYPRE_MULTIPRECISION_FUNC ( hypre_snprintf ) +#define hypre_sprintf HYPRE_MULTIPRECISION_FUNC ( hypre_sprintf ) +#define hypre_sscanf HYPRE_MULTIPRECISION_FUNC ( hypre_sscanf ) +#define new_format HYPRE_MULTIPRECISION_FUNC ( new_format ) +#define hypre_BigQsort0 HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsort0 ) +#define hypre_BigQsort1 HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsort1 ) +#define hypre_BigQsort2i HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsort2i ) +#define hypre_BigQsort4_abs HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsort4_abs ) +#define hypre_BigQsortb2i HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsortb2i ) +#define hypre_BigQsortbi HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsortbi ) +#define hypre_BigQsortbLoc HYPRE_MULTIPRECISION_FUNC ( hypre_BigQsortbLoc ) +#define hypre_BigSwap HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwap ) +#define hypre_BigSwap2 HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwap2 ) +#define hypre_BigSwap2i HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwap2i ) +#define hypre_BigSwap4_d HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwap4_d ) +#define hypre_BigSwapb2i HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwapb2i ) +#define hypre_BigSwapbi HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwapbi ) +#define hypre_BigSwapLoc HYPRE_MULTIPRECISION_FUNC ( hypre_BigSwapLoc ) +#define hypre_dense_topo_sort HYPRE_MULTIPRECISION_FUNC ( hypre_dense_topo_sort ) +#define hypre_qsort0 HYPRE_MULTIPRECISION_FUNC ( hypre_qsort0 ) +#define hypre_qsort1 HYPRE_MULTIPRECISION_FUNC ( hypre_qsort1 ) +#define hypre_qsort2 HYPRE_MULTIPRECISION_FUNC ( hypre_qsort2 ) +#define hypre_qsort2_abs HYPRE_MULTIPRECISION_FUNC ( hypre_qsort2_abs ) +#define hypre_qsort2i HYPRE_MULTIPRECISION_FUNC ( hypre_qsort2i ) +#define hypre_qsort3 HYPRE_MULTIPRECISION_FUNC ( hypre_qsort3 ) +#define hypre_qsort3_abs HYPRE_MULTIPRECISION_FUNC ( hypre_qsort3_abs ) +#define hypre_qsort3i HYPRE_MULTIPRECISION_FUNC ( hypre_qsort3i ) +#define hypre_qsort3ir HYPRE_MULTIPRECISION_FUNC ( hypre_qsort3ir ) +#define hypre_qsort_abs HYPRE_MULTIPRECISION_FUNC ( hypre_qsort_abs ) +#define hypre_swap HYPRE_MULTIPRECISION_FUNC ( hypre_swap ) +#define hypre_swap2 HYPRE_MULTIPRECISION_FUNC ( hypre_swap2 ) +#define hypre_swap2i HYPRE_MULTIPRECISION_FUNC ( hypre_swap2i ) +#define hypre_swap3_d HYPRE_MULTIPRECISION_FUNC ( hypre_swap3_d ) +#define hypre_swap3_d_perm HYPRE_MULTIPRECISION_FUNC ( hypre_swap3_d_perm ) +#define hypre_swap3i HYPRE_MULTIPRECISION_FUNC ( hypre_swap3i ) +#define hypre_swap_c HYPRE_MULTIPRECISION_FUNC ( hypre_swap_c ) +#define hypre_swap_d HYPRE_MULTIPRECISION_FUNC ( hypre_swap_d ) +#define hypre_topo_sort HYPRE_MULTIPRECISION_FUNC ( hypre_topo_sort ) +#define hypre_DoubleQuickSplit HYPRE_MULTIPRECISION_FUNC ( hypre_DoubleQuickSplit ) +#define hypre_Rand HYPRE_MULTIPRECISION_FUNC ( hypre_Rand ) +#define hypre_RandI HYPRE_MULTIPRECISION_FUNC ( hypre_RandI ) +#define hypre_SeedRand HYPRE_MULTIPRECISION_FUNC ( hypre_SeedRand ) +#define hypre_Finalized HYPRE_MULTIPRECISION_FUNC ( hypre_Finalized ) +#define HYPRE_Finalized HYPRE_MULTIPRECISION_FUNC ( HYPRE_Finalized ) +#define hypre_Initialized HYPRE_MULTIPRECISION_FUNC ( hypre_Initialized ) +#define HYPRE_Initialized HYPRE_MULTIPRECISION_FUNC ( HYPRE_Initialized ) +#define hypre_SetFinalized HYPRE_MULTIPRECISION_FUNC ( hypre_SetFinalized ) +#define hypre_SetInitialized HYPRE_MULTIPRECISION_FUNC ( hypre_SetInitialized ) +#define hypre_IntSequence HYPRE_MULTIPRECISION_FUNC ( hypre_IntSequence ) +#define hypre_GetSimpleThreadPartition HYPRE_MULTIPRECISION_FUNC ( hypre_GetSimpleThreadPartition ) +#define time_getCPUSeconds HYPRE_MULTIPRECISION_FUNC ( time_getCPUSeconds ) +#define time_getWallclockSeconds HYPRE_MULTIPRECISION_FUNC ( time_getWallclockSeconds ) +#if defined (HYPRE_TIMING) +#define hypre_BeginTiming HYPRE_MULTIPRECISION_FUNC ( hypre_BeginTiming ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_ClearTiming HYPRE_MULTIPRECISION_FUNC ( hypre_ClearTiming ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_EndTiming HYPRE_MULTIPRECISION_FUNC ( hypre_EndTiming ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_FinalizeAllTimings HYPRE_MULTIPRECISION_FUNC ( hypre_FinalizeAllTimings ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_FinalizeTiming HYPRE_MULTIPRECISION_FUNC ( hypre_FinalizeTiming ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_GetTiming HYPRE_MULTIPRECISION_FUNC ( hypre_GetTiming ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_IncFLOPCount HYPRE_MULTIPRECISION_FUNC ( hypre_IncFLOPCount ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_InitializeTiming HYPRE_MULTIPRECISION_FUNC ( hypre_InitializeTiming ) +#endif +#if defined (HYPRE_TIMING) +#define hypre_PrintTiming HYPRE_MULTIPRECISION_FUNC ( hypre_PrintTiming ) +#endif +#define hypre_CheckDirExists HYPRE_MULTIPRECISION_FUNC ( hypre_CheckDirExists ) +#define hypre_CreateDir HYPRE_MULTIPRECISION_FUNC ( hypre_CreateDir ) +#define hypre_CreateNextDirOfSequence HYPRE_MULTIPRECISION_FUNC ( hypre_CreateNextDirOfSequence ) +#define hypre_multmod HYPRE_MULTIPRECISION_FUNC ( hypre_multmod ) +#define hypre_partition1D HYPRE_MULTIPRECISION_FUNC ( hypre_partition1D ) +#define hypre_strcpy HYPRE_MULTIPRECISION_FUNC ( hypre_strcpy ) + +#endif