| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- /*******************************************************************************
- * Copyright 2017-2022 Intel Corporation.
- *
- * This software and the related documents are Intel copyrighted materials, and
- * your use of them is governed by the express license under which they were
- * provided to you (License). Unless the License provides otherwise, you may not
- * use, modify, copy, publish, distribute, disclose or transmit this software or
- * the related documents without Intel's prior written permission.
- *
- * This software and the related documents are provided as is, with no express
- * or implied warranties, other than those that are expressly stated in the
- * License.
- *******************************************************************************/
- /*
- ! Content:
- ! Intel(R) oneAPI Math Kernel Library (oneMKL) interfaces for Compact format
- !******************************************************************************/
- #ifndef _MKL_COMPACT_H
- #define _MKL_COMPACT_H
- #include "mkl_types.h"
- #ifndef mkl_compact_complex_float
- #define mkl_compact_complex_float MKL_Complex8
- #endif
- #ifndef mkl_compact_complex_double
- #define mkl_compact_complex_double MKL_Complex16
- #endif
- #ifdef __cplusplus
- extern "C" { /* Assume C declarations for C++ */
- #endif /* __cplusplus */
- MKL_COMPACT_PACK mkl_get_format_compact( void );
- MKL_INT mkl_sget_size_compact( MKL_INT ld, MKL_INT sd,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_sgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- const float * const *a, MKL_INT lda, float *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_sgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- float * const *a, MKL_INT lda, const float *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_sgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa,
- MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n,
- MKL_INT k, float alpha, const float *ap,
- MKL_INT ldap, const float *bp, MKL_INT ldbp,
- float beta, float *cp, MKL_INT ldcp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_strsm_compact( MKL_LAYOUT layout, MKL_SIDE side,
- MKL_UPLO uplo, MKL_TRANSPOSE transa,
- MKL_DIAG diag, MKL_INT m, MKL_INT n,
- float alpha, const float *ap, MKL_INT ldap,
- float *bp, MKL_INT ldbp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- MKL_INT mkl_dget_size_compact( MKL_INT ld, MKL_INT sd,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- const double * const *a, MKL_INT lda, double *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- double * const *a, MKL_INT lda, const double *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa,
- MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n,
- MKL_INT k, double alpha, const double *a,
- MKL_INT ldap, const double *b, MKL_INT ldbp,
- double beta, double *c, MKL_INT ldcp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dtrsm_compact( MKL_LAYOUT layout, MKL_SIDE side,
- MKL_UPLO uplo, MKL_TRANSPOSE transa,
- MKL_DIAG diag, MKL_INT m, MKL_INT n,
- double alpha, const double *a, MKL_INT ldap,
- double *b, MKL_INT ldbp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- MKL_INT mkl_cget_size_compact( MKL_INT ld, MKL_INT sd,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_cgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- const mkl_compact_complex_float * const *a, MKL_INT lda, float *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_cgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- mkl_compact_complex_float * const *a, MKL_INT lda, const float *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_cgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa,
- MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n,
- MKL_INT k, const mkl_compact_complex_float *alpha, const float *a,
- MKL_INT ldap, const float *b, MKL_INT ldbp,
- const mkl_compact_complex_float *beta, float *c, MKL_INT ldcp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_ctrsm_compact( MKL_LAYOUT layout, MKL_SIDE side,
- MKL_UPLO uplo, MKL_TRANSPOSE transa,
- MKL_DIAG diag, MKL_INT m, MKL_INT n,
- const mkl_compact_complex_float *alpha, const float *a, MKL_INT ldap,
- float *b, MKL_INT ldbp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- MKL_INT mkl_zget_size_compact( MKL_INT ld, MKL_INT sd,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_zgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- const mkl_compact_complex_double * const *a, MKL_INT lda, double *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_zgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns,
- mkl_compact_complex_double * const *a, MKL_INT lda, const double *ap, MKL_INT ldap,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_zgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa,
- MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n,
- MKL_INT k, const mkl_compact_complex_double *alpha, const double *a,
- MKL_INT ldap, const double *b, MKL_INT ldbp,
- const mkl_compact_complex_double *beta, double *c, MKL_INT ldcp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_ztrsm_compact( MKL_LAYOUT layout, MKL_SIDE side,
- MKL_UPLO uplo, MKL_TRANSPOSE transa,
- MKL_DIAG diag, MKL_INT m, MKL_INT n,
- const mkl_compact_complex_double *alpha, const double *a, MKL_INT ldap,
- double *b, MKL_INT ldbp,
- MKL_COMPACT_PACK format, MKL_INT nm );
- /* LAPACK compact routines */
- void mkl_cgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, float* ap,
- MKL_INT ldap, float* work, MKL_INT lwork,
- MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, double* ap, MKL_INT ldap,
- double* work, MKL_INT lwork, MKL_INT* info,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_sgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, float* ap, MKL_INT ldap,
- float* work, MKL_INT lwork, MKL_INT* info,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_zgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, double* ap,
- MKL_INT ldap, double* work, MKL_INT lwork,
- MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_cgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n,
- float* ap, MKL_INT ldap, MKL_INT* info,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, double* ap,
- MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format,
- MKL_INT nm );
- void mkl_sgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, float* ap,
- MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format,
- MKL_INT nm );
- void mkl_zgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n,
- double* ap, MKL_INT ldap, MKL_INT* info,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_cpotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n,
- float* ap, MKL_INT ldap, MKL_INT* info,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dpotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, double* ap,
- MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format,
- MKL_INT nm );
- void mkl_spotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, float* ap,
- MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format,
- MKL_INT nm );
- void mkl_zpotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n,
- double* ap, MKL_INT ldap, MKL_INT* info,
- MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_cgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, float* ap,
- MKL_INT ldap, float* taup, float* work, MKL_INT lwork,
- MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_dgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, double* ap,
- MKL_INT ldap, double* taup, double* work,
- MKL_INT lwork, MKL_INT* info, MKL_COMPACT_PACK format,
- MKL_INT nm );
- void mkl_sgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, float* ap,
- MKL_INT ldap, float* taup, float* work, MKL_INT lwork,
- MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm );
- void mkl_zgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, double* ap,
- MKL_INT ldap, double* taup, double* work,
- MKL_INT lwork, MKL_INT* info, MKL_COMPACT_PACK format,
- MKL_INT nm );
- MKL_INT64 mkl_sget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd,
- MKL_COMPACT_PACK format, MKL_INT64 nm );
- MKL_INT64 mkl_dget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd,
- MKL_COMPACT_PACK format, MKL_INT64 nm );
- MKL_INT64 mkl_cget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd,
- MKL_COMPACT_PACK format, MKL_INT64 nm );
- MKL_INT64 mkl_zget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd,
- MKL_COMPACT_PACK format, MKL_INT64 nm );
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif /* _MKL_COMPACT_H */
|