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

#ifndef HYPRE_UTILITIES_MUP_HEADER
#define HYPRE_UTILITIES_MUP_HEADER

#ifdef __cplusplus
extern "C" {
#endif

#if defined (HYPRE_MIXED_PRECISION)

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

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



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

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


HYPRE_Int
HYPRE_AssumedPartitionCheck_flt( void );
HYPRE_Int
HYPRE_AssumedPartitionCheck_dbl( void );
HYPRE_Int
HYPRE_AssumedPartitionCheck_long_dbl( void );
HYPRE_Int
HYPRE_AssumedPartitionCheck( void );

HYPRE_Int
HYPRE_CheckError_flt( HYPRE_Int hypre_ierr, HYPRE_Int hypre_error_code );
HYPRE_Int
HYPRE_CheckError_dbl( HYPRE_Int hypre_ierr, HYPRE_Int hypre_error_code );
HYPRE_Int
HYPRE_CheckError_long_dbl( HYPRE_Int hypre_ierr, HYPRE_Int hypre_error_code );
HYPRE_Int
HYPRE_CheckError( HYPRE_Int hypre_ierr, HYPRE_Int hypre_error_code );

HYPRE_Int
HYPRE_ClearAllErrors_flt( void );
HYPRE_Int
HYPRE_ClearAllErrors_dbl( void );
HYPRE_Int
HYPRE_ClearAllErrors_long_dbl( void );
HYPRE_Int
HYPRE_ClearAllErrors( void );

HYPRE_Int
HYPRE_ClearError_flt( HYPRE_Int hypre_error_code );
HYPRE_Int
HYPRE_ClearError_dbl( HYPRE_Int hypre_error_code );
HYPRE_Int
HYPRE_ClearError_long_dbl( HYPRE_Int hypre_error_code );
HYPRE_Int
HYPRE_ClearError( HYPRE_Int hypre_error_code );

HYPRE_Int
HYPRE_ClearErrorMessages_flt( void );
HYPRE_Int
HYPRE_ClearErrorMessages_dbl( void );
HYPRE_Int
HYPRE_ClearErrorMessages_long_dbl( void );
HYPRE_Int
HYPRE_ClearErrorMessages( void );

void
HYPRE_DescribeError_flt( HYPRE_Int hypre_ierr, char *descr );
void
HYPRE_DescribeError_dbl( HYPRE_Int hypre_ierr, char *descr );
void
HYPRE_DescribeError_long_dbl( HYPRE_Int hypre_ierr, char *descr );
void
HYPRE_DescribeError( HYPRE_Int hypre_ierr, char *descr );

HYPRE_Int
HYPRE_DeviceInitialize_flt( void );
HYPRE_Int
HYPRE_DeviceInitialize_dbl( void );
HYPRE_Int
HYPRE_DeviceInitialize_long_dbl( void );
HYPRE_Int
HYPRE_DeviceInitialize( void );

HYPRE_Int
HYPRE_Finalize_flt( void );
HYPRE_Int
HYPRE_Finalize_dbl( void );
HYPRE_Int
HYPRE_Finalize_long_dbl( void );
HYPRE_Int
HYPRE_Finalize( void );

HYPRE_Int
HYPRE_Finalized_flt( void );
HYPRE_Int
HYPRE_Finalized_dbl( void );
HYPRE_Int
HYPRE_Finalized_long_dbl( void );
HYPRE_Int
HYPRE_Finalized( void );

HYPRE_Int
HYPRE_GetError_flt( void );
HYPRE_Int
HYPRE_GetError_dbl( void );
HYPRE_Int
HYPRE_GetError_long_dbl( void );
HYPRE_Int
HYPRE_GetError( void );

HYPRE_Int
HYPRE_GetErrorArg_flt( void );
HYPRE_Int
HYPRE_GetErrorArg_dbl( void );
HYPRE_Int
HYPRE_GetErrorArg_long_dbl( void );
HYPRE_Int
HYPRE_GetErrorArg( void );

HYPRE_Int
HYPRE_GetErrorMessages_flt( char **buffer, HYPRE_Int *bufsz );
HYPRE_Int
HYPRE_GetErrorMessages_dbl( char **buffer, HYPRE_Int *bufsz );
HYPRE_Int
HYPRE_GetErrorMessages_long_dbl( char **buffer, HYPRE_Int *bufsz );
HYPRE_Int
HYPRE_GetErrorMessages( char **buffer, HYPRE_Int *bufsz );

HYPRE_Int
HYPRE_GetExecutionPolicy_flt( HYPRE_ExecutionPolicy *exec_policy );
HYPRE_Int
HYPRE_GetExecutionPolicy_dbl( HYPRE_ExecutionPolicy *exec_policy );
HYPRE_Int
HYPRE_GetExecutionPolicy_long_dbl( HYPRE_ExecutionPolicy *exec_policy );
HYPRE_Int
HYPRE_GetExecutionPolicy( HYPRE_ExecutionPolicy *exec_policy );

const char*
HYPRE_GetExecutionPolicyName_flt( HYPRE_ExecutionPolicy exec_policy );
const char*
HYPRE_GetExecutionPolicyName_dbl( HYPRE_ExecutionPolicy exec_policy );
const char*
HYPRE_GetExecutionPolicyName_long_dbl( HYPRE_ExecutionPolicy exec_policy );
const char*
HYPRE_GetExecutionPolicyName( HYPRE_ExecutionPolicy exec_policy );

HYPRE_Int
HYPRE_GetGlobalError_flt( MPI_Comm comm );
HYPRE_Int
HYPRE_GetGlobalError_dbl( MPI_Comm comm );
HYPRE_Int
HYPRE_GetGlobalError_long_dbl( MPI_Comm comm );
HYPRE_Int
HYPRE_GetGlobalError( MPI_Comm comm );

HYPRE_Int
HYPRE_GetMemoryLocation_flt( HYPRE_MemoryLocation *memory_location );
HYPRE_Int
HYPRE_GetMemoryLocation_dbl( HYPRE_MemoryLocation *memory_location );
HYPRE_Int
HYPRE_GetMemoryLocation_long_dbl( HYPRE_MemoryLocation *memory_location );
HYPRE_Int
HYPRE_GetMemoryLocation( HYPRE_MemoryLocation *memory_location );

HYPRE_Int
HYPRE_Initialize_flt( void );
HYPRE_Int
HYPRE_Initialize_dbl( void );
HYPRE_Int
HYPRE_Initialize_long_dbl( void );
HYPRE_Int
HYPRE_Initialize( void );

HYPRE_Int
HYPRE_Initialized_flt( void );
HYPRE_Int
HYPRE_Initialized_dbl( void );
HYPRE_Int
HYPRE_Initialized_long_dbl( void );
HYPRE_Int
HYPRE_Initialized( void );

HYPRE_Int
HYPRE_MemoryPrintUsage_flt( MPI_Comm comm, HYPRE_Int level, const char *function, HYPRE_Int line );
HYPRE_Int
HYPRE_MemoryPrintUsage_dbl( MPI_Comm comm, HYPRE_Int level, const char *function, HYPRE_Int line );
HYPRE_Int
HYPRE_MemoryPrintUsage_long_dbl( MPI_Comm comm, HYPRE_Int level, const char *function, HYPRE_Int line );
HYPRE_Int
HYPRE_MemoryPrintUsage( MPI_Comm comm, HYPRE_Int level, const char *function, HYPRE_Int line );

HYPRE_Int
HYPRE_PrintDeviceInfo_flt( void );
HYPRE_Int
HYPRE_PrintDeviceInfo_dbl( void );
HYPRE_Int
HYPRE_PrintDeviceInfo_long_dbl( void );
HYPRE_Int
HYPRE_PrintDeviceInfo( void );

HYPRE_Int
HYPRE_PrintErrorMessages_flt( MPI_Comm comm );
HYPRE_Int
HYPRE_PrintErrorMessages_dbl( MPI_Comm comm );
HYPRE_Int
HYPRE_PrintErrorMessages_long_dbl( MPI_Comm comm );
HYPRE_Int
HYPRE_PrintErrorMessages( MPI_Comm comm );

HYPRE_Int
HYPRE_SetExecutionPolicy_flt( HYPRE_ExecutionPolicy exec_policy );
HYPRE_Int
HYPRE_SetExecutionPolicy_dbl( HYPRE_ExecutionPolicy exec_policy );
HYPRE_Int
HYPRE_SetExecutionPolicy_long_dbl( HYPRE_ExecutionPolicy exec_policy );
HYPRE_Int
HYPRE_SetExecutionPolicy( HYPRE_ExecutionPolicy exec_policy );

HYPRE_Int
HYPRE_SetGpuAwareMPI_flt( HYPRE_Int use_gpu_aware_mpi );
HYPRE_Int
HYPRE_SetGpuAwareMPI_dbl( HYPRE_Int use_gpu_aware_mpi );
HYPRE_Int
HYPRE_SetGpuAwareMPI_long_dbl( HYPRE_Int use_gpu_aware_mpi );
HYPRE_Int
HYPRE_SetGpuAwareMPI( HYPRE_Int use_gpu_aware_mpi );

HYPRE_Int
HYPRE_SetLogLevel_flt( HYPRE_Int log_level );
HYPRE_Int
HYPRE_SetLogLevel_dbl( HYPRE_Int log_level );
HYPRE_Int
HYPRE_SetLogLevel_long_dbl( HYPRE_Int log_level );
HYPRE_Int
HYPRE_SetLogLevel( HYPRE_Int log_level );

HYPRE_Int
HYPRE_SetMemoryLocation_flt( HYPRE_MemoryLocation memory_location );
HYPRE_Int
HYPRE_SetMemoryLocation_dbl( HYPRE_MemoryLocation memory_location );
HYPRE_Int
HYPRE_SetMemoryLocation_long_dbl( HYPRE_MemoryLocation memory_location );
HYPRE_Int
HYPRE_SetMemoryLocation( HYPRE_MemoryLocation memory_location );

HYPRE_Int
HYPRE_SetPrintErrorMode_flt( HYPRE_Int mode );
HYPRE_Int
HYPRE_SetPrintErrorMode_dbl( HYPRE_Int mode );
HYPRE_Int
HYPRE_SetPrintErrorMode_long_dbl( HYPRE_Int mode );
HYPRE_Int
HYPRE_SetPrintErrorMode( HYPRE_Int mode );

HYPRE_Int
HYPRE_SetPrintErrorVerbosity_flt( HYPRE_Int code, HYPRE_Int verbosity );
HYPRE_Int
HYPRE_SetPrintErrorVerbosity_dbl( HYPRE_Int code, HYPRE_Int verbosity );
HYPRE_Int
HYPRE_SetPrintErrorVerbosity_long_dbl( HYPRE_Int code, HYPRE_Int verbosity );
HYPRE_Int
HYPRE_SetPrintErrorVerbosity( HYPRE_Int code, HYPRE_Int verbosity );

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_SetSpGemmUseVendor( 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_SetSpMVUseVendor( 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_SetSpTransUseVendor( HYPRE_Int use_vendor );

HYPRE_Int
HYPRE_SetUseGpuRand_flt( HYPRE_Int use_curand );
HYPRE_Int
HYPRE_SetUseGpuRand_dbl( HYPRE_Int use_curand );
HYPRE_Int
HYPRE_SetUseGpuRand_long_dbl( HYPRE_Int use_curand );
HYPRE_Int
HYPRE_SetUseGpuRand( HYPRE_Int use_curand );

HYPRE_Int
HYPRE_Version_flt( char **version_ptr );
HYPRE_Int
HYPRE_Version_dbl( char **version_ptr );
HYPRE_Int
HYPRE_Version_long_dbl( char **version_ptr );
HYPRE_Int
HYPRE_Version( char **version_ptr );

HYPRE_Int
HYPRE_VersionNumber_flt( HYPRE_Int *major_ptr, HYPRE_Int *minor_ptr, HYPRE_Int *patch_ptr, HYPRE_Int *single_ptr );
HYPRE_Int
HYPRE_VersionNumber_dbl( HYPRE_Int *major_ptr, HYPRE_Int *minor_ptr, HYPRE_Int *patch_ptr, HYPRE_Int *single_ptr );
HYPRE_Int
HYPRE_VersionNumber_long_dbl( HYPRE_Int *major_ptr, HYPRE_Int *minor_ptr, HYPRE_Int *patch_ptr, HYPRE_Int *single_ptr );
HYPRE_Int
HYPRE_VersionNumber( HYPRE_Int *major_ptr, HYPRE_Int *minor_ptr, HYPRE_Int *patch_ptr, HYPRE_Int *single_ptr );


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

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


HYPRE_Int
HYPRE_AssumedPartitionCheck_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_CheckError_pre( HYPRE_Precision precision, HYPRE_Int hypre_ierr, HYPRE_Int hypre_error_code );

HYPRE_Int
HYPRE_ClearAllErrors_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_ClearError_pre( HYPRE_Precision precision, HYPRE_Int hypre_error_code );

HYPRE_Int
HYPRE_ClearErrorMessages_pre( HYPRE_Precision precision );

void
HYPRE_DescribeError_pre( HYPRE_Precision precision, HYPRE_Int hypre_ierr, char *descr );

HYPRE_Int
HYPRE_DeviceInitialize_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_Finalize_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_Finalized_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_GetError_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_GetErrorArg_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_GetErrorMessages_pre( HYPRE_Precision precision, char **buffer, HYPRE_Int *bufsz );

HYPRE_Int
HYPRE_GetExecutionPolicy_pre( HYPRE_Precision precision, HYPRE_ExecutionPolicy *exec_policy );

const char*
HYPRE_GetExecutionPolicyName_pre( HYPRE_Precision precision, HYPRE_ExecutionPolicy exec_policy );

HYPRE_Int
HYPRE_GetGlobalError_pre( HYPRE_Precision precision, MPI_Comm comm );

HYPRE_Int
HYPRE_GetMemoryLocation_pre( HYPRE_Precision precision, HYPRE_MemoryLocation *memory_location );

HYPRE_Int
HYPRE_Initialize_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_Initialized_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_MemoryPrintUsage_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_Int level, const char *function, HYPRE_Int line );

HYPRE_Int
HYPRE_PrintDeviceInfo_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_PrintErrorMessages_pre( HYPRE_Precision precision, MPI_Comm comm );

HYPRE_Int
HYPRE_SetExecutionPolicy_pre( HYPRE_Precision precision, HYPRE_ExecutionPolicy exec_policy );

HYPRE_Int
HYPRE_SetGpuAwareMPI_pre( HYPRE_Precision precision, HYPRE_Int use_gpu_aware_mpi );

HYPRE_Int
HYPRE_SetLogLevel_pre( HYPRE_Precision precision, HYPRE_Int log_level );

HYPRE_Int
HYPRE_SetMemoryLocation_pre( HYPRE_Precision precision, HYPRE_MemoryLocation memory_location );

HYPRE_Int
HYPRE_SetPrintErrorMode_pre( HYPRE_Precision precision, HYPRE_Int mode );

HYPRE_Int
HYPRE_SetPrintErrorVerbosity_pre( HYPRE_Precision precision, HYPRE_Int code, HYPRE_Int verbosity );

HYPRE_Int
HYPRE_SetSpGemmUseVendor_pre( HYPRE_Precision precision, HYPRE_Int use_vendor );

HYPRE_Int
HYPRE_SetSpMVUseVendor_pre( HYPRE_Precision precision, HYPRE_Int use_vendor );

HYPRE_Int
HYPRE_SetSpTransUseVendor_pre( HYPRE_Precision precision, HYPRE_Int use_vendor );

HYPRE_Int
HYPRE_SetUseGpuRand_pre( HYPRE_Precision precision, HYPRE_Int use_curand );

HYPRE_Int
HYPRE_Version_pre( HYPRE_Precision precision, char **version_ptr );

HYPRE_Int
HYPRE_VersionNumber_pre( HYPRE_Precision precision, HYPRE_Int *major_ptr, HYPRE_Int *minor_ptr, HYPRE_Int *patch_ptr, HYPRE_Int *single_ptr );


#endif

#ifdef __cplusplus
}
#endif

#endif

