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

#ifndef HYPRE_STRUCT_MV_MUP_HEADER
#define HYPRE_STRUCT_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_Int
HYPRE_CommPkgDestroy_flt( HYPRE_CommPkg comm_pkg );
HYPRE_Int
HYPRE_CommPkgDestroy_dbl( HYPRE_CommPkg comm_pkg );
HYPRE_Int
HYPRE_CommPkgDestroy_long_dbl( HYPRE_CommPkg comm_pkg );
HYPRE_Int
HYPRE_CommPkgDestroy( HYPRE_CommPkg comm_pkg );

HYPRE_Int
HYPRE_StructGridAssemble_flt( HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridAssemble_dbl( HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridAssemble_long_dbl( HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridAssemble( HYPRE_StructGrid grid );

HYPRE_Int
HYPRE_StructGridCoarsen_flt( HYPRE_StructGrid grid, HYPRE_Int *stride, HYPRE_StructGrid *cgrid );
HYPRE_Int
HYPRE_StructGridCoarsen_dbl( HYPRE_StructGrid grid, HYPRE_Int *stride, HYPRE_StructGrid *cgrid );
HYPRE_Int
HYPRE_StructGridCoarsen_long_dbl( HYPRE_StructGrid grid, HYPRE_Int *stride, HYPRE_StructGrid *cgrid );
HYPRE_Int
HYPRE_StructGridCoarsen( HYPRE_StructGrid grid, HYPRE_Int *stride, HYPRE_StructGrid *cgrid );

HYPRE_Int
HYPRE_StructGridCreate_flt( MPI_Comm comm, HYPRE_Int ndim, HYPRE_StructGrid *grid );
HYPRE_Int
HYPRE_StructGridCreate_dbl( MPI_Comm comm, HYPRE_Int ndim, HYPRE_StructGrid *grid );
HYPRE_Int
HYPRE_StructGridCreate_long_dbl( MPI_Comm comm, HYPRE_Int ndim, HYPRE_StructGrid *grid );
HYPRE_Int
HYPRE_StructGridCreate( MPI_Comm comm, HYPRE_Int ndim, HYPRE_StructGrid *grid );

HYPRE_Int
HYPRE_StructGridDestroy_flt( HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridDestroy_dbl( HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridDestroy_long_dbl( HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridDestroy( HYPRE_StructGrid grid );

HYPRE_Int
HYPRE_StructGridPrintVTK_flt( const char *filename, HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridPrintVTK_dbl( const char *filename, HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridPrintVTK_long_dbl( const char *filename, HYPRE_StructGrid grid );
HYPRE_Int
HYPRE_StructGridPrintVTK( const char *filename, HYPRE_StructGrid grid );

HYPRE_Int
HYPRE_StructGridProjectBox_flt( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *origin, HYPRE_Int *stride );
HYPRE_Int
HYPRE_StructGridProjectBox_dbl( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *origin, HYPRE_Int *stride );
HYPRE_Int
HYPRE_StructGridProjectBox_long_dbl( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *origin, HYPRE_Int *stride );
HYPRE_Int
HYPRE_StructGridProjectBox( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *origin, HYPRE_Int *stride );

HYPRE_Int
HYPRE_StructGridSetExtents_flt( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper );
HYPRE_Int
HYPRE_StructGridSetExtents_dbl( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper );
HYPRE_Int
HYPRE_StructGridSetExtents_long_dbl( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper );
HYPRE_Int
HYPRE_StructGridSetExtents( HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper );

HYPRE_Int
HYPRE_StructGridSetNumGhost_flt( HYPRE_StructGrid grid, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructGridSetNumGhost_dbl( HYPRE_StructGrid grid, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructGridSetNumGhost_long_dbl( HYPRE_StructGrid grid, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructGridSetNumGhost( HYPRE_StructGrid grid, HYPRE_Int *num_ghost );

HYPRE_Int
HYPRE_StructGridSetPeriodic_flt( HYPRE_StructGrid grid, HYPRE_Int *periodic );
HYPRE_Int
HYPRE_StructGridSetPeriodic_dbl( HYPRE_StructGrid grid, HYPRE_Int *periodic );
HYPRE_Int
HYPRE_StructGridSetPeriodic_long_dbl( HYPRE_StructGrid grid, HYPRE_Int *periodic );
HYPRE_Int
HYPRE_StructGridSetPeriodic( HYPRE_StructGrid grid, HYPRE_Int *periodic );

HYPRE_Int
HYPRE_StructMatrixAddToBoxValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixAddToBoxValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToBoxValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToBoxValues( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixAddToBoxValues2_flt( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixAddToBoxValues2_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToBoxValues2_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToBoxValues2( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructMatrixAddToConstantValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixAddToConstantValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToConstantValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToConstantValues( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixAddToValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixAddToValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixAddToValues( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixAssemble_flt( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixAssemble_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixAssemble_long_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixAssemble( HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixClearBoundary_flt( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixClearBoundary_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixClearBoundary_long_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixClearBoundary( HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixCreate_flt( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructStencil stencil, HYPRE_StructMatrix *matrix );
HYPRE_Int
HYPRE_StructMatrixCreate_dbl( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructStencil stencil, HYPRE_StructMatrix *matrix );
HYPRE_Int
HYPRE_StructMatrixCreate_long_dbl( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructStencil stencil, HYPRE_StructMatrix *matrix );
HYPRE_Int
HYPRE_StructMatrixCreate( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructStencil stencil, HYPRE_StructMatrix *matrix );

HYPRE_Int
HYPRE_StructMatrixDestroy_flt( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixDestroy_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixDestroy_long_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixDestroy( HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixGetBoxValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixGetBoxValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixGetBoxValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixGetBoxValues( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixGetBoxValues2_flt( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixGetBoxValues2_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixGetBoxValues2_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixGetBoxValues2( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructMatrixGetGrid_flt( HYPRE_StructMatrix matrix, HYPRE_StructGrid *grid );
HYPRE_Int
HYPRE_StructMatrixGetGrid_dbl( HYPRE_StructMatrix matrix, HYPRE_StructGrid *grid );
HYPRE_Int
HYPRE_StructMatrixGetGrid_long_dbl( HYPRE_StructMatrix matrix, HYPRE_StructGrid *grid );
HYPRE_Int
HYPRE_StructMatrixGetGrid( HYPRE_StructMatrix matrix, HYPRE_StructGrid *grid );

HYPRE_Int
HYPRE_StructMatrixGetValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixGetValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixGetValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixGetValues( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixInitialize_flt( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixInitialize_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixInitialize_long_dbl( HYPRE_StructMatrix matrix );
HYPRE_Int
HYPRE_StructMatrixInitialize( HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixMatmat_flt( HYPRE_StructMatrix A, HYPRE_Int Atranspose, HYPRE_StructMatrix B, HYPRE_Int Btranspose, HYPRE_StructMatrix *C );
HYPRE_Int
HYPRE_StructMatrixMatmat_dbl( HYPRE_StructMatrix A, HYPRE_Int Atranspose, HYPRE_StructMatrix B, HYPRE_Int Btranspose, HYPRE_StructMatrix *C );
HYPRE_Int
HYPRE_StructMatrixMatmat_long_dbl( HYPRE_StructMatrix A, HYPRE_Int Atranspose, HYPRE_StructMatrix B, HYPRE_Int Btranspose, HYPRE_StructMatrix *C );
HYPRE_Int
HYPRE_StructMatrixMatmat( HYPRE_StructMatrix A, HYPRE_Int Atranspose, HYPRE_StructMatrix B, HYPRE_Int Btranspose, HYPRE_StructMatrix *C );

HYPRE_Int
HYPRE_StructMatrixMatvec_flt( hypre_float alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_float beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructMatrixMatvec_dbl( hypre_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_double beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructMatrixMatvec_long_dbl( hypre_long_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructMatrixMatvec( hypre_long_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructMatrixMatvecT_flt( hypre_float alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_float beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructMatrixMatvecT_dbl( hypre_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_double beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructMatrixMatvecT_long_dbl( hypre_long_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructMatrixMatvecT( hypre_long_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructMatrixPrint_flt( const char *filename, HYPRE_StructMatrix matrix, HYPRE_Int all );
HYPRE_Int
HYPRE_StructMatrixPrint_dbl( const char *filename, HYPRE_StructMatrix matrix, HYPRE_Int all );
HYPRE_Int
HYPRE_StructMatrixPrint_long_dbl( const char *filename, HYPRE_StructMatrix matrix, HYPRE_Int all );
HYPRE_Int
HYPRE_StructMatrixPrint( const char *filename, HYPRE_StructMatrix matrix, HYPRE_Int all );

HYPRE_Int
HYPRE_StructMatrixRead_flt( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructMatrix *matrix );
HYPRE_Int
HYPRE_StructMatrixRead_dbl( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructMatrix *matrix );
HYPRE_Int
HYPRE_StructMatrixRead_long_dbl( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructMatrix *matrix );
HYPRE_Int
HYPRE_StructMatrixRead( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructMatrix *matrix );

HYPRE_Int
HYPRE_StructMatrixSetBoxValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixSetBoxValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixSetBoxValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixSetBoxValues( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixSetBoxValues2_flt( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixSetBoxValues2_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixSetBoxValues2_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixSetBoxValues2( HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructMatrixSetConstantEntries_flt( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries );
HYPRE_Int
HYPRE_StructMatrixSetConstantEntries_dbl( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries );
HYPRE_Int
HYPRE_StructMatrixSetConstantEntries_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries );
HYPRE_Int
HYPRE_StructMatrixSetConstantEntries( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries );

HYPRE_Int
HYPRE_StructMatrixSetConstantValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixSetConstantValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixSetConstantValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixSetConstantValues( HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixSetDomainStride_flt( HYPRE_StructMatrix matrix, HYPRE_Int *domain_stride );
HYPRE_Int
HYPRE_StructMatrixSetDomainStride_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *domain_stride );
HYPRE_Int
HYPRE_StructMatrixSetDomainStride_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *domain_stride );
HYPRE_Int
HYPRE_StructMatrixSetDomainStride( HYPRE_StructMatrix matrix, HYPRE_Int *domain_stride );

HYPRE_Int
HYPRE_StructMatrixSetNumGhost_flt( HYPRE_StructMatrix matrix, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructMatrixSetNumGhost_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructMatrixSetNumGhost_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructMatrixSetNumGhost( HYPRE_StructMatrix matrix, HYPRE_Int *num_ghost );

HYPRE_Int
HYPRE_StructMatrixSetRangeStride_flt( HYPRE_StructMatrix matrix, HYPRE_Int *range_stride );
HYPRE_Int
HYPRE_StructMatrixSetRangeStride_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *range_stride );
HYPRE_Int
HYPRE_StructMatrixSetRangeStride_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *range_stride );
HYPRE_Int
HYPRE_StructMatrixSetRangeStride( HYPRE_StructMatrix matrix, HYPRE_Int *range_stride );

HYPRE_Int
HYPRE_StructMatrixSetSymmetric_flt( HYPRE_StructMatrix matrix, HYPRE_Int symmetric );
HYPRE_Int
HYPRE_StructMatrixSetSymmetric_dbl( HYPRE_StructMatrix matrix, HYPRE_Int symmetric );
HYPRE_Int
HYPRE_StructMatrixSetSymmetric_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int symmetric );
HYPRE_Int
HYPRE_StructMatrixSetSymmetric( HYPRE_StructMatrix matrix, HYPRE_Int symmetric );

HYPRE_Int
HYPRE_StructMatrixSetTranspose_flt( HYPRE_StructMatrix matrix, HYPRE_Int transpose );
HYPRE_Int
HYPRE_StructMatrixSetTranspose_dbl( HYPRE_StructMatrix matrix, HYPRE_Int transpose );
HYPRE_Int
HYPRE_StructMatrixSetTranspose_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int transpose );
HYPRE_Int
HYPRE_StructMatrixSetTranspose( HYPRE_StructMatrix matrix, HYPRE_Int transpose );

HYPRE_Int
HYPRE_StructMatrixSetValues_flt( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_float *values );
HYPRE_Int
HYPRE_StructMatrixSetValues_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_double *values );
HYPRE_Int
HYPRE_StructMatrixSetValues_long_dbl( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, hypre_long_double *values );
HYPRE_Int
HYPRE_StructMatrixSetValues( HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructStencilCreate_flt( HYPRE_Int ndim, HYPRE_Int size, HYPRE_StructStencil *stencil );
HYPRE_Int
HYPRE_StructStencilCreate_dbl( HYPRE_Int ndim, HYPRE_Int size, HYPRE_StructStencil *stencil );
HYPRE_Int
HYPRE_StructStencilCreate_long_dbl( HYPRE_Int ndim, HYPRE_Int size, HYPRE_StructStencil *stencil );
HYPRE_Int
HYPRE_StructStencilCreate( HYPRE_Int ndim, HYPRE_Int size, HYPRE_StructStencil *stencil );

HYPRE_Int
HYPRE_StructStencilDestroy_flt( HYPRE_StructStencil stencil );
HYPRE_Int
HYPRE_StructStencilDestroy_dbl( HYPRE_StructStencil stencil );
HYPRE_Int
HYPRE_StructStencilDestroy_long_dbl( HYPRE_StructStencil stencil );
HYPRE_Int
HYPRE_StructStencilDestroy( HYPRE_StructStencil stencil );

HYPRE_Int
HYPRE_StructStencilSetElement_flt( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );
HYPRE_Int
HYPRE_StructStencilSetElement_dbl( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );
HYPRE_Int
HYPRE_StructStencilSetElement_long_dbl( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );
HYPRE_Int
HYPRE_StructStencilSetElement( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );

HYPRE_Int
HYPRE_StructStencilSetEntry_flt( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );
HYPRE_Int
HYPRE_StructStencilSetEntry_dbl( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );
HYPRE_Int
HYPRE_StructStencilSetEntry_long_dbl( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );
HYPRE_Int
HYPRE_StructStencilSetEntry( HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );

HYPRE_Int
HYPRE_StructVectorAddToBoxValues_flt( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorAddToBoxValues_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorAddToBoxValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorAddToBoxValues( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, void *values );

HYPRE_Int
HYPRE_StructVectorAddToBoxValues2_flt( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorAddToBoxValues2_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorAddToBoxValues2_long_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorAddToBoxValues2( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructVectorAddToValues_flt( HYPRE_StructVector vector, HYPRE_Int *index, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorAddToValues_dbl( HYPRE_StructVector vector, HYPRE_Int *index, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorAddToValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int *index, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorAddToValues( HYPRE_StructVector vector, HYPRE_Int *index, void *values );

HYPRE_Int
HYPRE_StructVectorAssemble_flt( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorAssemble_dbl( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorAssemble_long_dbl( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorAssemble( HYPRE_StructVector vector );

HYPRE_Int
HYPRE_StructVectorAxpy_flt( hypre_float alpha, HYPRE_StructVector x, hypre_float beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorAxpy_dbl( hypre_double alpha, HYPRE_StructVector x, hypre_double beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorAxpy_long_dbl( hypre_long_double alpha, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorAxpy( hypre_long_double alpha, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructVectorClone_flt( HYPRE_StructVector x, HYPRE_StructVector *y_ptr );
HYPRE_Int
HYPRE_StructVectorClone_dbl( HYPRE_StructVector x, HYPRE_StructVector *y_ptr );
HYPRE_Int
HYPRE_StructVectorClone_long_dbl( HYPRE_StructVector x, HYPRE_StructVector *y_ptr );
HYPRE_Int
HYPRE_StructVectorClone( HYPRE_StructVector x, HYPRE_StructVector *y_ptr );

HYPRE_Int
HYPRE_StructVectorCopy_flt( HYPRE_StructVector x, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorCopy_dbl( HYPRE_StructVector x, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorCopy_long_dbl( HYPRE_StructVector x, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorCopy( HYPRE_StructVector x, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructVectorCreate_flt( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructVector *vector );
HYPRE_Int
HYPRE_StructVectorCreate_dbl( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructVector *vector );
HYPRE_Int
HYPRE_StructVectorCreate_long_dbl( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructVector *vector );
HYPRE_Int
HYPRE_StructVectorCreate( MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructVector *vector );

HYPRE_Int
HYPRE_StructVectorDestroy_flt( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorDestroy_dbl( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorDestroy_long_dbl( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorDestroy( HYPRE_StructVector vector );

HYPRE_Int
HYPRE_StructVectorGetBoxValues_flt( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorGetBoxValues_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorGetBoxValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorGetBoxValues( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, void *values );

HYPRE_Int
HYPRE_StructVectorGetBoxValues2_flt( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorGetBoxValues2_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorGetBoxValues2_long_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorGetBoxValues2( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructVectorGetMigrateCommPkg_flt( HYPRE_StructVector from_vector, HYPRE_StructVector to_vector, HYPRE_CommPkg *comm_pkg );
HYPRE_Int
HYPRE_StructVectorGetMigrateCommPkg_dbl( HYPRE_StructVector from_vector, HYPRE_StructVector to_vector, HYPRE_CommPkg *comm_pkg );
HYPRE_Int
HYPRE_StructVectorGetMigrateCommPkg_long_dbl( HYPRE_StructVector from_vector, HYPRE_StructVector to_vector, HYPRE_CommPkg *comm_pkg );
HYPRE_Int
HYPRE_StructVectorGetMigrateCommPkg( HYPRE_StructVector from_vector, HYPRE_StructVector to_vector, HYPRE_CommPkg *comm_pkg );

HYPRE_Int
HYPRE_StructVectorGetValues_flt( HYPRE_StructVector vector, HYPRE_Int *index, hypre_float *value );
HYPRE_Int
HYPRE_StructVectorGetValues_dbl( HYPRE_StructVector vector, HYPRE_Int *index, hypre_double *value );
HYPRE_Int
HYPRE_StructVectorGetValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int *index, hypre_long_double *value );
HYPRE_Int
HYPRE_StructVectorGetValues( HYPRE_StructVector vector, HYPRE_Int *index, void *value );

HYPRE_Int
HYPRE_StructVectorInitialize_flt( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorInitialize_dbl( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorInitialize_long_dbl( HYPRE_StructVector vector );
HYPRE_Int
HYPRE_StructVectorInitialize( HYPRE_StructVector vector );

HYPRE_Int
HYPRE_StructVectorInnerProd_flt( HYPRE_StructVector x, HYPRE_StructVector y, hypre_float *result );
HYPRE_Int
HYPRE_StructVectorInnerProd_dbl( HYPRE_StructVector x, HYPRE_StructVector y, hypre_double *result );
HYPRE_Int
HYPRE_StructVectorInnerProd_long_dbl( HYPRE_StructVector x, HYPRE_StructVector y, hypre_long_double *result );
HYPRE_Int
HYPRE_StructVectorInnerProd( HYPRE_StructVector x, HYPRE_StructVector y, void *result );

HYPRE_Int
HYPRE_StructVectorMigrate_flt( HYPRE_CommPkg comm_pkg, HYPRE_StructVector from_vector, HYPRE_StructVector to_vector );
HYPRE_Int
HYPRE_StructVectorMigrate_dbl( HYPRE_CommPkg comm_pkg, HYPRE_StructVector from_vector, HYPRE_StructVector to_vector );
HYPRE_Int
HYPRE_StructVectorMigrate_long_dbl( HYPRE_CommPkg comm_pkg, HYPRE_StructVector from_vector, HYPRE_StructVector to_vector );
HYPRE_Int
HYPRE_StructVectorMigrate( HYPRE_CommPkg comm_pkg, HYPRE_StructVector from_vector, HYPRE_StructVector to_vector );

HYPRE_Int
HYPRE_StructVectorPrint_flt( const char *filename, HYPRE_StructVector vector, HYPRE_Int all );
HYPRE_Int
HYPRE_StructVectorPrint_dbl( const char *filename, HYPRE_StructVector vector, HYPRE_Int all );
HYPRE_Int
HYPRE_StructVectorPrint_long_dbl( const char *filename, HYPRE_StructVector vector, HYPRE_Int all );
HYPRE_Int
HYPRE_StructVectorPrint( const char *filename, HYPRE_StructVector vector, HYPRE_Int all );

HYPRE_Int
HYPRE_StructVectorRead_flt( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructVector *vector );
HYPRE_Int
HYPRE_StructVectorRead_dbl( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructVector *vector );
HYPRE_Int
HYPRE_StructVectorRead_long_dbl( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructVector *vector );
HYPRE_Int
HYPRE_StructVectorRead( MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructVector *vector );

HYPRE_Int
HYPRE_StructVectorScale_flt( hypre_float alpha, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorScale_dbl( hypre_double alpha, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorScale_long_dbl( hypre_long_double alpha, HYPRE_StructVector y );
HYPRE_Int
HYPRE_StructVectorScale( hypre_long_double alpha, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructVectorScaleValues_flt( HYPRE_StructVector vector, hypre_float factor );
HYPRE_Int
HYPRE_StructVectorScaleValues_dbl( HYPRE_StructVector vector, hypre_double factor );
HYPRE_Int
HYPRE_StructVectorScaleValues_long_dbl( HYPRE_StructVector vector, hypre_long_double factor );
HYPRE_Int
HYPRE_StructVectorScaleValues( HYPRE_StructVector vector, hypre_long_double factor );

HYPRE_Int
HYPRE_StructVectorSetBoxValues_flt( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorSetBoxValues_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorSetBoxValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorSetBoxValues( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, void *values );

HYPRE_Int
HYPRE_StructVectorSetBoxValues2_flt( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorSetBoxValues2_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorSetBoxValues2_long_dbl( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorSetBoxValues2( HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructVectorSetConstantValues_flt( HYPRE_StructVector vector, hypre_float value );
HYPRE_Int
HYPRE_StructVectorSetConstantValues_dbl( HYPRE_StructVector vector, hypre_double value );
HYPRE_Int
HYPRE_StructVectorSetConstantValues_long_dbl( HYPRE_StructVector vector, hypre_long_double value );
HYPRE_Int
HYPRE_StructVectorSetConstantValues( HYPRE_StructVector vector, hypre_long_double value );

HYPRE_Int
HYPRE_StructVectorSetNumGhost_flt( HYPRE_StructVector vector, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructVectorSetNumGhost_dbl( HYPRE_StructVector vector, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructVectorSetNumGhost_long_dbl( HYPRE_StructVector vector, HYPRE_Int *num_ghost );
HYPRE_Int
HYPRE_StructVectorSetNumGhost( HYPRE_StructVector vector, HYPRE_Int *num_ghost );

HYPRE_Int
HYPRE_StructVectorSetRandomValues_flt( HYPRE_StructVector vector, HYPRE_Int seed );
HYPRE_Int
HYPRE_StructVectorSetRandomValues_dbl( HYPRE_StructVector vector, HYPRE_Int seed );
HYPRE_Int
HYPRE_StructVectorSetRandomValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int seed );
HYPRE_Int
HYPRE_StructVectorSetRandomValues( HYPRE_StructVector vector, HYPRE_Int seed );

HYPRE_Int
HYPRE_StructVectorSetStride_flt( HYPRE_StructVector vector, HYPRE_Int *stride );
HYPRE_Int
HYPRE_StructVectorSetStride_dbl( HYPRE_StructVector vector, HYPRE_Int *stride );
HYPRE_Int
HYPRE_StructVectorSetStride_long_dbl( HYPRE_StructVector vector, HYPRE_Int *stride );
HYPRE_Int
HYPRE_StructVectorSetStride( HYPRE_StructVector vector, HYPRE_Int *stride );

HYPRE_Int
HYPRE_StructVectorSetValues_flt( HYPRE_StructVector vector, HYPRE_Int *index, hypre_float *values );
HYPRE_Int
HYPRE_StructVectorSetValues_dbl( HYPRE_StructVector vector, HYPRE_Int *index, hypre_double *values );
HYPRE_Int
HYPRE_StructVectorSetValues_long_dbl( HYPRE_StructVector vector, HYPRE_Int *index, hypre_long_double *values );
HYPRE_Int
HYPRE_StructVectorSetValues( HYPRE_StructVector vector, HYPRE_Int *index, void *values );


/*** 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_CommPkgDestroy_pre( HYPRE_Precision precision, HYPRE_CommPkg comm_pkg );

HYPRE_Int
HYPRE_StructGridAssemble_pre( HYPRE_Precision precision, HYPRE_StructGrid grid );

HYPRE_Int
HYPRE_StructGridCoarsen_pre( HYPRE_Precision precision, HYPRE_StructGrid grid, HYPRE_Int *stride, HYPRE_StructGrid *cgrid );

HYPRE_Int
HYPRE_StructGridCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_Int ndim, HYPRE_StructGrid *grid );

HYPRE_Int
HYPRE_StructGridDestroy_pre( HYPRE_Precision precision, HYPRE_StructGrid grid );

HYPRE_Int
HYPRE_StructGridPrintVTK_pre( HYPRE_Precision precision, const char *filename, HYPRE_StructGrid grid );

HYPRE_Int
HYPRE_StructGridProjectBox_pre( HYPRE_Precision precision, HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *origin, HYPRE_Int *stride );

HYPRE_Int
HYPRE_StructGridSetExtents_pre( HYPRE_Precision precision, HYPRE_StructGrid grid, HYPRE_Int *ilower, HYPRE_Int *iupper );

HYPRE_Int
HYPRE_StructGridSetNumGhost_pre( HYPRE_Precision precision, HYPRE_StructGrid grid, HYPRE_Int *num_ghost );

HYPRE_Int
HYPRE_StructGridSetPeriodic_pre( HYPRE_Precision precision, HYPRE_StructGrid grid, HYPRE_Int *periodic );

HYPRE_Int
HYPRE_StructMatrixAddToBoxValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixAddToBoxValues2_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructMatrixAddToConstantValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixAddToValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixAssemble_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixClearBoundary_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructStencil stencil, HYPRE_StructMatrix *matrix );

HYPRE_Int
HYPRE_StructMatrixDestroy_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixGetBoxValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixGetBoxValues2_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructMatrixGetGrid_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_StructGrid *grid );

HYPRE_Int
HYPRE_StructMatrixGetValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixInitialize_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix );

HYPRE_Int
HYPRE_StructMatrixMatmat_pre( HYPRE_Precision precision, HYPRE_StructMatrix A, HYPRE_Int Atranspose, HYPRE_StructMatrix B, HYPRE_Int Btranspose, HYPRE_StructMatrix *C );

HYPRE_Int
HYPRE_StructMatrixMatvec_pre( HYPRE_Precision precision, hypre_long_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructMatrixMatvecT_pre( HYPRE_Precision precision, hypre_long_double alpha, HYPRE_StructMatrix A, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructMatrixPrint_pre( HYPRE_Precision precision, const char *filename, HYPRE_StructMatrix matrix, HYPRE_Int all );

HYPRE_Int
HYPRE_StructMatrixRead_pre( HYPRE_Precision precision, MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructMatrix *matrix );

HYPRE_Int
HYPRE_StructMatrixSetBoxValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixSetBoxValues2_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructMatrixSetConstantEntries_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries );

HYPRE_Int
HYPRE_StructMatrixSetConstantValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructMatrixSetDomainStride_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *domain_stride );

HYPRE_Int
HYPRE_StructMatrixSetNumGhost_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *num_ghost );

HYPRE_Int
HYPRE_StructMatrixSetRangeStride_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *range_stride );

HYPRE_Int
HYPRE_StructMatrixSetSymmetric_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int symmetric );

HYPRE_Int
HYPRE_StructMatrixSetTranspose_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int transpose );

HYPRE_Int
HYPRE_StructMatrixSetValues_pre( HYPRE_Precision precision, HYPRE_StructMatrix matrix, HYPRE_Int *index, HYPRE_Int nentries, HYPRE_Int *entries, void *values );

HYPRE_Int
HYPRE_StructStencilCreate_pre( HYPRE_Precision precision, HYPRE_Int ndim, HYPRE_Int size, HYPRE_StructStencil *stencil );

HYPRE_Int
HYPRE_StructStencilDestroy_pre( HYPRE_Precision precision, HYPRE_StructStencil stencil );

HYPRE_Int
HYPRE_StructStencilSetElement_pre( HYPRE_Precision precision, HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );

HYPRE_Int
HYPRE_StructStencilSetEntry_pre( HYPRE_Precision precision, HYPRE_StructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset );

HYPRE_Int
HYPRE_StructVectorAddToBoxValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, void *values );

HYPRE_Int
HYPRE_StructVectorAddToBoxValues2_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructVectorAddToValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *index, void *values );

HYPRE_Int
HYPRE_StructVectorAssemble_pre( HYPRE_Precision precision, HYPRE_StructVector vector );

HYPRE_Int
HYPRE_StructVectorAxpy_pre( HYPRE_Precision precision, hypre_long_double alpha, HYPRE_StructVector x, hypre_long_double beta, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructVectorClone_pre( HYPRE_Precision precision, HYPRE_StructVector x, HYPRE_StructVector *y_ptr );

HYPRE_Int
HYPRE_StructVectorCopy_pre( HYPRE_Precision precision, HYPRE_StructVector x, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructVectorCreate_pre( HYPRE_Precision precision, MPI_Comm comm, HYPRE_StructGrid grid, HYPRE_StructVector *vector );

HYPRE_Int
HYPRE_StructVectorDestroy_pre( HYPRE_Precision precision, HYPRE_StructVector vector );

HYPRE_Int
HYPRE_StructVectorGetBoxValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, void *values );

HYPRE_Int
HYPRE_StructVectorGetBoxValues2_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructVectorGetMigrateCommPkg_pre( HYPRE_Precision precision, HYPRE_StructVector from_vector, HYPRE_StructVector to_vector, HYPRE_CommPkg *comm_pkg );

HYPRE_Int
HYPRE_StructVectorGetValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *index, void *value );

HYPRE_Int
HYPRE_StructVectorInitialize_pre( HYPRE_Precision precision, HYPRE_StructVector vector );

HYPRE_Int
HYPRE_StructVectorInnerProd_pre( HYPRE_Precision precision, HYPRE_StructVector x, HYPRE_StructVector y, void *result );

HYPRE_Int
HYPRE_StructVectorMigrate_pre( HYPRE_Precision precision, HYPRE_CommPkg comm_pkg, HYPRE_StructVector from_vector, HYPRE_StructVector to_vector );

HYPRE_Int
HYPRE_StructVectorPrint_pre( HYPRE_Precision precision, const char *filename, HYPRE_StructVector vector, HYPRE_Int all );

HYPRE_Int
HYPRE_StructVectorRead_pre( HYPRE_Precision precision, MPI_Comm comm, const char *filename, HYPRE_Int *num_ghost, HYPRE_StructVector *vector );

HYPRE_Int
HYPRE_StructVectorScale_pre( HYPRE_Precision precision, hypre_long_double alpha, HYPRE_StructVector y );

HYPRE_Int
HYPRE_StructVectorScaleValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, hypre_long_double factor );

HYPRE_Int
HYPRE_StructVectorSetBoxValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, void *values );

HYPRE_Int
HYPRE_StructVectorSetBoxValues2_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *vilower, HYPRE_Int *viupper, void *values );

HYPRE_Int
HYPRE_StructVectorSetConstantValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, hypre_long_double value );

HYPRE_Int
HYPRE_StructVectorSetNumGhost_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *num_ghost );

HYPRE_Int
HYPRE_StructVectorSetRandomValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int seed );

HYPRE_Int
HYPRE_StructVectorSetStride_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *stride );

HYPRE_Int
HYPRE_StructVectorSetValues_pre( HYPRE_Precision precision, HYPRE_StructVector vector, HYPRE_Int *index, void *values );


#endif

#ifdef __cplusplus
}
#endif

#endif

