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

#ifndef HYPRE_SEQ_MV_MUP_HEADER
#define HYPRE_SEQ_MV_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_CSRMatrix
HYPRE_CSRMatrixCreate_flt( HYPRE_Int num_rows, HYPRE_Int num_cols, HYPRE_Int *row_sizes );
HYPRE_CSRMatrix
HYPRE_CSRMatrixCreate_dbl( HYPRE_Int num_rows, HYPRE_Int num_cols, HYPRE_Int *row_sizes );
HYPRE_CSRMatrix
HYPRE_CSRMatrixCreate_long_dbl( HYPRE_Int num_rows, HYPRE_Int num_cols, HYPRE_Int *row_sizes );
HYPRE_CSRMatrix
HYPRE_CSRMatrixCreate( HYPRE_Int num_rows, HYPRE_Int num_cols, HYPRE_Int *row_sizes );

HYPRE_Int
HYPRE_CSRMatrixDestroy_flt( HYPRE_CSRMatrix matrix );
HYPRE_Int
HYPRE_CSRMatrixDestroy_dbl( HYPRE_CSRMatrix matrix );
HYPRE_Int
HYPRE_CSRMatrixDestroy_long_dbl( HYPRE_CSRMatrix matrix );
HYPRE_Int
HYPRE_CSRMatrixDestroy( HYPRE_CSRMatrix matrix );

HYPRE_Int
HYPRE_CSRMatrixGetNumRows_flt( HYPRE_CSRMatrix matrix, HYPRE_Int *num_rows );
HYPRE_Int
HYPRE_CSRMatrixGetNumRows_dbl( HYPRE_CSRMatrix matrix, HYPRE_Int *num_rows );
HYPRE_Int
HYPRE_CSRMatrixGetNumRows_long_dbl( HYPRE_CSRMatrix matrix, HYPRE_Int *num_rows );
HYPRE_Int
HYPRE_CSRMatrixGetNumRows( HYPRE_CSRMatrix matrix, HYPRE_Int *num_rows );

HYPRE_Int
HYPRE_CSRMatrixInitialize_flt( HYPRE_CSRMatrix matrix );
HYPRE_Int
HYPRE_CSRMatrixInitialize_dbl( HYPRE_CSRMatrix matrix );
HYPRE_Int
HYPRE_CSRMatrixInitialize_long_dbl( HYPRE_CSRMatrix matrix );
HYPRE_Int
HYPRE_CSRMatrixInitialize( HYPRE_CSRMatrix matrix );

void
HYPRE_CSRMatrixPrint_flt( HYPRE_CSRMatrix matrix, char *file_name );
void
HYPRE_CSRMatrixPrint_dbl( HYPRE_CSRMatrix matrix, char *file_name );
void
HYPRE_CSRMatrixPrint_long_dbl( HYPRE_CSRMatrix matrix, char *file_name );
void
HYPRE_CSRMatrixPrint( HYPRE_CSRMatrix matrix, char *file_name );

HYPRE_CSRMatrix
HYPRE_CSRMatrixRead_flt( char *file_name );
HYPRE_CSRMatrix
HYPRE_CSRMatrixRead_dbl( char *file_name );
HYPRE_CSRMatrix
HYPRE_CSRMatrixRead_long_dbl( char *file_name );
HYPRE_CSRMatrix
HYPRE_CSRMatrixRead( char *file_name );

HYPRE_Int
HYPRE_MappedMatrixAssemble_flt( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixAssemble_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixAssemble_long_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixAssemble( HYPRE_MappedMatrix matrix );

HYPRE_MappedMatrix
HYPRE_MappedMatrixCreate_flt( void );
HYPRE_MappedMatrix
HYPRE_MappedMatrixCreate_dbl( void );
HYPRE_MappedMatrix
HYPRE_MappedMatrixCreate_long_dbl( void );
HYPRE_MappedMatrix
HYPRE_MappedMatrixCreate( void );

HYPRE_Int
HYPRE_MappedMatrixDestroy_flt( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixDestroy_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixDestroy_long_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixDestroy( HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixGetColIndex_flt( HYPRE_MappedMatrix matrix, HYPRE_Int j );
HYPRE_Int
HYPRE_MappedMatrixGetColIndex_dbl( HYPRE_MappedMatrix matrix, HYPRE_Int j );
HYPRE_Int
HYPRE_MappedMatrixGetColIndex_long_dbl( HYPRE_MappedMatrix matrix, HYPRE_Int j );
HYPRE_Int
HYPRE_MappedMatrixGetColIndex( HYPRE_MappedMatrix matrix, HYPRE_Int j );

void *
HYPRE_MappedMatrixGetMatrix_flt( HYPRE_MappedMatrix matrix );
void *
HYPRE_MappedMatrixGetMatrix_dbl( HYPRE_MappedMatrix matrix );
void *
HYPRE_MappedMatrixGetMatrix_long_dbl( HYPRE_MappedMatrix matrix );
void *
HYPRE_MappedMatrixGetMatrix( HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixInitialize_flt( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixInitialize_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixInitialize_long_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixInitialize( HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixLimitedDestroy_flt( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixLimitedDestroy_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixLimitedDestroy_long_dbl( HYPRE_MappedMatrix matrix );
HYPRE_Int
HYPRE_MappedMatrixLimitedDestroy( HYPRE_MappedMatrix matrix );

void
HYPRE_MappedMatrixPrint_flt( HYPRE_MappedMatrix matrix );
void
HYPRE_MappedMatrixPrint_dbl( HYPRE_MappedMatrix matrix );
void
HYPRE_MappedMatrixPrint_long_dbl( HYPRE_MappedMatrix matrix );
void
HYPRE_MappedMatrixPrint( HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixSetMapData_flt( HYPRE_MappedMatrix matrix, void *MapData );
HYPRE_Int
HYPRE_MappedMatrixSetMapData_dbl( HYPRE_MappedMatrix matrix, void *MapData );
HYPRE_Int
HYPRE_MappedMatrixSetMapData_long_dbl( HYPRE_MappedMatrix matrix, void *MapData );
HYPRE_Int
HYPRE_MappedMatrixSetMapData( HYPRE_MappedMatrix matrix, void *MapData );

HYPRE_Int
HYPRE_MappedMatrixSetMatrix_flt( HYPRE_MappedMatrix matrix, void *matrix_data );
HYPRE_Int
HYPRE_MappedMatrixSetMatrix_dbl( HYPRE_MappedMatrix matrix, void *matrix_data );
HYPRE_Int
HYPRE_MappedMatrixSetMatrix_long_dbl( HYPRE_MappedMatrix matrix, void *matrix_data );
HYPRE_Int
HYPRE_MappedMatrixSetMatrix( HYPRE_MappedMatrix matrix, void *matrix_data );

HYPRE_Int
HYPRE_MultiblockMatrixAssemble_flt( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixAssemble_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixAssemble_long_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixAssemble( HYPRE_MultiblockMatrix matrix );

HYPRE_MultiblockMatrix
HYPRE_MultiblockMatrixCreate_flt( void );
HYPRE_MultiblockMatrix
HYPRE_MultiblockMatrixCreate_dbl( void );
HYPRE_MultiblockMatrix
HYPRE_MultiblockMatrixCreate_long_dbl( void );
HYPRE_MultiblockMatrix
HYPRE_MultiblockMatrixCreate( void );

HYPRE_Int
HYPRE_MultiblockMatrixDestroy_flt( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixDestroy_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixDestroy_long_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixDestroy( HYPRE_MultiblockMatrix matrix );

HYPRE_Int
HYPRE_MultiblockMatrixInitialize_flt( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixInitialize_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixInitialize_long_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixInitialize( HYPRE_MultiblockMatrix matrix );

HYPRE_Int
HYPRE_MultiblockMatrixLimitedDestroy_flt( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixLimitedDestroy_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixLimitedDestroy_long_dbl( HYPRE_MultiblockMatrix matrix );
HYPRE_Int
HYPRE_MultiblockMatrixLimitedDestroy( HYPRE_MultiblockMatrix matrix );

void
HYPRE_MultiblockMatrixPrint_flt( HYPRE_MultiblockMatrix matrix );
void
HYPRE_MultiblockMatrixPrint_dbl( HYPRE_MultiblockMatrix matrix );
void
HYPRE_MultiblockMatrixPrint_long_dbl( HYPRE_MultiblockMatrix matrix );
void
HYPRE_MultiblockMatrixPrint( HYPRE_MultiblockMatrix matrix );

HYPRE_Int
HYPRE_MultiblockMatrixSetNumSubmatrices_flt( HYPRE_MultiblockMatrix matrix, HYPRE_Int n );
HYPRE_Int
HYPRE_MultiblockMatrixSetNumSubmatrices_dbl( HYPRE_MultiblockMatrix matrix, HYPRE_Int n );
HYPRE_Int
HYPRE_MultiblockMatrixSetNumSubmatrices_long_dbl( HYPRE_MultiblockMatrix matrix, HYPRE_Int n );
HYPRE_Int
HYPRE_MultiblockMatrixSetNumSubmatrices( HYPRE_MultiblockMatrix matrix, HYPRE_Int n );

HYPRE_Int
HYPRE_MultiblockMatrixSetSubmatrixType_flt( HYPRE_MultiblockMatrix matrix, HYPRE_Int j, HYPRE_Int type );
HYPRE_Int
HYPRE_MultiblockMatrixSetSubmatrixType_dbl( HYPRE_MultiblockMatrix matrix, HYPRE_Int j, HYPRE_Int type );
HYPRE_Int
HYPRE_MultiblockMatrixSetSubmatrixType_long_dbl( HYPRE_MultiblockMatrix matrix, HYPRE_Int j, HYPRE_Int type );
HYPRE_Int
HYPRE_MultiblockMatrixSetSubmatrixType( HYPRE_MultiblockMatrix matrix, HYPRE_Int j, HYPRE_Int type );

HYPRE_Int
HYPRE_VectorCopy_flt( HYPRE_Vector xvec, HYPRE_Vector yvec );
HYPRE_Int
HYPRE_VectorCopy_dbl( HYPRE_Vector xvec, HYPRE_Vector yvec );
HYPRE_Int
HYPRE_VectorCopy_long_dbl( HYPRE_Vector xvec, HYPRE_Vector yvec );
HYPRE_Int
HYPRE_VectorCopy( HYPRE_Vector xvec, HYPRE_Vector yvec );

HYPRE_Vector
HYPRE_VectorCreate_flt( HYPRE_Int size );
HYPRE_Vector
HYPRE_VectorCreate_dbl( HYPRE_Int size );
HYPRE_Vector
HYPRE_VectorCreate_long_dbl( HYPRE_Int size );
HYPRE_Vector
HYPRE_VectorCreate( HYPRE_Int size );

HYPRE_Int
HYPRE_VectorDestroy_flt( HYPRE_Vector vector );
HYPRE_Int
HYPRE_VectorDestroy_dbl( HYPRE_Vector vector );
HYPRE_Int
HYPRE_VectorDestroy_long_dbl( HYPRE_Vector vector );
HYPRE_Int
HYPRE_VectorDestroy( HYPRE_Vector vector );

HYPRE_Int
HYPRE_VectorInitialize_flt( HYPRE_Vector vector );
HYPRE_Int
HYPRE_VectorInitialize_dbl( HYPRE_Vector vector );
HYPRE_Int
HYPRE_VectorInitialize_long_dbl( HYPRE_Vector vector );
HYPRE_Int
HYPRE_VectorInitialize( HYPRE_Vector vector );

HYPRE_Int
HYPRE_VectorPrint_flt( HYPRE_Vector vector, char *file_name );
HYPRE_Int
HYPRE_VectorPrint_dbl( HYPRE_Vector vector, char *file_name );
HYPRE_Int
HYPRE_VectorPrint_long_dbl( HYPRE_Vector vector, char *file_name );
HYPRE_Int
HYPRE_VectorPrint( HYPRE_Vector vector, char *file_name );

HYPRE_Vector
HYPRE_VectorRead_flt( char *file_name );
HYPRE_Vector
HYPRE_VectorRead_dbl( char *file_name );
HYPRE_Vector
HYPRE_VectorRead_long_dbl( char *file_name );
HYPRE_Vector
HYPRE_VectorRead( char *file_name );


/*** 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_CSRMatrix
HYPRE_CSRMatrixCreate_pre( HYPRE_Precision precision, HYPRE_Int num_rows, HYPRE_Int num_cols, HYPRE_Int *row_sizes );

HYPRE_Int
HYPRE_CSRMatrixDestroy_pre( HYPRE_Precision precision, HYPRE_CSRMatrix matrix );

HYPRE_Int
HYPRE_CSRMatrixGetNumRows_pre( HYPRE_Precision precision, HYPRE_CSRMatrix matrix, HYPRE_Int *num_rows );

HYPRE_Int
HYPRE_CSRMatrixInitialize_pre( HYPRE_Precision precision, HYPRE_CSRMatrix matrix );

void
HYPRE_CSRMatrixPrint_pre( HYPRE_Precision precision, HYPRE_CSRMatrix matrix, char *file_name );

HYPRE_CSRMatrix
HYPRE_CSRMatrixRead_pre( HYPRE_Precision precision, char *file_name );

HYPRE_Int
HYPRE_MappedMatrixAssemble_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix );

HYPRE_MappedMatrix
HYPRE_MappedMatrixCreate_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_MappedMatrixDestroy_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixGetColIndex_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix, HYPRE_Int j );

void *
HYPRE_MappedMatrixGetMatrix_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixInitialize_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixLimitedDestroy_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix );

void
HYPRE_MappedMatrixPrint_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix );

HYPRE_Int
HYPRE_MappedMatrixSetMapData_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix, void *MapData );

HYPRE_Int
HYPRE_MappedMatrixSetMatrix_pre( HYPRE_Precision precision, HYPRE_MappedMatrix matrix, void *matrix_data );

HYPRE_Int
HYPRE_MultiblockMatrixAssemble_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix );

HYPRE_MultiblockMatrix
HYPRE_MultiblockMatrixCreate_pre( HYPRE_Precision precision );

HYPRE_Int
HYPRE_MultiblockMatrixDestroy_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix );

HYPRE_Int
HYPRE_MultiblockMatrixInitialize_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix );

HYPRE_Int
HYPRE_MultiblockMatrixLimitedDestroy_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix );

void
HYPRE_MultiblockMatrixPrint_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix );

HYPRE_Int
HYPRE_MultiblockMatrixSetNumSubmatrices_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix, HYPRE_Int n );

HYPRE_Int
HYPRE_MultiblockMatrixSetSubmatrixType_pre( HYPRE_Precision precision, HYPRE_MultiblockMatrix matrix, HYPRE_Int j, HYPRE_Int type );

HYPRE_Int
HYPRE_VectorCopy_pre( HYPRE_Precision precision, HYPRE_Vector xvec, HYPRE_Vector yvec );

HYPRE_Vector
HYPRE_VectorCreate_pre( HYPRE_Precision precision, HYPRE_Int size );

HYPRE_Int
HYPRE_VectorDestroy_pre( HYPRE_Precision precision, HYPRE_Vector vector );

HYPRE_Int
HYPRE_VectorInitialize_pre( HYPRE_Precision precision, HYPRE_Vector vector );

HYPRE_Int
HYPRE_VectorPrint_pre( HYPRE_Precision precision, HYPRE_Vector vector, char *file_name );

HYPRE_Vector
HYPRE_VectorRead_pre( HYPRE_Precision precision, char *file_name );


#endif

#ifdef __cplusplus
}
#endif

#endif

