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

#ifndef hypre_BLAS_MUP_HEADER
#define hypre_BLAS_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)
 ******************************************************************************/


HYPRE_Real
hypre_dasum_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx );
HYPRE_Real
hypre_dasum_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx );
HYPRE_Real
hypre_dasum_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx );

HYPRE_Int
hypre_daxpy_flt( HYPRE_Int *n, hypre_float *da, hypre_float *dx, HYPRE_Int *incx, hypre_float *dy, HYPRE_Int *incy );
HYPRE_Int
hypre_daxpy_dbl( HYPRE_Int *n, hypre_double *da, hypre_double *dx, HYPRE_Int *incx, hypre_double *dy, HYPRE_Int *incy );
HYPRE_Int
hypre_daxpy_long_dbl( HYPRE_Int *n, hypre_long_double *da, hypre_long_double *dx, HYPRE_Int *incx, hypre_long_double *dy, HYPRE_Int *incy );

HYPRE_Int
hypre_dcopy_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx, hypre_float *dy, HYPRE_Int *incy );
HYPRE_Int
hypre_dcopy_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx, hypre_double *dy, HYPRE_Int *incy );
HYPRE_Int
hypre_dcopy_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx, hypre_long_double *dy, HYPRE_Int *incy );

HYPRE_Real
hypre_ddot_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx, hypre_float *dy, HYPRE_Int *incy );
HYPRE_Real
hypre_ddot_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx, hypre_double *dy, HYPRE_Int *incy );
HYPRE_Real
hypre_ddot_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx, hypre_long_double *dy, HYPRE_Int *incy );

HYPRE_Int
hypre_dgemm_flt( const char *transa, const char *transb, HYPRE_Int *m, HYPRE_Int *n, HYPRE_Int *k, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *b, HYPRE_Int *ldb, hypre_float *beta, hypre_float *c, HYPRE_Int *ldc );
HYPRE_Int
hypre_dgemm_dbl( const char *transa, const char *transb, HYPRE_Int *m, HYPRE_Int *n, HYPRE_Int *k, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *b, HYPRE_Int *ldb, hypre_double *beta, hypre_double *c, HYPRE_Int *ldc );
HYPRE_Int
hypre_dgemm_long_dbl( const char *transa, const char *transb, HYPRE_Int *m, HYPRE_Int *n, HYPRE_Int *k, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *b, HYPRE_Int *ldb, hypre_long_double *beta, hypre_long_double *c, HYPRE_Int *ldc );

HYPRE_Int
hypre_dgemv_flt( const char *trans, HYPRE_Int *m, HYPRE_Int *n, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *x, HYPRE_Int *incx, hypre_float *beta, hypre_float *y, HYPRE_Int *incy );
HYPRE_Int
hypre_dgemv_dbl( const char *trans, HYPRE_Int *m, HYPRE_Int *n, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *x, HYPRE_Int *incx, hypre_double *beta, hypre_double *y, HYPRE_Int *incy );
HYPRE_Int
hypre_dgemv_long_dbl( const char *trans, HYPRE_Int *m, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *x, HYPRE_Int *incx, hypre_long_double *beta, hypre_long_double *y, HYPRE_Int *incy );

HYPRE_Int
hypre_dger_flt( HYPRE_Int *m, HYPRE_Int *n, hypre_float *alpha, hypre_float *x, HYPRE_Int *incx, hypre_float *y, HYPRE_Int *incy, hypre_float *a, HYPRE_Int *lda );
HYPRE_Int
hypre_dger_dbl( HYPRE_Int *m, HYPRE_Int *n, hypre_double *alpha, hypre_double *x, HYPRE_Int *incx, hypre_double *y, HYPRE_Int *incy, hypre_double *a, HYPRE_Int *lda );
HYPRE_Int
hypre_dger_long_dbl( HYPRE_Int *m, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *x, HYPRE_Int *incx, hypre_long_double *y, HYPRE_Int *incy, hypre_long_double *a, HYPRE_Int *lda );

HYPRE_Real
hypre_dnrm2_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx );
HYPRE_Real
hypre_dnrm2_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx );
HYPRE_Real
hypre_dnrm2_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx );

HYPRE_Int
hypre_drot_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx, hypre_float *dy, HYPRE_Int *incy, hypre_float *c, hypre_float *s );
HYPRE_Int
hypre_drot_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx, hypre_double *dy, HYPRE_Int *incy, hypre_double *c, hypre_double *s );
HYPRE_Int
hypre_drot_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx, hypre_long_double *dy, HYPRE_Int *incy, hypre_long_double *c, hypre_long_double *s );

HYPRE_Int
hypre_dscal_flt( HYPRE_Int *n, hypre_float *da, hypre_float *dx, HYPRE_Int *incx );
HYPRE_Int
hypre_dscal_dbl( HYPRE_Int *n, hypre_double *da, hypre_double *dx, HYPRE_Int *incx );
HYPRE_Int
hypre_dscal_long_dbl( HYPRE_Int *n, hypre_long_double *da, hypre_long_double *dx, HYPRE_Int *incx );

HYPRE_Int
hypre_dswap_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx, hypre_float *dy, HYPRE_Int *incy );
HYPRE_Int
hypre_dswap_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx, hypre_double *dy, HYPRE_Int *incy );
HYPRE_Int
hypre_dswap_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx, hypre_long_double *dy, HYPRE_Int *incy );

HYPRE_Int
hypre_dsymm_flt( const char *side, const char *uplo, HYPRE_Int *m, HYPRE_Int *n, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *b, HYPRE_Int *ldb, hypre_float *beta, hypre_float *c__, HYPRE_Int *ldc );
HYPRE_Int
hypre_dsymm_dbl( const char *side, const char *uplo, HYPRE_Int *m, HYPRE_Int *n, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *b, HYPRE_Int *ldb, hypre_double *beta, hypre_double *c__, HYPRE_Int *ldc );
HYPRE_Int
hypre_dsymm_long_dbl( const char *side, const char *uplo, HYPRE_Int *m, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *b, HYPRE_Int *ldb, hypre_long_double *beta, hypre_long_double *c__, HYPRE_Int *ldc );

HYPRE_Int
hypre_dsymv_flt( const char *uplo, HYPRE_Int *n, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *x, HYPRE_Int *incx, hypre_float *beta, hypre_float *y, HYPRE_Int *incy );
HYPRE_Int
hypre_dsymv_dbl( const char *uplo, HYPRE_Int *n, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *x, HYPRE_Int *incx, hypre_double *beta, hypre_double *y, HYPRE_Int *incy );
HYPRE_Int
hypre_dsymv_long_dbl( const char *uplo, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *x, HYPRE_Int *incx, hypre_long_double *beta, hypre_long_double *y, HYPRE_Int *incy );

HYPRE_Int
hypre_dsyr2_flt( const char *uplo, HYPRE_Int *n, hypre_float *alpha, hypre_float *x, HYPRE_Int *incx, hypre_float *y, HYPRE_Int *incy, hypre_float *a, HYPRE_Int *lda );
HYPRE_Int
hypre_dsyr2_dbl( const char *uplo, HYPRE_Int *n, hypre_double *alpha, hypre_double *x, HYPRE_Int *incx, hypre_double *y, HYPRE_Int *incy, hypre_double *a, HYPRE_Int *lda );
HYPRE_Int
hypre_dsyr2_long_dbl( const char *uplo, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *x, HYPRE_Int *incx, hypre_long_double *y, HYPRE_Int *incy, hypre_long_double *a, HYPRE_Int *lda );

HYPRE_Int
hypre_dsyr2k_flt( const char *uplo, const char *trans, HYPRE_Int *n, HYPRE_Int *k, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *b, HYPRE_Int *ldb, hypre_float *beta, hypre_float *c__, HYPRE_Int *ldc );
HYPRE_Int
hypre_dsyr2k_dbl( const char *uplo, const char *trans, HYPRE_Int *n, HYPRE_Int *k, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *b, HYPRE_Int *ldb, hypre_double *beta, hypre_double *c__, HYPRE_Int *ldc );
HYPRE_Int
hypre_dsyr2k_long_dbl( const char *uplo, const char *trans, HYPRE_Int *n, HYPRE_Int *k, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *b, HYPRE_Int *ldb, hypre_long_double *beta, hypre_long_double *c__, HYPRE_Int *ldc );

HYPRE_Int
hypre_dsyrk_flt( const char *uplo, const char *trans, HYPRE_Int *n, HYPRE_Int *k, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *beta, hypre_float *c, HYPRE_Int *ldc );
HYPRE_Int
hypre_dsyrk_dbl( const char *uplo, const char *trans, HYPRE_Int *n, HYPRE_Int *k, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *beta, hypre_double *c, HYPRE_Int *ldc );
HYPRE_Int
hypre_dsyrk_long_dbl( const char *uplo, const char *trans, HYPRE_Int *n, HYPRE_Int *k, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *beta, hypre_long_double *c, HYPRE_Int *ldc );

HYPRE_Int
hypre_dtrmm_flt( const char *side, const char *uplo, const char *transa, const char *diag, HYPRE_Int *m, HYPRE_Int *n, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *b, HYPRE_Int *ldb );
HYPRE_Int
hypre_dtrmm_dbl( const char *side, const char *uplo, const char *transa, const char *diag, HYPRE_Int *m, HYPRE_Int *n, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *b, HYPRE_Int *ldb );
HYPRE_Int
hypre_dtrmm_long_dbl( const char *side, const char *uplo, const char *transa, const char *diag, HYPRE_Int *m, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *b, HYPRE_Int *ldb );

HYPRE_Int
hypre_dtrmv_flt( const char *uplo, const char *trans, const char *diag, HYPRE_Int *n, hypre_float *a, HYPRE_Int *lda, hypre_float *x, HYPRE_Int *incx );
HYPRE_Int
hypre_dtrmv_dbl( const char *uplo, const char *trans, const char *diag, HYPRE_Int *n, hypre_double *a, HYPRE_Int *lda, hypre_double *x, HYPRE_Int *incx );
HYPRE_Int
hypre_dtrmv_long_dbl( const char *uplo, const char *trans, const char *diag, HYPRE_Int *n, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *x, HYPRE_Int *incx );

HYPRE_Int
hypre_dtrsm_flt( const char *side, const char *uplo, const char *transa, const char *diag, HYPRE_Int *m, HYPRE_Int *n, hypre_float *alpha, hypre_float *a, HYPRE_Int *lda, hypre_float *b, HYPRE_Int *ldb );
HYPRE_Int
hypre_dtrsm_dbl( const char *side, const char *uplo, const char *transa, const char *diag, HYPRE_Int *m, HYPRE_Int *n, hypre_double *alpha, hypre_double *a, HYPRE_Int *lda, hypre_double *b, HYPRE_Int *ldb );
HYPRE_Int
hypre_dtrsm_long_dbl( const char *side, const char *uplo, const char *transa, const char *diag, HYPRE_Int *m, HYPRE_Int *n, hypre_long_double *alpha, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *b, HYPRE_Int *ldb );

HYPRE_Int
hypre_dtrsv_flt( const char *uplo, const char *trans, const char *diag, HYPRE_Int *n, hypre_float *a, HYPRE_Int *lda, hypre_float *x, HYPRE_Int *incx );
HYPRE_Int
hypre_dtrsv_dbl( const char *uplo, const char *trans, const char *diag, HYPRE_Int *n, hypre_double *a, HYPRE_Int *lda, hypre_double *x, HYPRE_Int *incx );
HYPRE_Int
hypre_dtrsv_long_dbl( const char *uplo, const char *trans, const char *diag, HYPRE_Int *n, hypre_long_double *a, HYPRE_Int *lda, hypre_long_double *x, HYPRE_Int *incx );

HYPRE_Int
hypre_idamax_flt( HYPRE_Int *n, hypre_float *dx, HYPRE_Int *incx );
HYPRE_Int
hypre_idamax_dbl( HYPRE_Int *n, hypre_double *dx, HYPRE_Int *incx );
HYPRE_Int
hypre_idamax_long_dbl( HYPRE_Int *n, hypre_long_double *dx, HYPRE_Int *incx );


/*** 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)
 ******************************************************************************/



#endif

#ifdef __cplusplus
}
#endif

#endif

