/*******************************************************************************
* Copyright 1999-2018 Intel Corporation All Rights Reserved.
*
* The source code,  information  and material  ("Material") contained  herein is
* owned by Intel Corporation or its  suppliers or licensors,  and  title to such
* Material remains with Intel  Corporation or its  suppliers or  licensors.  The
* Material  contains  proprietary  information  of  Intel or  its suppliers  and
* licensors.  The Material is protected by  worldwide copyright  laws and treaty
* provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
* modified, published,  uploaded, posted, transmitted,  distributed or disclosed
* in any way without Intel's prior express written permission.  No license under
* any patent,  copyright or other  intellectual property rights  in the Material
* is granted to  or  conferred  upon  you,  either   expressly,  by implication,
* inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
* property rights must be express and approved by Intel in writing.
*
* Unless otherwise agreed by Intel in writing,  you may not remove or alter this
* notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
* suppliers or licensors in any way.
*******************************************************************************/

/*
!  Content:
!      Intel(R) Math Kernel Library (Intel(R) MKL) interface for LAPACK routines
!******************************************************************************/

#ifndef _MKL_LAPACK_H_
#define _MKL_LAPACK_H_

#include "mkl_types.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* LAPACK specific types */

typedef MKL_INT (*MKL_C_SELECT_FUNCTION_1) ( const MKL_Complex8* );
typedef MKL_INT (*MKL_C_SELECT_FUNCTION_2) ( const MKL_Complex8*, const MKL_Complex8* );
typedef MKL_INT (*MKL_D_SELECT_FUNCTION_2) ( const double*, const double* );
typedef MKL_INT (*MKL_D_SELECT_FUNCTION_3) ( const double*, const double*, const double* );
typedef MKL_INT (*MKL_S_SELECT_FUNCTION_2) ( const float*, const float* );
typedef MKL_INT (*MKL_S_SELECT_FUNCTION_3) ( const float*, const float*, const float* );
typedef MKL_INT (*MKL_Z_SELECT_FUNCTION_1) ( const MKL_Complex16* );
typedef MKL_INT (*MKL_Z_SELECT_FUNCTION_2) ( const MKL_Complex16*, const MKL_Complex16* );

#if defined(_WIN32) && defined(MKL_STDCALL) && !defined(__MIC__) && !defined(__TARGET_ARCH_MIC)
#include "mkl_lapack_stdcall.h"
#else

void CGELQ( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
            MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGELQ_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgelq( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
            MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgelq_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CGELQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );
void CGELQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );
void cgelqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );
void cgelqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );

void CGELQT3( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_INT* info );
void CGELQT3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
               MKL_INT* info );
void cgelqt3( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_INT* info );
void cgelqt3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
               MKL_INT* info );

void CGEMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* t,
             const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGEMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* t,
              const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgemlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* t,
             const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgemlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* t,
              const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CGEMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const MKL_Complex8* v, const MKL_INT* ldv, const MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );
void CGEMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
               const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cgemlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const MKL_Complex8* v, const MKL_INT* ldv, const MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );
void cgemlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
               const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );

void CGEQR( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
            MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGEQR_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgeqr( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
            MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgeqr_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* tsize,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CGETSLS( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CGETSLS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void cgetsls( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cgetsls_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CLAMSWLQ( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
               const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );
void CLAMSWLQ_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
                const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
                MKL_INT* info );
void clamswlq( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
               const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );
void clamswlq_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
                const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
                MKL_INT* info );

void CLAMTSQR( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
               const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );
void CLAMTSQR_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
                const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
                MKL_INT* info );
void clamtsqr( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
               const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );
void clamtsqr_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
                const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
                MKL_INT* info );

void CLASWLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CLASWLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void claswlq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void claswlq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CLATSQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CLATSQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void clatsqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void clatsqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CTPLQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );
void CTPLQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );
void ctplqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );
void ctplqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* work, MKL_INT* info );

void CTPLQT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_INT* info );
void CTPLQT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* t, const MKL_INT* ldt,
               MKL_INT* info );
void ctplqt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_INT* info );
void ctplqt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* t, const MKL_INT* ldt,
               MKL_INT* info );

void CTPMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* work, MKL_INT* info );
void CTPMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, MKL_INT* info );
void ctpmlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* work, MKL_INT* info );
void ctpmlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, MKL_INT* info );

void DGELQ( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
            double* t, const MKL_INT* tsize, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void DGELQ_( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* t, const MKL_INT* tsize, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgelq( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
            double* t, const MKL_INT* tsize, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void dgelq_( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* t, const MKL_INT* tsize, double* work,
             const MKL_INT* lwork, MKL_INT* info );

void DGELQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, double* a,
             const MKL_INT* lda, double* t, const MKL_INT* ldt, double* work,
             MKL_INT* info );
void DGELQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, double* a,
              const MKL_INT* lda, double* t, const MKL_INT* ldt, double* work,
              MKL_INT* info );
void dgelqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, double* a,
             const MKL_INT* lda, double* t, const MKL_INT* ldt, double* work,
             MKL_INT* info );
void dgelqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, double* a,
              const MKL_INT* lda, double* t, const MKL_INT* ldt, double* work,
              MKL_INT* info );

void DGELQT3( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* t, const MKL_INT* ldt,
              MKL_INT* info );
void DGELQT3_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* t, const MKL_INT* ldt,
               MKL_INT* info );
void dgelqt3( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* t, const MKL_INT* ldt,
              MKL_INT* info );
void dgelqt3_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* t, const MKL_INT* ldt,
               MKL_INT* info );

void DGEMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a, const MKL_INT* lda,
             const double* t, const MKL_INT* tsize, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DGEMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* t, const MKL_INT* tsize,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgemlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a, const MKL_INT* lda,
             const double* t, const MKL_INT* tsize, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dgemlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* t, const MKL_INT* tsize,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGEMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const double* v, const MKL_INT* ldv, const double* t,
              const MKL_INT* ldt, double* c, const MKL_INT* ldc, double* work,
              MKL_INT* info );
void DGEMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const double* v, const MKL_INT* ldv, const double* t,
               const MKL_INT* ldt, double* c, const MKL_INT* ldc, double* work,
               MKL_INT* info );
void dgemlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const double* v, const MKL_INT* ldv, const double* t,
              const MKL_INT* ldt, double* c, const MKL_INT* ldc, double* work,
              MKL_INT* info );
void dgemlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const double* v, const MKL_INT* ldv, const double* t,
               const MKL_INT* ldt, double* c, const MKL_INT* ldc, double* work,
               MKL_INT* info );

void DGEQR( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
            double* t, const MKL_INT* tsize, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void DGEQR_( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* t, const MKL_INT* tsize, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgeqr( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
            double* t, const MKL_INT* tsize, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void dgeqr_( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* t, const MKL_INT* tsize, double* work,
             const MKL_INT* lwork, MKL_INT* info );

void DLAMSWLQ( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda,
               const double* t, const MKL_INT* ldt, double* c,
               const MKL_INT* ldc, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void DLAMSWLQ_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, double* a, const MKL_INT* lda,
                const double* t, const MKL_INT* ldt, double* c,
                const MKL_INT* ldc, double* work, const MKL_INT* lwork,
                MKL_INT* info );
void dlamswlq( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda,
               const double* t, const MKL_INT* ldt, double* c,
               const MKL_INT* ldc, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dlamswlq_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, double* a, const MKL_INT* lda,
                const double* t, const MKL_INT* ldt, double* c,
                const MKL_INT* ldc, double* work, const MKL_INT* lwork,
                MKL_INT* info );

void DLAMTSQR( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda,
               const double* t, const MKL_INT* ldt, double* c,
               const MKL_INT* ldc, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void DLAMTSQR_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, double* a, const MKL_INT* lda,
                const double* t, const MKL_INT* ldt, double* c,
                const MKL_INT* ldc, double* work, const MKL_INT* lwork,
                MKL_INT* info );
void dlamtsqr( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda,
               const double* t, const MKL_INT* ldt, double* c,
               const MKL_INT* ldc, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dlamtsqr_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, double* a, const MKL_INT* lda,
                const double* t, const MKL_INT* ldt, double* c,
                const MKL_INT* ldc, double* work, const MKL_INT* lwork,
                MKL_INT* info );

void DLASWLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
              const MKL_INT* ldt, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void DLASWLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
               const MKL_INT* ldt, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dlaswlq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
              const MKL_INT* ldt, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dlaswlq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
               const MKL_INT* ldt, double* work, const MKL_INT* lwork,
               MKL_INT* info );

void DLATSQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
              const MKL_INT* ldt, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void DLATSQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
               const MKL_INT* ldt, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dlatsqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
              const MKL_INT* ldt, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dlatsqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, double* a, const MKL_INT* lda, double* t,
               const MKL_INT* ldt, double* work, const MKL_INT* lwork,
               MKL_INT* info );

void DTPLQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* t, const MKL_INT* ldt, double* work,
             MKL_INT* info );
void DTPLQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* t, const MKL_INT* ldt, double* work,
              MKL_INT* info );
void dtplqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* t, const MKL_INT* ldt, double* work,
             MKL_INT* info );
void dtplqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* t, const MKL_INT* ldt, double* work,
              MKL_INT* info );

void DTPLQT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* t,
              const MKL_INT* ldt, MKL_INT* info );
void DTPLQT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
               const MKL_INT* lda, double* b, const MKL_INT* ldb, double* t,
               const MKL_INT* ldt, MKL_INT* info );
void dtplqt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* t,
              const MKL_INT* ldt, MKL_INT* info );
void dtplqt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
               const MKL_INT* lda, double* b, const MKL_INT* ldb, double* t,
               const MKL_INT* ldt, MKL_INT* info );

void DTPMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* work,
              MKL_INT* info );
void DTPMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const double* v, const MKL_INT* ldv,
               const double* t, const MKL_INT* ldt, double* a,
               const MKL_INT* lda, double* b, const MKL_INT* ldb, double* work,
               MKL_INT* info );
void dtpmlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* work,
              MKL_INT* info );
void dtpmlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const double* v, const MKL_INT* ldv,
               const double* t, const MKL_INT* ldt, double* a,
               const MKL_INT* lda, double* b, const MKL_INT* ldb, double* work,
               MKL_INT* info );

void SGELQ( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
            float* t, const MKL_INT* tsize, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void SGELQ_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* t, const MKL_INT* tsize, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgelq( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
            float* t, const MKL_INT* tsize, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void sgelq_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* t, const MKL_INT* tsize, float* work,
             const MKL_INT* lwork, MKL_INT* info );

void DGETSLS( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void DGETSLS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
               const MKL_INT* ldb, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dgetsls( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dgetsls_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
               const MKL_INT* ldb, double* work, const MKL_INT* lwork,
               MKL_INT* info );

void SGELQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, float* a,
             const MKL_INT* lda, float* t, const MKL_INT* ldt, float* work,
             MKL_INT* info );
void SGELQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, float* a,
              const MKL_INT* lda, float* t, const MKL_INT* ldt, float* work,
              MKL_INT* info );
void sgelqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, float* a,
             const MKL_INT* lda, float* t, const MKL_INT* ldt, float* work,
             MKL_INT* info );
void sgelqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb, float* a,
              const MKL_INT* lda, float* t, const MKL_INT* ldt, float* work,
              MKL_INT* info );

void SGELQT3( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt, MKL_INT* info );
void SGELQT3_( const MKL_INT* m, const MKL_INT* n, float* a,
               const MKL_INT* lda, float* t, const MKL_INT* ldt,
               MKL_INT* info );
void sgelqt3( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt, MKL_INT* info );
void sgelqt3_( const MKL_INT* m, const MKL_INT* n, float* a,
               const MKL_INT* lda, float* t, const MKL_INT* ldt,
               MKL_INT* info );

void SGEMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const float* v, const MKL_INT* ldv, const float* t,
              const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );
void SGEMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const float* v, const MKL_INT* ldv, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               MKL_INT* info );
void sgemlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const float* v, const MKL_INT* ldv, const float* t,
              const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );
void sgemlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const float* v, const MKL_INT* ldv, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               MKL_INT* info );

void SGEQR( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
            float* t, const MKL_INT* tsize, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void SGEQR_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* t, const MKL_INT* tsize, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgeqr( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
            float* t, const MKL_INT* tsize, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void sgeqr_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* t, const MKL_INT* tsize, float* work,
             const MKL_INT* lwork, MKL_INT* info );

void SGETSLS( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void SGETSLS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
               const MKL_INT* ldb, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void sgetsls( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sgetsls_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
               const MKL_INT* ldb, float* work, const MKL_INT* lwork,
               MKL_INT* info );

void SLAMTSQR( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void SLAMTSQR_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, float* a, const MKL_INT* lda,
                const float* t, const MKL_INT* ldt, float* c,
                const MKL_INT* ldc, float* work, const MKL_INT* lwork,
                MKL_INT* info );
void slamtsqr( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void slamtsqr_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, float* a, const MKL_INT* lda,
                const float* t, const MKL_INT* ldt, float* c,
                const MKL_INT* ldc, float* work, const MKL_INT* lwork,
                MKL_INT* info );

void SLASWLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
              const MKL_INT* ldt, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void SLASWLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
               const MKL_INT* ldt, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void slaswlq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
              const MKL_INT* ldt, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void slaswlq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
               const MKL_INT* ldt, float* work, const MKL_INT* lwork,
               MKL_INT* info );

void STPLQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* t, const MKL_INT* ldt, float* work,
             MKL_INT* info );
void STPLQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* t, const MKL_INT* ldt, float* work,
              MKL_INT* info );
void stplqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* t, const MKL_INT* ldt, float* work,
             MKL_INT* info );
void stplqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* t, const MKL_INT* ldt, float* work,
              MKL_INT* info );

void STPMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const float* v, const MKL_INT* ldv,
              const float* t, const MKL_INT* ldt, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, float* work, MKL_INT* info );
void STPMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const float* v, const MKL_INT* ldv,
               const float* t, const MKL_INT* ldt, float* a,
               const MKL_INT* lda, float* b, const MKL_INT* ldb, float* work,
               MKL_INT* info );
void stpmlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const float* v, const MKL_INT* ldv,
              const float* t, const MKL_INT* ldt, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, float* work, MKL_INT* info );
void stpmlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const float* v, const MKL_INT* ldv,
               const float* t, const MKL_INT* ldt, float* a,
               const MKL_INT* lda, float* b, const MKL_INT* ldb, float* work,
               MKL_INT* info );

void ZGELQ( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
            MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGELQ_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgelq( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
            MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgelq_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void SGEMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a, const MKL_INT* lda,
             const float* t, const MKL_INT* tsize, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGEMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a, const MKL_INT* lda,
              const float* t, const MKL_INT* tsize, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sgemlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a, const MKL_INT* lda,
             const float* t, const MKL_INT* tsize, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgemlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a, const MKL_INT* lda,
              const float* t, const MKL_INT* tsize, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SLAMSWLQ( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void SLAMSWLQ_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, float* a, const MKL_INT* lda,
                const float* t, const MKL_INT* ldt, float* c,
                const MKL_INT* ldc, float* work, const MKL_INT* lwork,
                MKL_INT* info );
void slamswlq( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void slamswlq_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, float* a, const MKL_INT* lda,
                const float* t, const MKL_INT* ldt, float* c,
                const MKL_INT* ldc, float* work, const MKL_INT* lwork,
                MKL_INT* info );

void SLATSQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
              const MKL_INT* ldt, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void SLATSQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
               const MKL_INT* ldt, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void slatsqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
              const MKL_INT* ldt, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void slatsqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, float* a, const MKL_INT* lda, float* t,
               const MKL_INT* ldt, float* work, const MKL_INT* lwork,
               MKL_INT* info );

void STPLQT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* t,
              const MKL_INT* ldt, MKL_INT* info );
void STPLQT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
               const MKL_INT* lda, float* b, const MKL_INT* ldb, float* t,
               const MKL_INT* ldt, MKL_INT* info );
void stplqt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* t,
              const MKL_INT* ldt, MKL_INT* info );
void stplqt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
               const MKL_INT* lda, float* b, const MKL_INT* ldb, float* t,
               const MKL_INT* ldt, MKL_INT* info );

void ZGELQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );
void ZGELQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );
void zgelqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );
void zgelqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );

void ZGELQT3( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_INT* info );
void ZGELQT3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
               MKL_INT* info );
void zgelqt3( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_INT* info );
void zgelqt3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
               MKL_INT* info );

void ZGEMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* t,
             const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGEMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* t,
              const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgemlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* t,
             const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgemlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* t,
              const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZGEMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void ZGEMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
               const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zgemlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
              const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zgemlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
               const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );

void ZGEQR( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
            MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGEQR_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgeqr( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
            MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgeqr_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* tsize,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZGETSLS( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZGETSLS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zgetsls( const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgetsls_( const char* trans, const MKL_INT* m, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZLAMSWLQ( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
               const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );
void ZLAMSWLQ_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
                const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void zlamswlq( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
               const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );
void zlamswlq_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
                const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );

void ZLAMTSQR( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
               const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );
void ZLAMTSQR_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
                const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void zlamtsqr( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
               const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );
void zlamtsqr_( const char* side, const char* trans, const MKL_INT* m,
                const MKL_INT* n, const MKL_INT* k, const MKL_INT* mb,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
                const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );

void ZLASWLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZLASWLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zlaswlq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zlaswlq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZLATSQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZLATSQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zlatsqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
              const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zlatsqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* mb,
               const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZTPLQT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );
void ZTPLQT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );
void ztplqt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             const MKL_INT* mb, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );
void ztplqt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              const MKL_INT* mb, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* work, MKL_INT* info );

void ZTPLQT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_INT* info );
void ZTPLQT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* t, const MKL_INT* ldt,
               MKL_INT* info );
void ztplqt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_INT* info );
void ztplqt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* t, const MKL_INT* ldt,
               MKL_INT* info );

void ZTPMLQT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* work, MKL_INT* info );
void ZTPMLQT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, MKL_INT* info );
void ztpmlqt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_INT* mb, const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* work, MKL_INT* info );
void ztpmlqt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
               const MKL_INT* mb, const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, MKL_INT* info );

void CHESV_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void CHESV_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void chesv_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void chesv_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );

void CHETRF_AA( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void CHETRF_AA_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );
void chetrf_aa( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void chetrf_aa_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );

void CHETRS_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void CHETRS_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                 const MKL_Complex8* work, const MKL_INT* lwork,
                 MKL_INT* info );
void chetrs_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void chetrs_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                 const MKL_Complex8* work, const MKL_INT* lwork,
                 MKL_INT* info );

void CLAHEF_AA( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                MKL_Complex8* work, MKL_INT* info );
void CLAHEF_AA_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                 MKL_Complex8* work, MKL_INT* info );
void clahef_aa( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                MKL_Complex8* work, MKL_INT* info );
void clahef_aa_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                 MKL_Complex8* work, MKL_INT* info );

void DLASYF_AA( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, double* a, const MKL_INT* lda,
                MKL_INT* ipiv, double* h, const MKL_INT* ldh, double* work,
                MKL_INT* info );
void DLASYF_AA_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, double* a, const MKL_INT* lda,
                 MKL_INT* ipiv, double* h, const MKL_INT* ldh, double* work,
                 MKL_INT* info );
void dlasyf_aa( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, double* a, const MKL_INT* lda,
                MKL_INT* ipiv, double* h, const MKL_INT* ldh, double* work,
                MKL_INT* info );
void dlasyf_aa_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, double* a, const MKL_INT* lda,
                 MKL_INT* ipiv, double* h, const MKL_INT* ldh, double* work,
                 MKL_INT* info );

void DSYSV_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
               const MKL_INT* ldb, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void DSYSV_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
                const MKL_INT* ldb, double* work, const MKL_INT* lwork,
                MKL_INT* info );
void dsysv_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
               const MKL_INT* ldb, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dsysv_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
                const MKL_INT* ldb, double* work, const MKL_INT* lwork,
                MKL_INT* info );

void DSYTRF_AA( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, MKL_INT* ipiv, double* work,
                const MKL_INT* lwork, MKL_INT* info );
void DSYTRF_AA_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, MKL_INT* ipiv, double* work,
                 const MKL_INT* lwork, MKL_INT* info );
void dsytrf_aa( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, MKL_INT* ipiv, double* work,
                const MKL_INT* lwork, MKL_INT* info );
void dsytrf_aa_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, MKL_INT* ipiv, double* work,
                 const MKL_INT* lwork, MKL_INT* info );

void DSYTRS_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                double* b, const MKL_INT* ldb, const double* work,
                const MKL_INT* lwork, MKL_INT* info );
void DSYTRS_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                 double* b, const MKL_INT* ldb, const double* work,
                 const MKL_INT* lwork, MKL_INT* info );
void dsytrs_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                double* b, const MKL_INT* ldb, const double* work,
                const MKL_INT* lwork, MKL_INT* info );
void dsytrs_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                 double* b, const MKL_INT* ldb, const double* work,
                 const MKL_INT* lwork, MKL_INT* info );

void SLASYF_AA( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
                float* h, const MKL_INT* ldh, float* work, MKL_INT* info );
void SLASYF_AA_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, float* a, const MKL_INT* lda,
                 MKL_INT* ipiv, float* h, const MKL_INT* ldh, float* work,
                 MKL_INT* info );
void slasyf_aa( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
                float* h, const MKL_INT* ldh, float* work, MKL_INT* info );
void slasyf_aa_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, float* a, const MKL_INT* lda,
                 MKL_INT* ipiv, float* h, const MKL_INT* ldh, float* work,
                 MKL_INT* info );

void SSYSV_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               float* a, const MKL_INT* lda, MKL_INT* ipiv, float* b,
               const MKL_INT* ldb, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void SSYSV_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                float* a, const MKL_INT* lda, MKL_INT* ipiv, float* b,
                const MKL_INT* ldb, float* work, const MKL_INT* lwork,
                MKL_INT* info );
void ssysv_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               float* a, const MKL_INT* lda, MKL_INT* ipiv, float* b,
               const MKL_INT* ldb, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void ssysv_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                float* a, const MKL_INT* lda, MKL_INT* ipiv, float* b,
                const MKL_INT* ldb, float* work, const MKL_INT* lwork,
                MKL_INT* info );

void SSYTRF_AA( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, MKL_INT* ipiv, float* work,
                const MKL_INT* lwork, MKL_INT* info );
void SSYTRF_AA_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, MKL_INT* ipiv, float* work,
                 const MKL_INT* lwork, MKL_INT* info );
void ssytrf_aa( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, MKL_INT* ipiv, float* work,
                const MKL_INT* lwork, MKL_INT* info );
void ssytrf_aa_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, MKL_INT* ipiv, float* work,
                 const MKL_INT* lwork, MKL_INT* info );

void SSYTRS_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
                float* b, const MKL_INT* ldb, const float* work,
                const MKL_INT* lwork, MKL_INT* info );
void SSYTRS_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
                 float* b, const MKL_INT* ldb, const float* work,
                 const MKL_INT* lwork, MKL_INT* info );
void ssytrs_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
                float* b, const MKL_INT* ldb, const float* work,
                const MKL_INT* lwork, MKL_INT* info );
void ssytrs_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
                 float* b, const MKL_INT* ldb, const float* work,
                 const MKL_INT* lwork, MKL_INT* info );

void ZHESV_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void ZHESV_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );
void zhesv_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zhesv_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );

void ZHETRF_AA( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );
void ZHETRF_AA_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );
void zhetrf_aa( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );
void zhetrf_aa_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );

void ZHETRS_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                const MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void ZHETRS_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                 const MKL_Complex16* work, const MKL_INT* lwork,
                 MKL_INT* info );
void zhetrs_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                const MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void zhetrs_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                 const MKL_Complex16* work, const MKL_INT* lwork,
                 MKL_INT* info );

void ZLAHEF_AA( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                MKL_Complex16* work, MKL_INT* info );
void ZLAHEF_AA_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                 MKL_Complex16* work, MKL_INT* info );
void zlahef_aa( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                MKL_Complex16* work, MKL_INT* info );
void zlahef_aa_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                 MKL_Complex16* work, MKL_INT* info );

void CGEMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* t,
             const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGEMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* t,
              const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgemqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* t,
             const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgemqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* t,
              const MKL_INT* tsize, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void DGEMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* t, const MKL_INT* tsize,
             double* c, const MKL_INT* ldc, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGEMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* t, const MKL_INT* tsize,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgemqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* t, const MKL_INT* tsize,
             double* c, const MKL_INT* ldc, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgemqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* t, const MKL_INT* tsize,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGEMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* t, const MKL_INT* tsize,
             float* c, const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGEMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* t, const MKL_INT* tsize,
              float* c, const MKL_INT* ldc, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sgemqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* t, const MKL_INT* tsize,
             float* c, const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgemqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* t, const MKL_INT* tsize,
              float* c, const MKL_INT* ldc, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZGEMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* t,
             const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGEMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* t,
              const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgemqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* t,
             const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgemqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* t,
              const MKL_INT* tsize, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void CHECON_3( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               const float* anorm, float* rcond, MKL_Complex8* work,
               MKL_INT* info );
void CHECON_3_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                const float* anorm, float* rcond, MKL_Complex8* work,
                MKL_INT* info );
void checon_3( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               const float* anorm, float* rcond, MKL_Complex8* work,
               MKL_INT* info );
void checon_3_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                const float* anorm, float* rcond, MKL_Complex8* work,
                MKL_INT* info );

void CHESV_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
               MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CHESV_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chesv_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
               MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chesv_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CHETF2_RK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_INT* info );
void CHETF2_RK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_INT* info );
void chetf2_rk( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_INT* info );
void chetf2_rk_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_INT* info );

void CHETRF_RK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CHETRF_RK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetrf_rk( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetrf_rk_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CHETRI_3( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CHETRI_3_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetri_3( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetri_3_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CHETRI_3X( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* nb, MKL_INT* info );
void CHETRI_3X_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, const MKL_Complex8* e,
                 const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* nb,
                 MKL_INT* info );
void chetri_3x( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* nb, MKL_INT* info );
void chetri_3x_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, const MKL_Complex8* e,
                 const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* nb,
                 MKL_INT* info );

void CHETRS_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_INT* info );
void CHETRS_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
                const MKL_INT* ldb, MKL_INT* info );
void chetrs_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_INT* info );
void chetrs_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
                const MKL_INT* ldb, MKL_INT* info );

void CLAHEF_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                const MKL_INT* ldw, MKL_INT* info );
void CLAHEF_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                 const MKL_INT* ldw, MKL_INT* info );
void clahef_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                const MKL_INT* ldw, MKL_INT* info );
void clahef_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                 const MKL_INT* ldw, MKL_INT* info );

void CLARFY( const char* uplo, const MKL_INT* n, const MKL_Complex8* v,
             const MKL_INT* incv, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work );
void CLARFY_( const char* uplo, const MKL_INT* n, const MKL_Complex8* v,
              const MKL_INT* incv, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work );
void clarfy( const char* uplo, const MKL_INT* n, const MKL_Complex8* v,
             const MKL_INT* incv, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work );
void clarfy_( const char* uplo, const MKL_INT* n, const MKL_Complex8* v,
              const MKL_INT* incv, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work );

void CLASYF_AA( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                MKL_Complex8* work, MKL_INT* info );
void CLASYF_AA_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                 MKL_Complex8* work, MKL_INT* info );
void clasyf_aa( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                MKL_Complex8* work, MKL_INT* info );
void clasyf_aa_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex8* h, const MKL_INT* ldh,
                 MKL_Complex8* work, MKL_INT* info );

void CLASYF_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                const MKL_INT* ldw, MKL_INT* info );
void CLASYF_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                 const MKL_INT* ldw, MKL_INT* info );
void clasyf_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                const MKL_INT* ldw, MKL_INT* info );
void clasyf_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda,
                 MKL_Complex8* e, MKL_INT* ipiv, MKL_Complex8* w,
                 const MKL_INT* ldw, MKL_INT* info );

void CSYCON_3( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               const float* anorm, float* rcond, MKL_Complex8* work,
               MKL_INT* info );
void CSYCON_3_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                const float* anorm, float* rcond, MKL_Complex8* work,
                MKL_INT* info );
void csycon_3( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               const float* anorm, float* rcond, MKL_Complex8* work,
               MKL_INT* info );
void csycon_3_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                const float* anorm, float* rcond, MKL_Complex8* work,
                MKL_INT* info );

void CSYCONVF( const char* uplo, const char* way, const MKL_INT* n,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
               MKL_INT* ipiv, MKL_INT* info );
void CSYCONVF_( const char* uplo, const char* way, const MKL_INT* n,
                MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                MKL_INT* ipiv, MKL_INT* info );
void csyconvf( const char* uplo, const char* way, const MKL_INT* n,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
               MKL_INT* ipiv, MKL_INT* info );
void csyconvf_( const char* uplo, const char* way, const MKL_INT* n,
                MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                MKL_INT* ipiv, MKL_INT* info );

void CSYCONVF_ROOK( const char* uplo, const char* way, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void CSYCONVF_ROOK_( const char* uplo, const char* way, const MKL_INT* n,
                     MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                     const MKL_INT* ipiv, MKL_INT* info );
void csyconvf_rook( const char* uplo, const char* way, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void csyconvf_rook_( const char* uplo, const char* way, const MKL_INT* n,
                     MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                     const MKL_INT* ipiv, MKL_INT* info );

void CSYSV_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void CSYSV_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void csysv_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void csysv_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );

void CSYSV_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
               MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CSYSV_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void csysv_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
               MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void csysv_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* e,
                MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CSYTF2_RK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_INT* info );
void CSYTF2_RK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_INT* info );
void csytf2_rk( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_INT* info );
void csytf2_rk_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_INT* info );

void CSYTRF_AA( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void CSYTRF_AA_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );
void csytrf_aa( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void csytrf_aa_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );

void CSYTRF_RK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CSYTRF_RK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void csytrf_rk( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void csytrf_rk_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, MKL_Complex8* e, MKL_INT* ipiv,
                 MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CSYTRI_3( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CSYTRI_3_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void csytri_3( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void csytri_3_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CSYTRI_3X( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* nb, MKL_INT* info );
void CSYTRI_3X_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, const MKL_Complex8* e,
                 const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* nb,
                 MKL_INT* info );
void csytri_3x( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_Complex8* e, const MKL_INT* ipiv,
                MKL_Complex8* work, const MKL_INT* nb, MKL_INT* info );
void csytri_3x_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                 const MKL_INT* lda, const MKL_Complex8* e,
                 const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* nb,
                 MKL_INT* info );

void CSYTRS_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_INT* info );
void CSYTRS_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
                const MKL_INT* ldb, MKL_INT* info );
void csytrs_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_INT* info );
void csytrs_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* e, const MKL_INT* ipiv, MKL_Complex8* b,
                const MKL_INT* ldb, MKL_INT* info );

void CSYTRS_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void CSYTRS_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                 const MKL_Complex8* work, const MKL_INT* lwork,
                 MKL_INT* info );
void csytrs_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* work,
                const MKL_INT* lwork, MKL_INT* info );
void csytrs_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
                 const MKL_Complex8* work, const MKL_INT* lwork,
                 MKL_INT* info );

void DLARFY( const char* uplo, const MKL_INT* n, const double* v,
             const MKL_INT* incv, const double* tau, double* c,
             const MKL_INT* ldc, double* work );
void DLARFY_( const char* uplo, const MKL_INT* n, const double* v,
              const MKL_INT* incv, const double* tau, double* c,
              const MKL_INT* ldc, double* work );
void dlarfy( const char* uplo, const MKL_INT* n, const double* v,
             const MKL_INT* incv, const double* tau, double* c,
             const MKL_INT* ldc, double* work );
void dlarfy_( const char* uplo, const MKL_INT* n, const double* v,
              const MKL_INT* incv, const double* tau, double* c,
              const MKL_INT* ldc, double* work );

void DLASYF_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, double* a, const MKL_INT* lda, double* e,
                MKL_INT* ipiv, double* w, const MKL_INT* ldw, MKL_INT* info );
void DLASYF_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, double* a, const MKL_INT* lda, double* e,
                 MKL_INT* ipiv, double* w, const MKL_INT* ldw, MKL_INT* info );
void dlasyf_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, double* a, const MKL_INT* lda, double* e,
                MKL_INT* ipiv, double* w, const MKL_INT* ldw, MKL_INT* info );
void dlasyf_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, double* a, const MKL_INT* lda, double* e,
                 MKL_INT* ipiv, double* w, const MKL_INT* ldw, MKL_INT* info );

void DSYCON_3( const char* uplo, const MKL_INT* n, const double* a,
               const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
               const double* anorm, double* rcond, double* work,
               MKL_INT* iwork, MKL_INT* info );
void DSYCON_3_( const char* uplo, const MKL_INT* n, const double* a,
                const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                const double* anorm, double* rcond, double* work,
                MKL_INT* iwork, MKL_INT* info );
void dsycon_3( const char* uplo, const MKL_INT* n, const double* a,
               const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
               const double* anorm, double* rcond, double* work,
               MKL_INT* iwork, MKL_INT* info );
void dsycon_3_( const char* uplo, const MKL_INT* n, const double* a,
                const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                const double* anorm, double* rcond, double* work,
                MKL_INT* iwork, MKL_INT* info );

void DSYCONVF( const char* uplo, const char* way, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );
void DSYCONVF_( const char* uplo, const char* way, const MKL_INT* n, double* a,
                const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );
void dsyconvf( const char* uplo, const char* way, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );
void dsyconvf_( const char* uplo, const char* way, const MKL_INT* n, double* a,
                const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );

void DSYCONVF_ROOK( const char* uplo, const char* way, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void DSYCONVF_ROOK_( const char* uplo, const char* way, const MKL_INT* n,
                     double* a, const MKL_INT* lda, double* e,
                     const MKL_INT* ipiv, MKL_INT* info );
void dsyconvf_rook( const char* uplo, const char* way, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void dsyconvf_rook_( const char* uplo, const char* way, const MKL_INT* n,
                     double* a, const MKL_INT* lda, double* e,
                     const MKL_INT* ipiv, MKL_INT* info );

void DSYSV_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               double* a, const MKL_INT* lda, double* e, MKL_INT* ipiv,
               double* b, const MKL_INT* ldb, double* work,
               const MKL_INT* lwork, MKL_INT* info );
void DSYSV_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                double* a, const MKL_INT* lda, double* e, MKL_INT* ipiv,
                double* b, const MKL_INT* ldb, double* work,
                const MKL_INT* lwork, MKL_INT* info );
void dsysv_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               double* a, const MKL_INT* lda, double* e, MKL_INT* ipiv,
               double* b, const MKL_INT* ldb, double* work,
               const MKL_INT* lwork, MKL_INT* info );
void dsysv_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                double* a, const MKL_INT* lda, double* e, MKL_INT* ipiv,
                double* b, const MKL_INT* ldb, double* work,
                const MKL_INT* lwork, MKL_INT* info );

void DSYTF2_RK( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );
void DSYTF2_RK_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );
void dsytf2_rk( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );
void dsytf2_rk_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, double* e, MKL_INT* ipiv, MKL_INT* info );

void DSYTRF_RK( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, double* e, MKL_INT* ipiv, double* work,
                const MKL_INT* lwork, MKL_INT* info );
void DSYTRF_RK_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, double* e, MKL_INT* ipiv, double* work,
                 const MKL_INT* lwork, MKL_INT* info );
void dsytrf_rk( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, double* e, MKL_INT* ipiv, double* work,
                const MKL_INT* lwork, MKL_INT* info );
void dsytrf_rk_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, double* e, MKL_INT* ipiv, double* work,
                 const MKL_INT* lwork, MKL_INT* info );

void DSYTRI_3( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
               double* work, const MKL_INT* lwork, MKL_INT* info );
void DSYTRI_3_( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                double* work, const MKL_INT* lwork, MKL_INT* info );
void dsytri_3( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
               double* work, const MKL_INT* lwork, MKL_INT* info );
void dsytri_3_( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                double* work, const MKL_INT* lwork, MKL_INT* info );

void DSYTRI_3X( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                double* work, const MKL_INT* nb, MKL_INT* info );
void DSYTRI_3X_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                 double* work, const MKL_INT* nb, MKL_INT* info );
void dsytri_3x( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                double* work, const MKL_INT* nb, MKL_INT* info );
void dsytri_3x_( const char* uplo, const MKL_INT* n, double* a,
                 const MKL_INT* lda, const double* e, const MKL_INT* ipiv,
                 double* work, const MKL_INT* nb, MKL_INT* info );

void DSYTRS_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const double* a, const MKL_INT* lda, const double* e,
               const MKL_INT* ipiv, double* b, const MKL_INT* ldb,
               MKL_INT* info );
void DSYTRS_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const double* a, const MKL_INT* lda, const double* e,
                const MKL_INT* ipiv, double* b, const MKL_INT* ldb,
                MKL_INT* info );
void dsytrs_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const double* a, const MKL_INT* lda, const double* e,
               const MKL_INT* ipiv, double* b, const MKL_INT* ldb,
               MKL_INT* info );
void dsytrs_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const double* a, const MKL_INT* lda, const double* e,
                const MKL_INT* ipiv, double* b, const MKL_INT* ldb,
                MKL_INT* info );

void SLARFY( const char* uplo, const MKL_INT* n, const float* v,
             const MKL_INT* incv, const float* tau, float* c,
             const MKL_INT* ldc, float* work );
void SLARFY_( const char* uplo, const MKL_INT* n, const float* v,
              const MKL_INT* incv, const float* tau, float* c,
              const MKL_INT* ldc, float* work );
void slarfy( const char* uplo, const MKL_INT* n, const float* v,
             const MKL_INT* incv, const float* tau, float* c,
             const MKL_INT* ldc, float* work );
void slarfy_( const char* uplo, const MKL_INT* n, const float* v,
              const MKL_INT* incv, const float* tau, float* c,
              const MKL_INT* ldc, float* work );

void SLASYF_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, float* a, const MKL_INT* lda, float* e,
                MKL_INT* ipiv, float* w, const MKL_INT* ldw, MKL_INT* info );
void SLASYF_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, float* a, const MKL_INT* lda, float* e,
                 MKL_INT* ipiv, float* w, const MKL_INT* ldw, MKL_INT* info );
void slasyf_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, float* a, const MKL_INT* lda, float* e,
                MKL_INT* ipiv, float* w, const MKL_INT* ldw, MKL_INT* info );
void slasyf_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, float* a, const MKL_INT* lda, float* e,
                 MKL_INT* ipiv, float* w, const MKL_INT* ldw, MKL_INT* info );

void SSYCON_3( const char* uplo, const MKL_INT* n, const float* a,
               const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
               const float* anorm, float* rcond, float* work, MKL_INT* iwork,
               MKL_INT* info );
void SSYCON_3_( const char* uplo, const MKL_INT* n, const float* a,
                const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                const float* anorm, float* rcond, float* work, MKL_INT* iwork,
                MKL_INT* info );
void ssycon_3( const char* uplo, const MKL_INT* n, const float* a,
               const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
               const float* anorm, float* rcond, float* work, MKL_INT* iwork,
               MKL_INT* info );
void ssycon_3_( const char* uplo, const MKL_INT* n, const float* a,
                const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                const float* anorm, float* rcond, float* work, MKL_INT* iwork,
                MKL_INT* info );

void SSYCONVF( const char* uplo, const char* way, const MKL_INT* n, float* a,
               const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );
void SSYCONVF_( const char* uplo, const char* way, const MKL_INT* n, float* a,
                const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );
void ssyconvf( const char* uplo, const char* way, const MKL_INT* n, float* a,
               const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );
void ssyconvf_( const char* uplo, const char* way, const MKL_INT* n, float* a,
                const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );

void SSYCONVF_ROOK( const char* uplo, const char* way, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void SSYCONVF_ROOK_( const char* uplo, const char* way, const MKL_INT* n,
                     float* a, const MKL_INT* lda, float* e,
                     const MKL_INT* ipiv, MKL_INT* info );
void ssyconvf_rook( const char* uplo, const char* way, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void ssyconvf_rook_( const char* uplo, const char* way, const MKL_INT* n,
                     float* a, const MKL_INT* lda, float* e,
                     const MKL_INT* ipiv, MKL_INT* info );

void SSYSV_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               float* a, const MKL_INT* lda, float* e, MKL_INT* ipiv, float* b,
               const MKL_INT* ldb, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void SSYSV_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                float* a, const MKL_INT* lda, float* e, MKL_INT* ipiv,
                float* b, const MKL_INT* ldb, float* work,
                const MKL_INT* lwork, MKL_INT* info );
void ssysv_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               float* a, const MKL_INT* lda, float* e, MKL_INT* ipiv, float* b,
               const MKL_INT* ldb, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void ssysv_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                float* a, const MKL_INT* lda, float* e, MKL_INT* ipiv,
                float* b, const MKL_INT* ldb, float* work,
                const MKL_INT* lwork, MKL_INT* info );

void SSYTF2_RK( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );
void SSYTF2_RK_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );
void ssytf2_rk( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );
void ssytf2_rk_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, float* e, MKL_INT* ipiv, MKL_INT* info );

void SSYTRF_RK( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, float* e, MKL_INT* ipiv, float* work,
                const MKL_INT* lwork, MKL_INT* info );
void SSYTRF_RK_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, float* e, MKL_INT* ipiv, float* work,
                 const MKL_INT* lwork, MKL_INT* info );
void ssytrf_rk( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, float* e, MKL_INT* ipiv, float* work,
                const MKL_INT* lwork, MKL_INT* info );
void ssytrf_rk_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, float* e, MKL_INT* ipiv, float* work,
                 const MKL_INT* lwork, MKL_INT* info );

void SSYTRI_3( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
               float* work, const MKL_INT* lwork, MKL_INT* info );
void SSYTRI_3_( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                float* work, const MKL_INT* lwork, MKL_INT* info );
void ssytri_3( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
               float* work, const MKL_INT* lwork, MKL_INT* info );
void ssytri_3_( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                float* work, const MKL_INT* lwork, MKL_INT* info );

void SSYTRI_3X( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                float* work, const MKL_INT* nb, MKL_INT* info );
void SSYTRI_3X_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                 float* work, const MKL_INT* nb, MKL_INT* info );
void ssytri_3x( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                float* work, const MKL_INT* nb, MKL_INT* info );
void ssytri_3x_( const char* uplo, const MKL_INT* n, float* a,
                 const MKL_INT* lda, const float* e, const MKL_INT* ipiv,
                 float* work, const MKL_INT* nb, MKL_INT* info );

void SSYTRS_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const float* a, const MKL_INT* lda, const float* e,
               const MKL_INT* ipiv, float* b, const MKL_INT* ldb,
               MKL_INT* info );
void SSYTRS_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const float* a, const MKL_INT* lda, const float* e,
                const MKL_INT* ipiv, float* b, const MKL_INT* ldb,
                MKL_INT* info );
void ssytrs_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const float* a, const MKL_INT* lda, const float* e,
               const MKL_INT* ipiv, float* b, const MKL_INT* ldb,
               MKL_INT* info );
void ssytrs_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const float* a, const MKL_INT* lda, const float* e,
                const MKL_INT* ipiv, float* b, const MKL_INT* ldb,
                MKL_INT* info );

void ZHECON_3( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               const double* anorm, double* rcond, MKL_Complex16* work,
               MKL_INT* info );
void ZHECON_3_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, const double* anorm, double* rcond,
                MKL_Complex16* work, MKL_INT* info );
void zhecon_3( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               const double* anorm, double* rcond, MKL_Complex16* work,
               MKL_INT* info );
void zhecon_3_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, const double* anorm, double* rcond,
                MKL_Complex16* work, MKL_INT* info );

void ZHESV_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
               MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZHESV_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhesv_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
               MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhesv_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZHETF2_RK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_INT* info );
void ZHETF2_RK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_INT* info );
void zhetf2_rk( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_INT* info );
void zhetf2_rk_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_INT* info );

void ZHETRF_RK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZHETRF_RK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrf_rk( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrf_rk_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZHETRI_3( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZHETRI_3_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void zhetri_3( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetri_3_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );

void ZHETRI_3X( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                MKL_INT* info );
void ZHETRI_3X_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, const MKL_Complex16* e,
                 const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                 MKL_INT* info );
void zhetri_3x( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                MKL_INT* info );
void zhetri_3x_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, const MKL_Complex16* e,
                 const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                 MKL_INT* info );

void ZHETRS_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_INT* info );
void ZHETRS_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
                const MKL_INT* ldb, MKL_INT* info );
void zhetrs_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_INT* info );
void zhetrs_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
                const MKL_INT* ldb, MKL_INT* info );

void ZLAHEF_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                const MKL_INT* ldw, MKL_INT* info );
void ZLAHEF_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                 const MKL_INT* ldw, MKL_INT* info );
void zlahef_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                const MKL_INT* ldw, MKL_INT* info );
void zlahef_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                 const MKL_INT* ldw, MKL_INT* info );

void ZLARFY( const char* uplo, const MKL_INT* n, const MKL_Complex16* v,
             const MKL_INT* incv, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work );
void ZLARFY_( const char* uplo, const MKL_INT* n, const MKL_Complex16* v,
              const MKL_INT* incv, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work );
void zlarfy( const char* uplo, const MKL_INT* n, const MKL_Complex16* v,
             const MKL_INT* incv, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work );
void zlarfy_( const char* uplo, const MKL_INT* n, const MKL_Complex16* v,
              const MKL_INT* incv, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work );

void ZLASYF_AA( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                MKL_Complex16* work, MKL_INT* info );
void ZLASYF_AA_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                 MKL_Complex16* work, MKL_INT* info );
void zlasyf_aa( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                MKL_Complex16* work, MKL_INT* info );
void zlasyf_aa_( const char* uplo, const MKL_INT* j1, const MKL_INT* m,
                 const MKL_INT* nb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_INT* ipiv, MKL_Complex16* h, const MKL_INT* ldh,
                 MKL_Complex16* work, MKL_INT* info );

void ZLASYF_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                const MKL_INT* ldw, MKL_INT* info );
void ZLASYF_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                 const MKL_INT* ldw, MKL_INT* info );
void zlasyf_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                const MKL_INT* ldw, MKL_INT* info );
void zlasyf_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                 MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda,
                 MKL_Complex16* e, MKL_INT* ipiv, MKL_Complex16* w,
                 const MKL_INT* ldw, MKL_INT* info );

void ZSYCON_3( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               const double* anorm, double* rcond, MKL_Complex16* work,
               MKL_INT* info );
void ZSYCON_3_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, const double* anorm, double* rcond,
                MKL_Complex16* work, MKL_INT* info );
void zsycon_3( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               const double* anorm, double* rcond, MKL_Complex16* work,
               MKL_INT* info );
void zsycon_3_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, const double* anorm, double* rcond,
                MKL_Complex16* work, MKL_INT* info );

void ZSYCONVF( const char* uplo, const char* way, const MKL_INT* n,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
               MKL_INT* ipiv, MKL_INT* info );
void ZSYCONVF_( const char* uplo, const char* way, const MKL_INT* n,
                MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                MKL_INT* ipiv, MKL_INT* info );
void zsyconvf( const char* uplo, const char* way, const MKL_INT* n,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
               MKL_INT* ipiv, MKL_INT* info );
void zsyconvf_( const char* uplo, const char* way, const MKL_INT* n,
                MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                MKL_INT* ipiv, MKL_INT* info );

void ZSYCONVF_ROOK( const char* uplo, const char* way, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void ZSYCONVF_ROOK_( const char* uplo, const char* way, const MKL_INT* n,
                     MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                     const MKL_INT* ipiv, MKL_INT* info );
void zsyconvf_rook( const char* uplo, const char* way, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                    const MKL_INT* ipiv, MKL_INT* info );
void zsyconvf_rook_( const char* uplo, const char* way, const MKL_INT* n,
                     MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                     const MKL_INT* ipiv, MKL_INT* info );

void ZSYSV_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void ZSYSV_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );
void zsysv_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zsysv_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );

void ZSYSV_RK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
               MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZSYSV_RK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zsysv_rk( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
               MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zsysv_rk_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* e,
                MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZSYTF2_RK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_INT* info );
void ZSYTF2_RK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_INT* info );
void zsytf2_rk( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_INT* info );
void zsytf2_rk_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_INT* info );

void ZSYTRF_AA( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );
void ZSYTRF_AA_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );
void zsytrf_aa( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                const MKL_INT* lwork, MKL_INT* info );
void zsytrf_aa_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );

void ZSYTRF_RK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZSYTRF_RK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zsytrf_rk( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zsytrf_rk_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, MKL_Complex16* e, MKL_INT* ipiv,
                 MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZSYTRI_3( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZSYTRI_3_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void zsytri_3( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_Complex16* e, const MKL_INT* ipiv,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zsytri_3_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );

void ZSYTRI_3X( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                MKL_INT* info );
void ZSYTRI_3X_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, const MKL_Complex16* e,
                 const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                 MKL_INT* info );
void zsytri_3x( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* e,
                const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                MKL_INT* info );
void zsytri_3x_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                 const MKL_INT* lda, const MKL_Complex16* e,
                 const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* nb,
                 MKL_INT* info );

void ZSYTRS_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_INT* info );
void ZSYTRS_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
                const MKL_INT* ldb, MKL_INT* info );
void zsytrs_3( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_INT* info );
void zsytrs_3_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* e, const MKL_INT* ipiv, MKL_Complex16* b,
                const MKL_INT* ldb, MKL_INT* info );

void ZSYTRS_AA( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                const MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void ZSYTRS_AA_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                 const MKL_Complex16* work, const MKL_INT* lwork,
                 MKL_INT* info );
void zsytrs_aa( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                const MKL_Complex16* work, const MKL_INT* lwork,
                MKL_INT* info );
void zsytrs_aa_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
                 const MKL_Complex16* work, const MKL_INT* lwork,
                 MKL_INT* info );

void CHB2ST_KERNELS( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, MKL_Complex8* a,
                     const MKL_INT* lda, MKL_Complex8* v, MKL_Complex8* tau,
                     const MKL_INT* ldvt, const MKL_Complex8* work );
void CHB2ST_KERNELS_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* v,
                      MKL_Complex8* tau, const MKL_INT* ldvt,
                      const MKL_Complex8* work );
void chb2st_kernels( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, MKL_Complex8* a,
                     const MKL_INT* lda, MKL_Complex8* v, MKL_Complex8* tau,
                     const MKL_INT* ldvt, const MKL_Complex8* work );
void chb2st_kernels_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* v,
                      MKL_Complex8* tau, const MKL_INT* ldvt,
                      const MKL_Complex8* work );

void CHBEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                   float* w, MKL_Complex8* z, const MKL_INT* ldz,
                   MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                   MKL_INT* info );
void CHBEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* info );
void chbev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                   float* w, MKL_Complex8* z, const MKL_INT* ldz,
                   MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                   MKL_INT* info );
void chbev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* info );

void CHBEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void CHBEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void chbevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void chbevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void CHBEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                    const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void CHBEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                     const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chbevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                    const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chbevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                     const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void CHEEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   MKL_Complex8* a, const MKL_INT* lda, float* w,
                   MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                   MKL_INT* info );
void CHEEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, float* w,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* info );
void cheev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   MKL_Complex8* a, const MKL_INT* lda, float* w,
                   MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                   MKL_INT* info );
void cheev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, float* w,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* info );

void CHEEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, float* w,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void CHEEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     MKL_Complex8* a, const MKL_INT* lda, float* w,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void cheevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, float* w,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void cheevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     MKL_Complex8* a, const MKL_INT* lda, float* w,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void CHEEVR_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_INT* isuppz, MKL_Complex8* work, const MKL_INT* lwork,
                    float* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void CHEEVR_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_INT* isuppz, MKL_Complex8* work, const MKL_INT* lwork,
                     float* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void cheevr_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_INT* isuppz, MKL_Complex8* work, const MKL_INT* lwork,
                    float* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void cheevr_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_INT* isuppz, MKL_Complex8* work, const MKL_INT* lwork,
                     float* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void CHEEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void CHEEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void cheevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, MKL_Complex8* z, const MKL_INT* ldz,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void cheevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, MKL_Complex8* z, const MKL_INT* ldz,
                     MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void CHEGV_2STAGE( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                   MKL_Complex8* b, const MKL_INT* ldb, float* w,
                   MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                   MKL_INT* info );
void CHEGV_2STAGE_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    MKL_Complex8* b, const MKL_INT* ldb, float* w,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* info );
void chegv_2stage( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                   MKL_Complex8* b, const MKL_INT* ldb, float* w,
                   MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                   MKL_INT* info );
void chegv_2stage_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    MKL_Complex8* b, const MKL_INT* ldb, float* w,
                    MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
                    MKL_INT* info );

void CHETRD_2STAGE( const char* vect, const char* uplo, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
                    MKL_Complex8* tau, MKL_Complex8* hous2,
                    const MKL_INT* lhous2, MKL_Complex8* work,
                    const MKL_INT* lwork, MKL_INT* info );
void CHETRD_2STAGE_( const char* vect, const char* uplo, const MKL_INT* n,
                     MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
                     MKL_Complex8* tau, MKL_Complex8* hous2,
                     const MKL_INT* lhous2, MKL_Complex8* work,
                     const MKL_INT* lwork, MKL_INT* info );
void chetrd_2stage( const char* vect, const char* uplo, const MKL_INT* n,
                    MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
                    MKL_Complex8* tau, MKL_Complex8* hous2,
                    const MKL_INT* lhous2, MKL_Complex8* work,
                    const MKL_INT* lwork, MKL_INT* info );
void chetrd_2stage_( const char* vect, const char* uplo, const MKL_INT* n,
                     MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
                     MKL_Complex8* tau, MKL_Complex8* hous2,
                     const MKL_INT* lhous2, MKL_Complex8* work,
                     const MKL_INT* lwork, MKL_INT* info );

void CHETRD_HB2ST( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                   const MKL_INT* ldab, float* d, float* e, MKL_Complex8* hous,
                   const MKL_INT* lhous, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );
void CHETRD_HB2ST_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                    const MKL_INT* ldab, float* d, float* e,
                    MKL_Complex8* hous, const MKL_INT* lhous,
                    MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetrd_hb2st( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                   const MKL_INT* ldab, float* d, float* e, MKL_Complex8* hous,
                   const MKL_INT* lhous, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );
void chetrd_hb2st_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
                    const MKL_INT* ldab, float* d, float* e,
                    MKL_Complex8* hous, const MKL_INT* lhous,
                    MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CHETRD_HE2HB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* ab,
                   const MKL_INT* ldab, MKL_Complex8* tau, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );
void CHETRD_HE2HB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* ab,
                    const MKL_INT* ldab, MKL_Complex8* tau, MKL_Complex8* work,
                    const MKL_INT* lwork, MKL_INT* info );
void chetrd_he2hb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* ab,
                   const MKL_INT* ldab, MKL_Complex8* tau, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );
void chetrd_he2hb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* ab,
                    const MKL_INT* ldab, MKL_Complex8* tau, MKL_Complex8* work,
                    const MKL_INT* lwork, MKL_INT* info );

void DSB2ST_KERNELS( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, double* a,
                     const MKL_INT* lda, double* v, double* tau,
                     const MKL_INT* ldvt, const double* work );
void DSB2ST_KERNELS_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      double* a, const MKL_INT* lda, double* v, double* tau,
                      const MKL_INT* ldvt, const double* work );
void dsb2st_kernels( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, double* a,
                     const MKL_INT* lda, double* v, double* tau,
                     const MKL_INT* ldvt, const double* work );
void dsb2st_kernels_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      double* a, const MKL_INT* lda, double* v, double* tau,
                      const MKL_INT* ldvt, const double* work );

void DSBEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                   double* w, double* z, const MKL_INT* ldz, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void DSBEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* info );
void dsbev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                   double* w, double* z, const MKL_INT* ldz, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void dsbev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* info );

void DSBEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void DSBEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                     double* w, double* z, const MKL_INT* ldz, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void dsbevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void dsbevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, double* ab, const MKL_INT* ldab,
                     double* w, double* z, const MKL_INT* ldz, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void DSBEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, double* ab,
                    const MKL_INT* ldab, double* q, const MKL_INT* ldq,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void DSBEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, double* ab,
                     const MKL_INT* ldab, double* q, const MKL_INT* ldq,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, double* z, const MKL_INT* ldz, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );
void dsbevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, double* ab,
                    const MKL_INT* ldab, double* q, const MKL_INT* ldq,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void dsbevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, double* ab,
                     const MKL_INT* ldab, double* q, const MKL_INT* ldq,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, double* z, const MKL_INT* ldz, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );

void DSYEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   double* a, const MKL_INT* lda, double* w, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void DSYEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* w, double* work,
                    const MKL_INT* lwork, MKL_INT* info );
void dsyev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   double* a, const MKL_INT* lda, double* w, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void dsyev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* w, double* work,
                    const MKL_INT* lwork, MKL_INT* info );

void DSYEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* w, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void DSYEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     double* a, const MKL_INT* lda, double* w, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void dsyevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* w, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void dsyevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     double* a, const MKL_INT* lda, double* w, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void DSYEVR_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, double* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, double* z, const MKL_INT* ldz, MKL_INT* isuppz,
                    double* work, const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void DSYEVR_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, double* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, double* z, const MKL_INT* ldz, MKL_INT* isuppz,
                     double* work, const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void dsyevr_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, double* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, double* z, const MKL_INT* ldz, MKL_INT* isuppz,
                    double* work, const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void dsyevr_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, double* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, double* z, const MKL_INT* ldz, MKL_INT* isuppz,
                     double* work, const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void DSYEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, double* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void DSYEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, double* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, double* z, const MKL_INT* ldz, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );
void dsyevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, double* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, double* z, const MKL_INT* ldz, double* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void dsyevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, double* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, double* z, const MKL_INT* ldz, double* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );

void DSYGV_2STAGE( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
                   const MKL_INT* ldb, double* w, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void DSYGV_2STAGE_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
                    const MKL_INT* ldb, double* w, double* work,
                    const MKL_INT* lwork, MKL_INT* info );
void dsygv_2stage( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
                   const MKL_INT* ldb, double* w, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void dsygv_2stage_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
                    const MKL_INT* ldb, double* w, double* work,
                    const MKL_INT* lwork, MKL_INT* info );

void DSYTRD_2STAGE( const char* vect, const char* uplo, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* d, double* e,
                    double* tau, double* hous2, const MKL_INT* lhous2,
                    double* work, const MKL_INT* lwork, MKL_INT* info );
void DSYTRD_2STAGE_( const char* vect, const char* uplo, const MKL_INT* n,
                     double* a, const MKL_INT* lda, double* d, double* e,
                     double* tau, double* hous2, const MKL_INT* lhous2,
                     double* work, const MKL_INT* lwork, MKL_INT* info );
void dsytrd_2stage( const char* vect, const char* uplo, const MKL_INT* n,
                    double* a, const MKL_INT* lda, double* d, double* e,
                    double* tau, double* hous2, const MKL_INT* lhous2,
                    double* work, const MKL_INT* lwork, MKL_INT* info );
void dsytrd_2stage_( const char* vect, const char* uplo, const MKL_INT* n,
                     double* a, const MKL_INT* lda, double* d, double* e,
                     double* tau, double* hous2, const MKL_INT* lhous2,
                     double* work, const MKL_INT* lwork, MKL_INT* info );

void DSYTRD_SB2ST( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, double* ab,
                   const MKL_INT* ldab, double* d, double* e, double* hous,
                   const MKL_INT* lhous, double* work, const MKL_INT* lwork,
                   MKL_INT* info );
void DSYTRD_SB2ST_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, double* ab,
                    const MKL_INT* ldab, double* d, double* e, double* hous,
                    const MKL_INT* lhous, double* work, const MKL_INT* lwork,
                    MKL_INT* info );
void dsytrd_sb2st( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, double* ab,
                   const MKL_INT* ldab, double* d, double* e, double* hous,
                   const MKL_INT* lhous, double* work, const MKL_INT* lwork,
                   MKL_INT* info );
void dsytrd_sb2st_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, double* ab,
                    const MKL_INT* ldab, double* d, double* e, double* hous,
                    const MKL_INT* lhous, double* work, const MKL_INT* lwork,
                    MKL_INT* info );

void DSYTRD_SY2SB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   double* a, const MKL_INT* lda, double* ab,
                   const MKL_INT* ldab, double* tau, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void DSYTRD_SY2SB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    double* a, const MKL_INT* lda, double* ab,
                    const MKL_INT* ldab, double* tau, double* work,
                    const MKL_INT* lwork, MKL_INT* info );
void dsytrd_sy2sb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   double* a, const MKL_INT* lda, double* ab,
                   const MKL_INT* ldab, double* tau, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void dsytrd_sy2sb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    double* a, const MKL_INT* lda, double* ab,
                    const MKL_INT* ldab, double* tau, double* work,
                    const MKL_INT* lwork, MKL_INT* info );

MKL_INT IPARAM2STAGE( const MKL_INT* ispec, const char* name, const char* opts,
                      const MKL_INT* ni, const MKL_INT* nbi,
                      const MKL_INT* ibi, const MKL_INT* nxi );
MKL_INT IPARAM2STAGE_( const MKL_INT* ispec, const char* name,
                       const char* opts, const MKL_INT* ni, const MKL_INT* nbi,
                       const MKL_INT* ibi, const MKL_INT* nxi );
MKL_INT iparam2stage( const MKL_INT* ispec, const char* name, const char* opts,
                      const MKL_INT* ni, const MKL_INT* nbi,
                      const MKL_INT* ibi, const MKL_INT* nxi );
MKL_INT iparam2stage_( const MKL_INT* ispec, const char* name,
                       const char* opts, const MKL_INT* ni, const MKL_INT* nbi,
                       const MKL_INT* ibi, const MKL_INT* nxi );

void SSB2ST_KERNELS( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, float* a,
                     const MKL_INT* lda, float* v, float* tau,
                     const MKL_INT* ldvt, const float* work );
void SSB2ST_KERNELS_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      float* a, const MKL_INT* lda, float* v, float* tau,
                      const MKL_INT* ldvt, const float* work );
void ssb2st_kernels( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, float* a,
                     const MKL_INT* lda, float* v, float* tau,
                     const MKL_INT* ldvt, const float* work );
void ssb2st_kernels_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      float* a, const MKL_INT* lda, float* v, float* tau,
                      const MKL_INT* ldvt, const float* work );

void SSBEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
                   float* z, const MKL_INT* ldz, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void SSBEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, float* ab, const MKL_INT* ldab,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* info );
void ssbev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
                   float* z, const MKL_INT* ldz, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void ssbev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, float* ab, const MKL_INT* ldab,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* info );

void SSBEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, float* ab, const MKL_INT* ldab,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void SSBEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, float* ab, const MKL_INT* ldab,
                     float* w, float* z, const MKL_INT* ldz, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void ssbevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, float* ab, const MKL_INT* ldab,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void ssbevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, float* ab, const MKL_INT* ldab,
                     float* w, float* z, const MKL_INT* ldz, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void SSBEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, float* ab,
                    const MKL_INT* ldab, float* q, const MKL_INT* ldq,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void SSBEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, float* ab,
                     const MKL_INT* ldab, float* q, const MKL_INT* ldq,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, float* z, const MKL_INT* ldz, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );
void ssbevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, float* ab,
                    const MKL_INT* ldab, float* q, const MKL_INT* ldq,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void ssbevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, float* ab,
                     const MKL_INT* ldab, float* q, const MKL_INT* ldq,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, float* z, const MKL_INT* ldz, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );

void SSYEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   float* a, const MKL_INT* lda, float* w, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void SSYEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* w, float* work,
                    const MKL_INT* lwork, MKL_INT* info );
void ssyev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   float* a, const MKL_INT* lda, float* w, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void ssyev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* w, float* work,
                    const MKL_INT* lwork, MKL_INT* info );

void SSYEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* w, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void SSYEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     float* a, const MKL_INT* lda, float* w, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void ssyevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* w, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void ssyevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     float* a, const MKL_INT* lda, float* w, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void SSYEVR_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, float* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
                    float* work, const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void SSYEVR_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, float* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
                     float* work, const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void ssyevr_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, float* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
                    float* work, const MKL_INT* lwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void ssyevr_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, float* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
                     float* work, const MKL_INT* lwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void SSYEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, float* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void SSYEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, float* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, float* z, const MKL_INT* ldz, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );
void ssyevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, float* a, const MKL_INT* lda,
                    const float* vl, const float* vu, const MKL_INT* il,
                    const MKL_INT* iu, const float* abstol, MKL_INT* m,
                    float* w, float* z, const MKL_INT* ldz, float* work,
                    const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                    MKL_INT* info );
void ssyevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, float* a, const MKL_INT* lda,
                     const float* vl, const float* vu, const MKL_INT* il,
                     const MKL_INT* iu, const float* abstol, MKL_INT* m,
                     float* w, float* z, const MKL_INT* ldz, float* work,
                     const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
                     MKL_INT* info );

void SSYGV_2STAGE( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
                   const MKL_INT* ldb, float* w, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void SSYGV_2STAGE_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
                    const MKL_INT* ldb, float* w, float* work,
                    const MKL_INT* lwork, MKL_INT* info );
void ssygv_2stage( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
                   const MKL_INT* ldb, float* w, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void ssygv_2stage_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
                    const MKL_INT* ldb, float* w, float* work,
                    const MKL_INT* lwork, MKL_INT* info );

void SSYTRD_2STAGE( const char* vect, const char* uplo, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* d, float* e,
                    float* tau, float* hous2, const MKL_INT* lhous2,
                    float* work, const MKL_INT* lwork, MKL_INT* info );
void SSYTRD_2STAGE_( const char* vect, const char* uplo, const MKL_INT* n,
                     float* a, const MKL_INT* lda, float* d, float* e,
                     float* tau, float* hous2, const MKL_INT* lhous2,
                     float* work, const MKL_INT* lwork, MKL_INT* info );
void ssytrd_2stage( const char* vect, const char* uplo, const MKL_INT* n,
                    float* a, const MKL_INT* lda, float* d, float* e,
                    float* tau, float* hous2, const MKL_INT* lhous2,
                    float* work, const MKL_INT* lwork, MKL_INT* info );
void ssytrd_2stage_( const char* vect, const char* uplo, const MKL_INT* n,
                     float* a, const MKL_INT* lda, float* d, float* e,
                     float* tau, float* hous2, const MKL_INT* lhous2,
                     float* work, const MKL_INT* lwork, MKL_INT* info );

void SSYTRD_SB2ST( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, float* ab,
                   const MKL_INT* ldab, float* d, float* e, float* hous,
                   const MKL_INT* lhous, float* work, const MKL_INT* lwork,
                   MKL_INT* info );
void SSYTRD_SB2ST_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, float* ab,
                    const MKL_INT* ldab, float* d, float* e, float* hous,
                    const MKL_INT* lhous, float* work, const MKL_INT* lwork,
                    MKL_INT* info );
void ssytrd_sb2st( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, float* ab,
                   const MKL_INT* ldab, float* d, float* e, float* hous,
                   const MKL_INT* lhous, float* work, const MKL_INT* lwork,
                   MKL_INT* info );
void ssytrd_sb2st_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, float* ab,
                    const MKL_INT* ldab, float* d, float* e, float* hous,
                    const MKL_INT* lhous, float* work, const MKL_INT* lwork,
                    MKL_INT* info );

void SSYTRD_SY2SB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   float* a, const MKL_INT* lda, float* ab,
                   const MKL_INT* ldab, float* tau, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void SSYTRD_SY2SB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    float* a, const MKL_INT* lda, float* ab,
                    const MKL_INT* ldab, float* tau, float* work,
                    const MKL_INT* lwork, MKL_INT* info );
void ssytrd_sy2sb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   float* a, const MKL_INT* lda, float* ab,
                   const MKL_INT* ldab, float* tau, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void ssytrd_sy2sb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    float* a, const MKL_INT* lda, float* ab,
                    const MKL_INT* ldab, float* tau, float* work,
                    const MKL_INT* lwork, MKL_INT* info );

void ZHB2ST_KERNELS( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, MKL_Complex16* a,
                     const MKL_INT* lda, MKL_Complex16* v, MKL_Complex16* tau,
                     const MKL_INT* ldvt, const MKL_Complex16* work );
void ZHB2ST_KERNELS_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* v,
                      MKL_Complex16* tau, const MKL_INT* ldvt,
                      const MKL_Complex16* work );
void zhb2st_kernels( const char* uplo, const MKL_INT* wantz,
                     const MKL_INT* ttype, const MKL_INT* st,
                     const MKL_INT* ed, const MKL_INT* sweep, const MKL_INT* n,
                     const MKL_INT* nb, const MKL_INT* ib, MKL_Complex16* a,
                     const MKL_INT* lda, MKL_Complex16* v, MKL_Complex16* tau,
                     const MKL_INT* ldvt, const MKL_Complex16* work );
void zhb2st_kernels_( const char* uplo, const MKL_INT* wantz,
                      const MKL_INT* ttype, const MKL_INT* st,
                      const MKL_INT* ed, const MKL_INT* sweep,
                      const MKL_INT* n, const MKL_INT* nb, const MKL_INT* ib,
                      MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* v,
                      MKL_Complex16* tau, const MKL_INT* ldvt,
                      const MKL_Complex16* work );

void ZHBEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                   double* w, MKL_Complex16* z, const MKL_INT* ldz,
                   MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                   MKL_INT* info );
void ZHBEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* info );
void zhbev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                   double* w, MKL_Complex16* z, const MKL_INT* ldz,
                   MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                   MKL_INT* info );
void zhbev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* info );

void ZHBEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void ZHBEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void zhbevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void zhbevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void ZHBEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                    const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ZHBEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                     const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhbevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                    const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhbevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                     const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void ZHEEV_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                   MKL_Complex16* a, const MKL_INT* lda, double* w,
                   MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                   MKL_INT* info );
void ZHEEV_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, double* w,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* info );
void zheev_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                   MKL_Complex16* a, const MKL_INT* lda, double* w,
                   MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                   MKL_INT* info );
void zheev_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, double* w,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* info );

void ZHEEVD_2STAGE( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, double* w,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void ZHEEVD_2STAGE_( const char* jobz, const char* uplo, const MKL_INT* n,
                     MKL_Complex16* a, const MKL_INT* lda, double* w,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void zheevd_2stage( const char* jobz, const char* uplo, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, double* w,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void zheevd_2stage_( const char* jobz, const char* uplo, const MKL_INT* n,
                     MKL_Complex16* a, const MKL_INT* lda, double* w,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void ZHEEVR_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_INT* isuppz, MKL_Complex16* work, const MKL_INT* lwork,
                    double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void ZHEEVR_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_INT* isuppz, MKL_Complex16* work,
                     const MKL_INT* lwork, double* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );
void zheevr_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_INT* isuppz, MKL_Complex16* work, const MKL_INT* lwork,
                    double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
                    const MKL_INT* liwork, MKL_INT* info );
void zheevr_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_INT* isuppz, MKL_Complex16* work,
                     const MKL_INT* lwork, double* rwork,
                     const MKL_INT* lrwork, MKL_INT* iwork,
                     const MKL_INT* liwork, MKL_INT* info );

void ZHEEVX_2STAGE( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ZHEEVX_2STAGE_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zheevx_2stage( const char* jobz, const char* range, const char* uplo,
                    const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    const double* vl, const double* vu, const MKL_INT* il,
                    const MKL_INT* iu, const double* abstol, MKL_INT* m,
                    double* w, MKL_Complex16* z, const MKL_INT* ldz,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zheevx_2stage_( const char* jobz, const char* range, const char* uplo,
                     const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                     const double* vl, const double* vu, const MKL_INT* il,
                     const MKL_INT* iu, const double* abstol, MKL_INT* m,
                     double* w, MKL_Complex16* z, const MKL_INT* ldz,
                     MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                     MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void ZHEGV_2STAGE( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                   MKL_Complex16* b, const MKL_INT* ldb, double* w,
                   MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                   MKL_INT* info );
void ZHEGV_2STAGE_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    MKL_Complex16* b, const MKL_INT* ldb, double* w,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* info );
void zhegv_2stage( const MKL_INT* itype, const char* jobz, const char* uplo,
                   const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                   MKL_Complex16* b, const MKL_INT* ldb, double* w,
                   MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                   MKL_INT* info );
void zhegv_2stage_( const MKL_INT* itype, const char* jobz, const char* uplo,
                    const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    MKL_Complex16* b, const MKL_INT* ldb, double* w,
                    MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
                    MKL_INT* info );

void ZHETRD_2STAGE( const char* vect, const char* uplo, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, double* d, double* e,
                    MKL_Complex16* tau, MKL_Complex16* hous2,
                    const MKL_INT* lhous2, MKL_Complex16* work,
                    const MKL_INT* lwork, MKL_INT* info );
void ZHETRD_2STAGE_( const char* vect, const char* uplo, const MKL_INT* n,
                     MKL_Complex16* a, const MKL_INT* lda, double* d,
                     double* e, MKL_Complex16* tau, MKL_Complex16* hous2,
                     const MKL_INT* lhous2, MKL_Complex16* work,
                     const MKL_INT* lwork, MKL_INT* info );
void zhetrd_2stage( const char* vect, const char* uplo, const MKL_INT* n,
                    MKL_Complex16* a, const MKL_INT* lda, double* d, double* e,
                    MKL_Complex16* tau, MKL_Complex16* hous2,
                    const MKL_INT* lhous2, MKL_Complex16* work,
                    const MKL_INT* lwork, MKL_INT* info );
void zhetrd_2stage_( const char* vect, const char* uplo, const MKL_INT* n,
                     MKL_Complex16* a, const MKL_INT* lda, double* d,
                     double* e, MKL_Complex16* tau, MKL_Complex16* hous2,
                     const MKL_INT* lhous2, MKL_Complex16* work,
                     const MKL_INT* lwork, MKL_INT* info );

void ZHETRD_HB2ST( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                   const MKL_INT* ldab, double* d, double* e,
                   MKL_Complex16* hous, const MKL_INT* lhous,
                   MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZHETRD_HB2ST_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                    const MKL_INT* ldab, double* d, double* e,
                    MKL_Complex16* hous, const MKL_INT* lhous,
                    MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrd_hb2st( const char* stage1, const char* vect, const char* uplo,
                   const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                   const MKL_INT* ldab, double* d, double* e,
                   MKL_Complex16* hous, const MKL_INT* lhous,
                   MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrd_hb2st_( const char* stage1, const char* vect, const char* uplo,
                    const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
                    const MKL_INT* ldab, double* d, double* e,
                    MKL_Complex16* hous, const MKL_INT* lhous,
                    MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZHETRD_HE2HB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* ab,
                   const MKL_INT* ldab, MKL_Complex16* tau,
                   MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZHETRD_HE2HB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* ab,
                    const MKL_INT* ldab, MKL_Complex16* tau,
                    MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrd_he2hb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                   MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* ab,
                   const MKL_INT* ldab, MKL_Complex16* tau,
                   MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrd_he2hb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* ab,
                    const MKL_INT* ldab, MKL_Complex16* tau,
                    MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void MKL_CGETRFNP( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* info );
void MKL_CGETRFNP_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
                    const MKL_INT* lda, MKL_INT* info );
void mkl_cgetrfnp( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* info );
void mkl_cgetrfnp_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
                    const MKL_INT* lda, MKL_INT* info );

void MKL_DGETRFNP( const MKL_INT* m, const MKL_INT* n, double* a,
                   const MKL_INT* lda, MKL_INT* info );
void MKL_DGETRFNP_( const MKL_INT* m, const MKL_INT* n, double* a,
                    const MKL_INT* lda, MKL_INT* info );
void mkl_dgetrfnp( const MKL_INT* m, const MKL_INT* n, double* a,
                   const MKL_INT* lda, MKL_INT* info );
void mkl_dgetrfnp_( const MKL_INT* m, const MKL_INT* n, double* a,
                    const MKL_INT* lda, MKL_INT* info );

void MKL_SGETRFNP( const MKL_INT* m, const MKL_INT* n, float* a,
                   const MKL_INT* lda, MKL_INT* info );
void MKL_SGETRFNP_( const MKL_INT* m, const MKL_INT* n, float* a,
                    const MKL_INT* lda, MKL_INT* info );
void mkl_sgetrfnp( const MKL_INT* m, const MKL_INT* n, float* a,
                   const MKL_INT* lda, MKL_INT* info );
void mkl_sgetrfnp_( const MKL_INT* m, const MKL_INT* n, float* a,
                    const MKL_INT* lda, MKL_INT* info );

void MKL_ZGETRFNP( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* info );
void MKL_ZGETRFNP_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
                    const MKL_INT* lda, MKL_INT* info );
void mkl_zgetrfnp( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* info );
void mkl_zgetrfnp_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
                    const MKL_INT* lda, MKL_INT* info );

void MKL_CGETRINP( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                   MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void MKL_CGETRINP_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_cgetrinp( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                   MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_cgetrinp_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
                    MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void MKL_DGETRINP( const MKL_INT* n, double* a, const MKL_INT* lda,
                   double* work, const MKL_INT* lwork, MKL_INT* info );
void MKL_DGETRINP_( const MKL_INT* n, double* a, const MKL_INT* lda,
                    double* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_dgetrinp( const MKL_INT* n, double* a, const MKL_INT* lda,
                   double* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_dgetrinp_( const MKL_INT* n, double* a, const MKL_INT* lda,
                    double* work, const MKL_INT* lwork, MKL_INT* info );

void MKL_SGETRINP( const MKL_INT* n, float* a, const MKL_INT* lda, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void MKL_SGETRINP_( const MKL_INT* n, float* a, const MKL_INT* lda,
                    float* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_sgetrinp( const MKL_INT* n, float* a, const MKL_INT* lda, float* work,
                   const MKL_INT* lwork, MKL_INT* info );
void mkl_sgetrinp_( const MKL_INT* n, float* a, const MKL_INT* lda,
                    float* work, const MKL_INT* lwork, MKL_INT* info );

void MKL_ZGETRINP( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                   MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void MKL_ZGETRINP_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_zgetrinp( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                   MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void mkl_zgetrinp_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
                    MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

/* LAPACK 3.6.0 routines */

void CGEJSV( const char* joba, const char* jobu, const char* jobv, const char* jobr,
             const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* sva, MKL_Complex8* u, const MKL_INT* ldu,
             MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork, const MKL_INT* lwork,
             float* rwork, const MKL_INT* lrwork, MKL_INT* iwork, MKL_INT* info );
void CGEJSV_( const char* joba, const char* jobu, const char* jobv, const char* jobr,
              const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, float* sva, MKL_Complex8* u, const MKL_INT* ldu,
              MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork, const MKL_INT* lwork,
              float* rwork, const MKL_INT* lrwork, MKL_INT* iwork, MKL_INT* info );
void cgejsv( const char* joba, const char* jobu, const char* jobv, const char* jobr,
             const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* sva, MKL_Complex8* u, const MKL_INT* ldu,
             MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork, const MKL_INT* lwork,
             float* rwork, const MKL_INT* lrwork, MKL_INT* iwork, MKL_INT* info );
void cgejsv_( const char* joba, const char* jobu, const char* jobv, const char* jobr,
              const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, float* sva, MKL_Complex8* u, const MKL_INT* ldu,
              MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork, const MKL_INT* lwork,
              float* rwork, const MKL_INT* lrwork, MKL_INT* iwork, MKL_INT* info );

void ZGEJSV( const char* joba, const char* jobu, const char* jobv, const char* jobr,
             const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* sva, MKL_Complex16* u,
             const MKL_INT* ldu, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
             MKL_INT* info );
void ZGEJSV_( const char* joba, const char* jobu, const char* jobv, const char* jobr,
              const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, double* sva, MKL_Complex16* u,
              const MKL_INT* ldu, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
              MKL_INT* info );
void zgejsv( const char* joba, const char* jobu, const char* jobv, const char* jobr,
             const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* sva, MKL_Complex16* u,
             const MKL_INT* ldu, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
             MKL_INT* info );
void zgejsv_( const char* joba, const char* jobu, const char* jobv, const char* jobr,
              const char* jobt, const char* jobp, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, double* sva, MKL_Complex16* u,
              const MKL_INT* ldu, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
              MKL_INT* info );

void DGESVDX( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
              double* s, double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
              double* work, const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void DGESVDX_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
               const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
               double* s, double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
               double* work, const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgesvdx( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
              double* s, double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
              double* work, const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgesvdx_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
               const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
               double* s, double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
               double* work, const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void SGESVDX( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s,
              float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void SGESVDX_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl, const float* vu,
               const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s,
               float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt, float* work,
               const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sgesvdx( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s,
              float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sgesvdx_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl, const float* vu,
               const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s,
               float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt, float* work,
               const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void CGESVDX( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
              float* s, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
              MKL_Complex8* work,const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              MKL_INT* info );
void CGESVDX_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, const float* vl,
               const float* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
               float* s, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
               MKL_Complex8* work,const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
               MKL_INT* info );
void cgesvdx( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
              float* s, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
              MKL_Complex8* work,const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              MKL_INT* info );
void cgesvdx_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, const float* vl,
               const float* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
               float* s, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
               MKL_Complex8* work,const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
               MKL_INT* info );

void ZGESVDX( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
              double* s, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
              const MKL_INT* ldvt, MKL_Complex16* work,const MKL_INT* lwork, double* rwork,
              MKL_INT* iwork, MKL_INT* info );
void ZGESVDX_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, const double* vl,
               const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
               double* s, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
               const MKL_INT* ldvt, MKL_Complex16* work,const MKL_INT* lwork, double* rwork,
               MKL_INT* iwork, MKL_INT* info );
void zgesvdx( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
              double* s, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
              const MKL_INT* ldvt, MKL_Complex16* work,const MKL_INT* lwork, double* rwork,
              MKL_INT* iwork, MKL_INT* info );
void zgesvdx_( const char* jobu, const char* jobvt, const char* range, const MKL_INT* m,
               const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, const double* vl,
               const double* vu, const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns,
               double* s, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
               const MKL_INT* ldvt, MKL_Complex16* work,const MKL_INT* lwork, double* rwork,
               MKL_INT* iwork, MKL_INT* info );

void CGESVJ( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* sva,
             const MKL_INT* mv, MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork, MKL_INT* info );
void CGESVJ_( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* sva,
              const MKL_INT* mv, MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork, MKL_INT* info );
void cgesvj( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* sva,
             const MKL_INT* mv, MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork, MKL_INT* info );
void cgesvj_( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* sva,
              const MKL_INT* mv, MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* cwork,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void ZGESVJ( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, double* sva,
             const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* info );
void ZGESVJ_( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, double* sva,
              const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* info );
void zgesvj( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, double* sva,
             const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* info );
void zgesvj_( const char* joba, const char* jobu, const char* jobv, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, double* sva,
              const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* cwork,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void DGGSVD3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alpha,
              double* beta, double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
              double* q, const MKL_INT* ldq, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void DGGSVD3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, double* a,
               const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alpha,
               double* beta, double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
               double* q, const MKL_INT* ldq, double* work, const MKL_INT* lwork,
               MKL_INT* iwork, MKL_INT* info );
void dggsvd3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alpha,
              double* beta, double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
              double* q, const MKL_INT* ldq, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void dggsvd3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, double* a,
               const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alpha,
               double* beta, double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
               double* q, const MKL_INT* ldq, double* work, const MKL_INT* lwork,
               MKL_INT* iwork, MKL_INT* info );

void SGGSVD3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alpha, float* beta,
              float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
              const MKL_INT* ldq, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );
void SGGSVD3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, float* a,
               const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alpha, float* beta,
               float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
               const MKL_INT* ldq, float* work, const MKL_INT* lwork, MKL_INT* iwork,
               MKL_INT* info );
void sggsvd3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alpha, float* beta,
              float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
              const MKL_INT* ldq, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );
void sggsvd3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, float* a,
               const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alpha, float* beta,
               float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
               const MKL_INT* ldq, float* work, const MKL_INT* lwork, MKL_INT* iwork,
               MKL_INT* info );

void CGGSVD3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, float* alpha,
              float* beta, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork, MKL_INT* info );
void CGGSVD3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, float* alpha,
               float* beta, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
               const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
               const MKL_INT* lwork, float* rwork, MKL_INT* iwork, MKL_INT* info );
void cggsvd3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, float* alpha,
              float* beta, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork, MKL_INT* info );
void cggsvd3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, float* alpha,
               float* beta, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
               const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
               const MKL_INT* lwork, float* rwork, MKL_INT* iwork, MKL_INT* info );

void ZGGSVD3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, double* alpha,
              double* beta, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
              const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork, MKL_INT* info );
void ZGGSVD3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, double* alpha,
               double* beta, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
               const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* work,
               const MKL_INT* lwork, double* rwork, MKL_INT* iwork, MKL_INT* info );
void zggsvd3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, double* alpha,
              double* beta, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
              const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork, MKL_INT* info );
void zggsvd3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* p, MKL_INT* k, MKL_INT* l, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, double* alpha,
               double* beta, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
               const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* work,
               const MKL_INT* lwork, double* rwork, MKL_INT* iwork, MKL_INT* info );

void DGGSVP3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb, const double* tola, const double* tolb,
              MKL_INT* k, MKL_INT* l, double* u, const MKL_INT* ldu, double* v,
              const MKL_INT* ldv, double* q, const MKL_INT* ldq, MKL_INT* iwork,
              double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGGSVP3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, double* a, const MKL_INT* lda,
               double* b, const MKL_INT* ldb, const double* tola, const double* tolb,
               MKL_INT* k, MKL_INT* l, double* u, const MKL_INT* ldu, double* v,
               const MKL_INT* ldv, double* q, const MKL_INT* ldq, MKL_INT* iwork,
               double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dggsvp3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb, const double* tola, const double* tolb,
              MKL_INT* k, MKL_INT* l, double* u, const MKL_INT* ldu, double* v,
              const MKL_INT* ldv, double* q, const MKL_INT* ldq, MKL_INT* iwork,
              double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dggsvp3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, double* a, const MKL_INT* lda,
               double* b, const MKL_INT* ldb, const double* tola, const double* tolb,
               MKL_INT* k, MKL_INT* l, double* u, const MKL_INT* ldu, double* v,
               const MKL_INT* ldv, double* q, const MKL_INT* ldq, MKL_INT* iwork,
               double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );

void SGGSVP3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, const float* tola, const float* tolb,
              MKL_INT* k, MKL_INT* l, float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
              float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void SGGSVP3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, float* a, const MKL_INT* lda,
               float* b, const MKL_INT* ldb, const float* tola, const float* tolb,
               MKL_INT* k, MKL_INT* l, float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
               float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void sggsvp3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, const float* tola, const float* tolb,
              MKL_INT* k, MKL_INT* l, float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
              float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sggsvp3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, float* a, const MKL_INT* lda,
               float* b, const MKL_INT* ldb, const float* tola, const float* tolb,
               MKL_INT* k, MKL_INT* l, float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
               float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau, float* work,
               const MKL_INT* lwork, MKL_INT* info );

void CGGSVP3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, const float* tola, const float* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_INT* iwork,
              float* rwork, MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void CGGSVP3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb, const float* tola, const float* tolb,
               MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
               const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_INT* iwork,
               float* rwork, MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );
void cggsvp3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, const float* tola, const float* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_INT* iwork,
              float* rwork, MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cggsvp3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb, const float* tola, const float* tolb,
               MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
               const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq, MKL_INT* iwork,
               float* rwork, MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );

void ZGGSVP3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, const double* tola, const double* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
              const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_INT* iwork,
              double* rwork, MKL_Complex16* tau, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void ZGGSVP3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb, const double* tola, const double* tolb,
               MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
               const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_INT* iwork,
               double* rwork, MKL_Complex16* tau, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );
void zggsvp3( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
              const MKL_INT* p, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, const double* tola, const double* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
              const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_INT* iwork,
              double* rwork, MKL_Complex16* tau, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zggsvp3_( const char* jobu, const char* jobv, const char* jobq, const MKL_INT* m,
               const MKL_INT* p, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb, const double* tola, const double* tolb,
               MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
               const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq, MKL_INT* iwork,
               double* rwork, MKL_Complex16* tau, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );

void CGSVJ0( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
             MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
             const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CGSVJ0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
              MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
              const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cgsvj0( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
             MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
             const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cgsvj0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
              MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
              const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZGSVJ0( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* d, double* sva, const MKL_INT* mv,
             MKL_Complex16* v, const MKL_INT* ldv, const double* eps, const double* sfmin,
             const double* tol, const MKL_INT* nsweep, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZGSVJ0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* d, double* sva, const MKL_INT* mv,
              MKL_Complex16* v, const MKL_INT* ldv, const double* eps, const double* sfmin,
              const double* tol, const MKL_INT* nsweep, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zgsvj0( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* d, double* sva, const MKL_INT* mv,
             MKL_Complex16* v, const MKL_INT* ldv, const double* eps, const double* sfmin,
             const double* tol, const MKL_INT* nsweep, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zgsvj0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* d, double* sva, const MKL_INT* mv,
              MKL_Complex16* v, const MKL_INT* ldv, const double* eps, const double* sfmin,
              const double* tol, const MKL_INT* nsweep, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void CGSVJ1( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
             MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
             const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CGSVJ1_( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
              MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
              const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cgsvj1( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
             MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
             const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cgsvj1_( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* d, float* sva, const MKL_INT* mv,
              MKL_Complex8* v, const MKL_INT* ldv, const float* eps, const float* sfmin,
              const float* tol, const MKL_INT* nsweep, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZGSVJ1( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* d, double* sva,
             const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, const double* eps,
             const double* sfmin, const double* tol, const MKL_INT* nsweep, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZGSVJ1_( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* d, double* sva,
              const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, const double* eps,
              const double* sfmin, const double* tol, const MKL_INT* nsweep, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgsvj1( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* d, double* sva,
             const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, const double* eps,
             const double* sfmin, const double* tol, const MKL_INT* nsweep, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zgsvj1_( const char* jobv, const MKL_INT* m, const MKL_INT* n, const MKL_INT* n1,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* d, double* sva,
              const MKL_INT* mv, MKL_Complex16* v, const MKL_INT* ldv, const double* eps,
              const double* sfmin, const double* tol, const MKL_INT* nsweep, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void CPOTRF2( const char* uplo, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* info );
void CPOTRF2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
               MKL_INT* info );
void cpotrf2( const char* uplo, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* info );
void cpotrf2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
               MKL_INT* info );

void DPOTRF2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* info );
void DPOTRF2_( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
               MKL_INT* info );
void dpotrf2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* info );
void dpotrf2_( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
               MKL_INT* info );

void SPOTRF2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );
void SPOTRF2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );
void spotrf2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );
void spotrf2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );

void ZPOTRF2( const char* uplo, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );
void ZPOTRF2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
               MKL_INT* info );
void zpotrf2( const char* uplo, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );
void zpotrf2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
               MKL_INT* info );

void DBDSVDX( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
              const double* d, const double* e, const double* vl, const double* vu,
              const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, double* s, double* z,
              const MKL_INT* ldz, double* work, MKL_INT* iwork, MKL_INT* info );
void DBDSVDX_( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
               const double* d, const double* e, const double* vl, const double* vu,
               const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, double* s, double* z,
               const MKL_INT* ldz, double* work, MKL_INT* iwork, MKL_INT* info );
void dbdsvdx( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
              const double* d, const double* e, const double* vl, const double* vu,
              const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, double* s, double* z,
              const MKL_INT* ldz, double* work, MKL_INT* iwork, MKL_INT* info );
void dbdsvdx_( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
               const double* d, const double* e, const double* vl, const double* vu,
               const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, double* s, double* z,
               const MKL_INT* ldz, double* work, MKL_INT* iwork, MKL_INT* info );

void SBDSVDX( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
              const float* d, const float* e, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s, float* z,
              const MKL_INT* ldz, float* work, MKL_INT* iwork, MKL_INT* info );
void SBDSVDX_( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
               const float* d, const float* e, const float* vl, const float* vu,
               const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s, float* z,
               const MKL_INT* ldz, float* work, MKL_INT* iwork, MKL_INT* info );
void sbdsvdx( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
              const float* d, const float* e, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s, float* z,
              const MKL_INT* ldz, float* work, MKL_INT* iwork, MKL_INT* info );
void sbdsvdx_( const char* uplo, const char* jobz, const char* range, const MKL_INT* n,
               const float* d, const float* e, const float* vl, const float* vu,
               const MKL_INT* il, const MKL_INT* iu, MKL_INT* ns, float* s, float* z,
               const MKL_INT* ldz, float* work, MKL_INT* iwork, MKL_INT* info );

void CGETRF2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void CGETRF2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
               MKL_INT* ipiv, MKL_INT* info );
void cgetrf2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void cgetrf2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
               MKL_INT* ipiv, MKL_INT* info );

void DGETRF2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void DGETRF2_( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
               MKL_INT* ipiv, MKL_INT* info );
void dgetrf2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void dgetrf2_( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
               MKL_INT* ipiv, MKL_INT* info );

void SGETRF2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_INT* info );
void SGETRF2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_INT* info );
void sgetrf2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_INT* info );
void sgetrf2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
               MKL_INT* info );

void ZGETRF2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void ZGETRF2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
               MKL_INT* ipiv, MKL_INT* info );
void zgetrf2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void zgetrf2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
               MKL_INT* ipiv, MKL_INT* info );

void CGGEV3( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* alpha,
             MKL_Complex8* beta, MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void CGGEV3_( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* alpha,
              MKL_Complex8* beta, MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
              const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );
void cggev3( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* alpha,
             MKL_Complex8* beta, MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void cggev3_( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* alpha,
              MKL_Complex8* beta, MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
              const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );

void ZGGEV3( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* alpha,
             MKL_Complex16* beta, MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void ZGGEV3_( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* alpha,
              MKL_Complex16* beta, MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
              const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );
void zggev3( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* alpha,
             MKL_Complex16* beta, MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zggev3_( const char* jobvl, const char* jobvr, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* alpha,
              MKL_Complex16* beta, MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
              const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );

void DGGEV3( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, double* alphar, double* alphai, double* beta,
             double* vl, const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGGEV3_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb, double* alphar, double* alphai, double* beta,
              double* vl, const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dggev3( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, double* alphar, double* alphai, double* beta,
             double* vl, const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dggev3_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb, double* alphar, double* alphai, double* beta,
              double* vl, const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGGEV3( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, float* alphar, float* alphai, float* beta,
             float* vl, const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SGGEV3_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, float* alphar, float* alphai, float* beta,
              float* vl, const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sggev3( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, float* alphar, float* alphai, float* beta,
             float* vl, const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sggev3_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, float* alphar, float* alphai, float* beta,
              float* vl, const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void CUNM22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNM22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunm22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cunm22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZUNM22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZUNM22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunm22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zunm22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void CGGHD3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGGHD3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgghd3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgghd3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void DGGHD3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGGHD3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgghd3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgghd3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGGHD3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SGGHD3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sgghd3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgghd3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZGGHD3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGGHD3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgghd3( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
             const MKL_INT* ihi, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgghd3_( const char* compq, const char* compz, const MKL_INT* n, const MKL_INT* ilo,
              const MKL_INT* ihi, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void CGGES3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_C_SELECT_FUNCTION_2 selctg,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
             MKL_INT* info );
void CGGES3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_C_SELECT_FUNCTION_2 selctg,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
              MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
              MKL_INT* info );
void cgges3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_C_SELECT_FUNCTION_2 selctg,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
             MKL_INT* info );
void cgges3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_C_SELECT_FUNCTION_2 selctg,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
              MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
              MKL_INT* info );

void ZGGES3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_Z_SELECT_FUNCTION_2 selctg,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
             MKL_INT* info );
void ZGGES3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_Z_SELECT_FUNCTION_2 selctg,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex16* alpha, MKL_Complex16* beta,
              MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
              MKL_INT* info );
void zgges3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_Z_SELECT_FUNCTION_2 selctg,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
             MKL_INT* info );
void zgges3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_Z_SELECT_FUNCTION_2 selctg,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex16* alpha, MKL_Complex16* beta,
              MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
              MKL_INT* info );

void DGGES3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_D_SELECT_FUNCTION_3 selctg,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* sdim, double* alphar, double* alphai, double* beta, double* vsl,
             const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr, double* work,
             const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void DGGES3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_D_SELECT_FUNCTION_3 selctg,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* sdim, double* alphar, double* alphai, double* beta, double* vsl,
              const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr, double* work,
              const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void dgges3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_D_SELECT_FUNCTION_3 selctg,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* sdim, double* alphar, double* alphai, double* beta, double* vsl,
             const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr, double* work,
             const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void dgges3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_D_SELECT_FUNCTION_3 selctg,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* sdim, double* alphar, double* alphai, double* beta, double* vsl,
              const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr, double* work,
              const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );

void SGGES3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_S_SELECT_FUNCTION_3 selctg,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             MKL_INT* sdim, float* alphar, float* alphai, float* beta, float* vsl,
             const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr, float* work,
             const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void SGGES3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_S_SELECT_FUNCTION_3 selctg,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* sdim, float* alphar, float* alphai, float* beta, float* vsl,
              const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr, float* work,
              const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void sgges3( const char* jobvsl, const char* jobvsr, const char* sort, MKL_S_SELECT_FUNCTION_3 selctg,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             MKL_INT* sdim, float* alphar, float* alphai, float* beta, float* vsl,
             const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr, float* work,
             const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void sgges3_( const char* jobvsl, const char* jobvsr, const char* sort, MKL_S_SELECT_FUNCTION_3 selctg,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* sdim, float* alphar, float* alphai, float* beta, float* vsl,
              const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr, float* work,
              const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );

void DORM22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const double* q, const MKL_INT* ldq,
             double* c, const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORM22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const double* q, const MKL_INT* ldq,
              double* c, const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dorm22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const double* q, const MKL_INT* ldq,
             double* c, const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dorm22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const double* q, const MKL_INT* ldq,
              double* c, const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORM22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const float* q, const MKL_INT* ldq,
             float* c, const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORM22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const float* q, const MKL_INT* ldq,
              float* c, const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sorm22( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, const MKL_INT* n2, const float* q, const MKL_INT* ldq,
             float* c, const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sorm22_( const char* side, const char* trans, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, const MKL_INT* n2, const float* q, const MKL_INT* ldq,
              float* c, const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );


/* LAPACK 3.5.0 routines */

void CHECON_ROOK( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                  float* rcond, MKL_Complex8* work, MKL_INT* info );
void CHECON_ROOK_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                   float* rcond, MKL_Complex8* work, MKL_INT* info );
void checon_rook( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                  float* rcond, MKL_Complex8* work, MKL_INT* info );
void checon_rook_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                   float* rcond, MKL_Complex8* work, MKL_INT* info );

void CHESV_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );
void CHESV_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );
void chesv_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );
void chesv_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );

void CHETF2_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void CHETF2_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void chetf2_rook( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void chetf2_rook_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void CHETRF_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );
void CHETRF_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );
void chetrf_rook( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );
void chetrf_rook_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );

void CHETRI_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                  MKL_INT* info );
void CHETRI_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                   MKL_INT* info );
void chetri_rook( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                  MKL_INT* info );
void chetri_rook_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                   MKL_INT* info );

void CHETRS_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CHETRS_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                    const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                    MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void chetrs_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                    const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                    MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void chetrs_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CLAHEF_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void CLAHEF_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clahef_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clahef_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );

void CLASYF_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void CLASYF_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clasyf_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clasyf_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );

void CSYCON_ROOK( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                  float* rcond, MKL_Complex8* work, MKL_INT* info );
void CSYCON_ROOK_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                   float* rcond, MKL_Complex8* work, MKL_INT* info );
void csycon_rook( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                  float* rcond, MKL_Complex8* work, MKL_INT* info );
void csycon_rook_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                   float* rcond, MKL_Complex8* work, MKL_INT* info );

void CSYSV_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );
void CSYSV_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );
void csysv_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                 const MKL_INT* lwork, MKL_INT* info );
void csysv_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );

void CSYTF2_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void CSYTF2_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void csytf2_rook( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void csytf2_rook_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void CSYTRF_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );
void CSYTRF_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );
void csytrf_rook( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                  const MKL_INT* lwork, MKL_INT* info );
void csytrf_rook_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
                   const MKL_INT* lwork, MKL_INT* info );

void CSYTRI_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                  MKL_INT* info );
void CSYTRI_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                   MKL_INT* info );
void csytri_rook( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                  MKL_INT* info );
void csytri_rook_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                   MKL_INT* info );

void CSYTRS_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CSYTRS_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void csytrs_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void csytrs_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void DLASYF_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
                  double* w, const MKL_INT* ldw, MKL_INT* info );
void DLASYF_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
                   double* w, const MKL_INT* ldw, MKL_INT* info );
void dlasyf_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
                  double* w, const MKL_INT* ldw, MKL_INT* info );
void dlasyf_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
                   double* w, const MKL_INT* ldw, MKL_INT* info );

void DSYCON_ROOK( const char* uplo, const MKL_INT* n, const double* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                  double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void DSYCON_ROOK_( const char* uplo, const MKL_INT* n, const double* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                   double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dsycon_rook( const char* uplo, const MKL_INT* n, const double* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                  double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dsycon_rook_( const char* uplo, const MKL_INT* n, const double* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                   double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );

void DSYSV_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, double* a,
                 const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
                 double* work, const MKL_INT* lwork, MKL_INT* info );
void DSYSV_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
                  const MKL_INT* ldb, double* work, const MKL_INT* lwork,
                  MKL_INT* info );
void dsysv_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, double* a,
                 const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
                 double* work, const MKL_INT* lwork, MKL_INT* info );
void dsysv_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
                  const MKL_INT* ldb, double* work, const MKL_INT* lwork,
                  MKL_INT* info );

void DSYTF2_ROOK( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
                  MKL_INT* ipiv, MKL_INT* info );
void DSYTF2_ROOK_( const char* uplo, const MKL_INT* n, double* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void dsytf2_rook( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
                  MKL_INT* ipiv, MKL_INT* info );
void dsytf2_rook_( const char* uplo, const MKL_INT* n, double* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void DSYTRF_ROOK( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
                  MKL_INT* ipiv, double* work, const MKL_INT* lwork,
                  MKL_INT* info );
void DSYTRF_ROOK_( const char* uplo, const MKL_INT* n, double* a,
                   const MKL_INT* lda, MKL_INT* ipiv, double* work,
                   const MKL_INT* lwork, MKL_INT* info );
void dsytrf_rook( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
                  MKL_INT* ipiv, double* work, const MKL_INT* lwork,
                  MKL_INT* info );
void dsytrf_rook_( const char* uplo, const MKL_INT* n, double* a,
                  const MKL_INT* lda, MKL_INT* ipiv, double* work,
                  const MKL_INT* lwork, MKL_INT* info );

void DSYTRI_ROOK( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
                  const MKL_INT* ipiv, double* work, MKL_INT* info );
void DSYTRI_ROOK_( const char* uplo, const MKL_INT* n, double* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, double* work,
                   MKL_INT* info );
void dsytri_rook( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
                  const MKL_INT* ipiv, double* work, MKL_INT* info );
void dsytri_rook_( const char* uplo, const MKL_INT* n, double* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, double* work,
                   MKL_INT* info );

void DSYTRS_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  double* b, const MKL_INT* ldb, MKL_INT* info );
void DSYTRS_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   double* b, const MKL_INT* ldb, MKL_INT* info );
void dsytrs_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  double* b, const MKL_INT* ldb, MKL_INT* info );
void dsytrs_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   double* b, const MKL_INT* ldb, MKL_INT* info );

void SLASYF_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
                  float* w, const MKL_INT* ldw, MKL_INT* info );
void SLASYF_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
                   float* w, const MKL_INT* ldw, MKL_INT* info );
void slasyf_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
                  float* w, const MKL_INT* ldw, MKL_INT* info );
void slasyf_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
                   float* w, const MKL_INT* ldw, MKL_INT* info );

void SSYCON_ROOK( const char* uplo, const MKL_INT* n, const float* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                  float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void SSYCON_ROOK_( const char* uplo, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                   float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void ssycon_rook( const char* uplo, const MKL_INT* n, const float* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                  float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void ssycon_rook_( const char* uplo, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
                   float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );

void SSYSV_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
                 const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
                 float* work, const MKL_INT* lwork, MKL_INT* info );
void SSYSV_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
                  const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
                  float* work, const MKL_INT* lwork, MKL_INT* info );
void ssysv_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
                 const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
                 float* work, const MKL_INT* lwork, MKL_INT* info );
void ssysv_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
                  const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
                  float* work, const MKL_INT* lwork, MKL_INT* info );

void SSYTF2_ROOK( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                  MKL_INT* ipiv, MKL_INT* info );
void SSYTF2_ROOK_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                   MKL_INT* ipiv, MKL_INT* info );
void ssytf2_rook( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                  MKL_INT* ipiv, MKL_INT* info );
void ssytf2_rook_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                   MKL_INT* ipiv, MKL_INT* info );

void SSYTRF_ROOK( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                 MKL_INT* ipiv, float* work, const MKL_INT* lwork, MKL_INT* info );
void SSYTRF_ROOK_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                   MKL_INT* ipiv, float* work, const MKL_INT* lwork,
                   MKL_INT* info );
void ssytrf_rook( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                  MKL_INT* ipiv, float* work, const MKL_INT* lwork, MKL_INT* info );
void ssytrf_rook_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                   MKL_INT* ipiv, float* work, const MKL_INT* lwork,
                   MKL_INT* info );

void SSYTRI_ROOK( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                  const MKL_INT* ipiv, float* work, MKL_INT* info );
void SSYTRI_ROOK_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                   const MKL_INT* ipiv, float* work, MKL_INT* info );
void ssytri_rook( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                  const MKL_INT* ipiv, float* work, MKL_INT* info );
void ssytri_rook_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
                   const MKL_INT* ipiv, float* work, MKL_INT* info );

void SSYTRS_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* b,
                  const MKL_INT* ldb, MKL_INT* info );
void SSYTRS_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   float* b, const MKL_INT* ldb, MKL_INT* info );
void ssytrs_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* b,
                  const MKL_INT* ldb, MKL_INT* info );
void ssytrs_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   float* b, const MKL_INT* ldb, MKL_INT* info );

void ZHECON_ROOK( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                  double* rcond, MKL_Complex16* work, MKL_INT* info );
void ZHECON_ROOK_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                   double* rcond, MKL_Complex16* work, MKL_INT* info );
void zhecon_rook( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                  double* rcond, MKL_Complex16* work, MKL_INT* info );
void zhecon_rook_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                   double* rcond, MKL_Complex16* work, MKL_INT* info );

void ZHESV_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );
void ZHESV_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );
void zhesv_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );
void zhesv_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );

void ZHETF2_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void ZHETF2_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zhetf2_rook( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zhetf2_rook_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void ZHETRF_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );
void ZHETRF_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                   const MKL_INT* lwork, MKL_INT* info );
void zhetrf_rook( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );
void zhetrf_rook_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                   const MKL_INT* lwork, MKL_INT* info );

void ZHETRI_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                  MKL_INT* info );
void ZHETRI_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                   MKL_INT* info );
void zhetri_rook( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                  MKL_INT* info );
void zhetri_rook_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                   MKL_INT* info );

void ZHETRS_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZHETRS_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zhetrs_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zhetrs_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void ZLAHEF_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void ZLAHEF_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlahef_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlahef_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );

void ZLASYF_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void ZLASYF_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlasyf_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                  MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlasyf_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
                   MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                   MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );

void ZSYCON_ROOK( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                  double* rcond, MKL_Complex16* work, MKL_INT* info );
void ZSYCON_ROOK_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                   double* rcond, MKL_Complex16* work, MKL_INT* info );
void zsycon_rook( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                  double* rcond, MKL_Complex16* work, MKL_INT* info );
void zsycon_rook_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
                   double* rcond, MKL_Complex16* work, MKL_INT* info );

void ZSYSV_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );
void ZSYSV_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );
void zsysv_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                 MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                 MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                 const MKL_INT* lwork, MKL_INT* info );
void zsysv_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );

void ZSYTF2_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void ZSYTF2_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zsytf2_rook( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zsytf2_rook_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void ZSYTRF_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );
void ZSYTRF_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                   const MKL_INT* lwork, MKL_INT* info );
void zsytrf_rook( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                  const MKL_INT* lwork, MKL_INT* info );
void zsytrf_rook_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
                   const MKL_INT* lwork, MKL_INT* info );

void ZSYTRI_ROOK( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                  MKL_INT* info );
void ZSYTRI_ROOK_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                   MKL_INT* info );
void zsytri_rook( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                  const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                  MKL_INT* info );
void zsytri_rook_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                   const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                   MKL_INT* info );

void ZSYTRS_ROOK( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZSYTRS_ROOK_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zsytrs_rook( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                  const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                  MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zsytrs_rook_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
                   const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
                   MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void CUNBDB1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNBDB1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunbdb1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunbdb1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNBDB2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNBDB2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunbdb2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunbdb2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNBDB3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNBDB3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunbdb3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunbdb3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNBDB4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* phantom, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void CUNBDB4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* phantom, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );
void cunbdb4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
              MKL_Complex8* phantom, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunbdb4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               MKL_Complex8* taup1, MKL_Complex8* taup2, MKL_Complex8* tauq1,
               MKL_Complex8* phantom, MKL_Complex8* work, const MKL_INT* lwork,
               MKL_INT* info );

void CUNBDB5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
              const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
              MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CUNBDB5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
               const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
               MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void cunbdb5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
              const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
              MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cunbdb5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
               const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
               MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CUNBDB6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
              const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
              MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CUNBDB6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
               const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
               MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void cunbdb6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
              const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
              MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cunbdb6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex8* x1, const MKL_INT* incx1, MKL_Complex8* x2,
               const MKL_INT* incx2, MKL_Complex8* q1, const MKL_INT* ldq1,
               MKL_Complex8* q2, const MKL_INT* ldq2, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CUNCSD2BY1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
                 const MKL_INT* ldx21, float* theta, MKL_Complex8* u1,
                 const MKL_INT* ldu1, MKL_Complex8* u2, const MKL_INT* ldu2,
                 MKL_Complex8* v1t, const MKL_INT* ldv1t, MKL_Complex8* work,
                 const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
                 MKL_INT* iwork, MKL_INT* info );
void CUNCSD2BY1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
                  const MKL_INT* ldx21, float* theta, MKL_Complex8* u1,
                  const MKL_INT* ldu1, MKL_Complex8* u2, const MKL_INT* ldu2,
                  MKL_Complex8* v1t, const MKL_INT* ldv1t, MKL_Complex8* work,
                  const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
                  MKL_INT* iwork, MKL_INT* info );
void cuncsd2by1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
                 const MKL_INT* ldx21, float* theta, MKL_Complex8* u1,
                 const MKL_INT* ldu1, MKL_Complex8* u2, const MKL_INT* ldu2,
                 MKL_Complex8* v1t, const MKL_INT* ldv1t, MKL_Complex8* work,
                 const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
                 MKL_INT* iwork, MKL_INT* info );
void cuncsd2by1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x21,
                  const MKL_INT* ldx21, float* theta, MKL_Complex8* u1,
                  const MKL_INT* ldu1, MKL_Complex8* u2, const MKL_INT* ldu2,
                  MKL_Complex8* v1t, const MKL_INT* ldv1t, MKL_Complex8* work,
                  const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
                  MKL_INT* iwork, MKL_INT* info );

void DORBDB1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void DORBDB1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* work, const MKL_INT* lwork, MKL_INT* info );
void dorbdb1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dorbdb1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* work, const MKL_INT* lwork, MKL_INT* info );

void DORBDB2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void DORBDB2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* work, const MKL_INT* lwork, MKL_INT* info );
void dorbdb2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dorbdb2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* work, const MKL_INT* lwork, MKL_INT* info );

void DORBDB3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void DORBDB3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* work, const MKL_INT* lwork, MKL_INT* info );
void dorbdb3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dorbdb3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* work, const MKL_INT* lwork, MKL_INT* info );

void DORBDB4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* phantom, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void DORBDB4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* phantom, double* work, const MKL_INT* lwork,
               MKL_INT* info );
void dorbdb4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              double* x11, const MKL_INT* ldx11, double* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              double* taup1, double* taup2, double* tauq1,
              double* phantom, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dorbdb4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               double* x11, const MKL_INT* ldx11, double* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               double* taup1, double* taup2, double* tauq1,
               double* phantom, double* work, const MKL_INT* lwork,
               MKL_INT* info );

void DORBDB5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              double* x1, const MKL_INT* incx1, double* x2,
              const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
              double* q2, const MKL_INT* ldq2, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void DORBDB5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               double* x1, const MKL_INT* incx1, double* x2,
               const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
               double* q2, const MKL_INT* ldq2, double* work,
               const MKL_INT* lwork, MKL_INT* info );
void dorbdb5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              double* x1, const MKL_INT* incx1, double* x2,
              const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
              double* q2, const MKL_INT* ldq2, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorbdb5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               double* x1, const MKL_INT* incx1, double* x2,
               const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
               double* q2, const MKL_INT* ldq2, double* work,
               const MKL_INT* lwork, MKL_INT* info );

void DORBDB6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              double* x1, const MKL_INT* incx1, double* x2,
              const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
              double* q2, const MKL_INT* ldq2, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void DORBDB6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               double* x1, const MKL_INT* incx1, double* x2,
               const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
               double* q2, const MKL_INT* ldq2, double* work,
               const MKL_INT* lwork, MKL_INT* info );
void dorbdb6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              double* x1, const MKL_INT* incx1, double* x2,
              const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
              double* q2, const MKL_INT* ldq2, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorbdb6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               double* x1, const MKL_INT* incx1, double* x2,
               const MKL_INT* incx2, double* q1, const MKL_INT* ldq1,
               double* q2, const MKL_INT* ldq2, double* work,
               const MKL_INT* lwork, MKL_INT* info );

void DORCSD2BY1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 double* x11, const MKL_INT* ldx11, double* x21,
                 const MKL_INT* ldx21, double* theta, double* u1,
                 const MKL_INT* ldu1, double* u2, const MKL_INT* ldu2,
                 double* v1t, const MKL_INT* ldv1t, double* work,
                 const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void DORCSD2BY1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  double* x11, const MKL_INT* ldx11, double* x21,
                  const MKL_INT* ldx21, double* theta, double* u1,
                  const MKL_INT* ldu1, double* u2, const MKL_INT* ldu2,
                  double* v1t, const MKL_INT* ldv1t, double* work,
                  const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dorcsd2by1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 double* x11, const MKL_INT* ldx11, double* x21,
                 const MKL_INT* ldx21, double* theta, double* u1,
                 const MKL_INT* ldu1, double* u2, const MKL_INT* ldu2,
                 double* v1t, const MKL_INT* ldv1t, double* work,
                 const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dorcsd2by1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  double* x11, const MKL_INT* ldx11, double* x21,
                  const MKL_INT* ldx21, double* theta, double* u1,
                  const MKL_INT* ldu1, double* u2, const MKL_INT* ldu2,
                  double* v1t, const MKL_INT* ldv1t, double* work,
                  const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void SORBDB1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void SORBDB1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* work, const MKL_INT* lwork, MKL_INT* info );
void sorbdb1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sorbdb1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* work, const MKL_INT* lwork, MKL_INT* info );

void SORBDB2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void SORBDB2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* work, const MKL_INT* lwork, MKL_INT* info );
void sorbdb2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sorbdb2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* work, const MKL_INT* lwork, MKL_INT* info );

void SORBDB3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void SORBDB3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* work, const MKL_INT* lwork, MKL_INT* info );
void sorbdb3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sorbdb3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* work, const MKL_INT* lwork, MKL_INT* info );

void SORBDB4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* phantom, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void SORBDB4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* phantom, float* work, const MKL_INT* lwork,
               MKL_INT* info );
void sorbdb4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              float* x11, const MKL_INT* ldx11, float* x21,
              const MKL_INT* ldx21, float* theta, float* phi,
              float* taup1, float* taup2, float* tauq1,
              float* phantom, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sorbdb4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               float* x11, const MKL_INT* ldx11, float* x21,
               const MKL_INT* ldx21, float* theta, float* phi,
               float* taup1, float* taup2, float* tauq1,
               float* phantom, float* work, const MKL_INT* lwork,
               MKL_INT* info );

void SORBDB5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              float* x1, const MKL_INT* incx1, float* x2,
              const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
              float* q2, const MKL_INT* ldq2, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void SORBDB5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               float* x1, const MKL_INT* incx1, float* x2,
               const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
               float* q2, const MKL_INT* ldq2, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void sorbdb5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              float* x1, const MKL_INT* incx1, float* x2,
              const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
              float* q2, const MKL_INT* ldq2, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorbdb5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               float* x1, const MKL_INT* incx1, float* x2,
               const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
               float* q2, const MKL_INT* ldq2, float* work,
               const MKL_INT* lwork, MKL_INT* info );

void SORBDB6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              float* x1, const MKL_INT* incx1, float* x2,
              const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
              float* q2, const MKL_INT* ldq2, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void SORBDB6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               float* x1, const MKL_INT* incx1, float* x2,
               const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
               float* q2, const MKL_INT* ldq2, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void sorbdb6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              float* x1, const MKL_INT* incx1, float* x2,
              const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
              float* q2, const MKL_INT* ldq2, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorbdb6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               float* x1, const MKL_INT* incx1, float* x2,
               const MKL_INT* incx2, float* q1, const MKL_INT* ldq1,
               float* q2, const MKL_INT* ldq2, float* work,
               const MKL_INT* lwork, MKL_INT* info );

void SORCSD2BY1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 float* x11, const MKL_INT* ldx11, float* x21,
                 const MKL_INT* ldx21, float* theta, float* u1,
                 const MKL_INT* ldu1, float* u2, const MKL_INT* ldu2,
                 float* v1t, const MKL_INT* ldv1t, float* work,
                 const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void SORCSD2BY1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  float* x11, const MKL_INT* ldx11, float* x21,
                  const MKL_INT* ldx21, float* theta, float* u1,
                  const MKL_INT* ldu1, float* u2, const MKL_INT* ldu2,
                  float* v1t, const MKL_INT* ldv1t, float* work,
                  const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sorcsd2by1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 float* x11, const MKL_INT* ldx11, float* x21,
                 const MKL_INT* ldx21, float* theta, float* u1,
                 const MKL_INT* ldu1, float* u2, const MKL_INT* ldu2,
                 float* v1t, const MKL_INT* ldv1t, float* work,
                 const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sorcsd2by1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  float* x11, const MKL_INT* ldx11, float* x21,
                  const MKL_INT* ldx21, float* theta, float* u1,
                  const MKL_INT* ldu1, float* u2, const MKL_INT* ldu2,
                  float* v1t, const MKL_INT* ldv1t, float* work,
                  const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void ZUNBDB1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNBDB1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunbdb1( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunbdb1_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNBDB2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNBDB2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunbdb2( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunbdb2_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNBDB3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNBDB3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunbdb3( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunbdb3_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNBDB4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* phantom, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void ZUNBDB4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* phantom, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );
void zunbdb4( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
              const MKL_INT* ldx21, double* theta, double* phi,
              MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
              MKL_Complex16* phantom, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunbdb4_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
               MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
               const MKL_INT* ldx21, double* theta, double* phi,
               MKL_Complex16* taup1, MKL_Complex16* taup2, MKL_Complex16* tauq1,
               MKL_Complex16* phantom, MKL_Complex16* work, const MKL_INT* lwork,
               MKL_INT* info );

void ZUNBDB5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
              const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
              MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZUNBDB5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
               const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
               MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zunbdb5( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
              const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
              MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zunbdb5_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
               const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
               MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZUNBDB6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
              const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
              MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZUNBDB6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
               const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
               MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zunbdb6( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
              MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
              const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
              MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zunbdb6_( const MKL_INT* m1, const MKL_INT* m2, const MKL_INT* n,
               MKL_Complex16* x1, const MKL_INT* incx1, MKL_Complex16* x2,
               const MKL_INT* incx2, MKL_Complex16* q1, const MKL_INT* ldq1,
               MKL_Complex16* q2, const MKL_INT* ldq2, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZUNCSD2BY1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
                 const MKL_INT* ldx21, double* theta, MKL_Complex16* u1,
                 const MKL_INT* ldu1, MKL_Complex16* u2, const MKL_INT* ldu2,
                 MKL_Complex16* v1t, const MKL_INT* ldv1t, MKL_Complex16* work,
                 const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
                 MKL_INT* iwork, MKL_INT* info );
void ZUNCSD2BY1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
                  const MKL_INT* ldx21, double* theta, MKL_Complex16* u1,
                  const MKL_INT* ldu1, MKL_Complex16* u2, const MKL_INT* ldu2,
                  MKL_Complex16* v1t, const MKL_INT* ldv1t, MKL_Complex16* work,
                  const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
                  MKL_INT* iwork, MKL_INT* info );
void zuncsd2by1( const char* jobu1, const char* jobu2, const char* jobv1t,
                 const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                 MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
                 const MKL_INT* ldx21, double* theta, MKL_Complex16* u1,
                 const MKL_INT* ldu1, MKL_Complex16* u2, const MKL_INT* ldu2,
                 MKL_Complex16* v1t, const MKL_INT* ldv1t, MKL_Complex16* work,
                 const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
                 MKL_INT* iwork, MKL_INT* info );
void zuncsd2by1_( const char* jobu1, const char* jobu2, const char* jobv1t,
                  const MKL_INT* m, const MKL_INT* p, const MKL_INT* q,
                  MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x21,
                  const MKL_INT* ldx21, double* theta, MKL_Complex16* u1,
                  const MKL_INT* ldu1, MKL_Complex16* u2, const MKL_INT* ldu2,
                  MKL_Complex16* v1t, const MKL_INT* ldv1t, MKL_Complex16* work,
                  const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
                  MKL_INT* iwork, MKL_INT* info );

/* LAPACK 3.4.0 routines */

void CGEMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );
void CGEMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt,
               MKL_Complex8* c, const MKL_INT* ldc,
               MKL_Complex8* work, MKL_INT* info );
void cgemqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );
void cgemqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt,
               MKL_Complex8* c, const MKL_INT* ldc,
               MKL_Complex8* work, MKL_INT* info );

void DGEMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt,
              double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void DGEMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const double* v, const MKL_INT* ldv,
               const double* t, const MKL_INT* ldt,
               double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void dgemqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt,
              double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void dgemqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const double* v, const MKL_INT* ldv,
               const double* t, const MKL_INT* ldt,
               double* c, const MKL_INT* ldc, double* work, MKL_INT* info );

void SGEMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const float* v, const MKL_INT* ldv, const float* t,
              const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );
void SGEMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const float* v, const MKL_INT* ldv, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               MKL_INT* info );
void sgemqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const float* v, const MKL_INT* ldv, const float* t,
              const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );
void sgemqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const float* v, const MKL_INT* ldv, const float* t,
               const MKL_INT* ldt, float* c, const MKL_INT* ldc, float* work,
               MKL_INT* info );

void ZGEMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, MKL_INT* info );
void ZGEMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt,
               MKL_Complex16* c, const MKL_INT* ldc,
               MKL_Complex16* work, MKL_INT* info );
void zgemqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, MKL_INT* info );
void zgemqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
               const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt,
               MKL_Complex16* c, const MKL_INT* ldc,
               MKL_Complex16* work, MKL_INT* info );

void CGEQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* work, MKL_INT* info );

void CGEQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* work, MKL_INT* info );

void cgeqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* work, MKL_INT* info );

void cgeqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* work, MKL_INT* info );

void DGEQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             double* a, const MKL_INT* lda,
             double* t, const MKL_INT* ldt,
             double* work, MKL_INT* info );

void DGEQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              double* a, const MKL_INT* lda,
              double* t, const MKL_INT* ldt,
              double* work, MKL_INT* info );

void dgeqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             double* a, const MKL_INT* lda,
             double* t, const MKL_INT* ldt,
             double* work, MKL_INT* info );

void dgeqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              double* a, const MKL_INT* lda,
              double* t, const MKL_INT* ldt,
              double* work, MKL_INT* info );

void SGEQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             float* a, const MKL_INT* lda,
             float* t, const MKL_INT* ldt,
             float* work, MKL_INT* info );

void SGEQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt,
              float* work, MKL_INT* info );

void sgeqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             float* a, const MKL_INT* lda,
             float* t, const MKL_INT* ldt,
             float* work, MKL_INT* info );

void sgeqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt,
              float* work, MKL_INT* info );

void ZGEQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* work, MKL_INT* info );

void ZGEQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* work, MKL_INT* info );

void zgeqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* work, MKL_INT* info );

void zgeqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* work, MKL_INT* info );

void CGEQRT3( const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void CGEQRT3_( const MKL_INT* m, const MKL_INT* n,
               MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void cgeqrt3( const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void cgeqrt3_( const MKL_INT* m, const MKL_INT* n,
               MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void DGEQRT3( const MKL_INT* m, const MKL_INT* n,
              double* a, const MKL_INT* lda,
              double* t, const MKL_INT* ldt, MKL_INT* info );

void DGEQRT3_( const MKL_INT* m, const MKL_INT* n,
               double* a, const MKL_INT* lda,
               double* t, const MKL_INT* ldt, MKL_INT* info );

void dgeqrt3( const MKL_INT* m, const MKL_INT* n,
              double* a, const MKL_INT* lda,
              double* t, const MKL_INT* ldt, MKL_INT* info );

void dgeqrt3_( const MKL_INT* m, const MKL_INT* n,
               double* a, const MKL_INT* lda,
               double* t, const MKL_INT* ldt, MKL_INT* info );

void SGEQRT3( const MKL_INT* m, const MKL_INT* n,
              float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt, MKL_INT* info );

void SGEQRT3_( const MKL_INT* m, const MKL_INT* n,
               float* a, const MKL_INT* lda,
               float* t, const MKL_INT* ldt, MKL_INT* info );

void sgeqrt3( const MKL_INT* m, const MKL_INT* n,
              float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt, MKL_INT* info );

void sgeqrt3_( const MKL_INT* m, const MKL_INT* n,
               float* a, const MKL_INT* lda,
               float* t, const MKL_INT* ldt, MKL_INT* info );

void ZGEQRT3( const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void ZGEQRT3_( const MKL_INT* m, const MKL_INT* n,
               MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void zgeqrt3( const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void zgeqrt3_( const MKL_INT* m, const MKL_INT* n,
               MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void CTPMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* work, MKL_INT* info );

void CTPMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt,
               MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, MKL_INT* info );

void ctpmqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* work, MKL_INT* info );

void ctpmqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const MKL_Complex8* v, const MKL_INT* ldv,
               const MKL_Complex8* t, const MKL_INT* ldt,
               MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* work, MKL_INT* info );

void DTPMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt,
              double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb,
              double* work, MKL_INT* info );

void DTPMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const double* v, const MKL_INT* ldv,
               const double* t, const MKL_INT* ldt,
               double* a, const MKL_INT* lda,
               double* b, const MKL_INT* ldb,
               double* work, MKL_INT* info );

void dtpmqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt,
              double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb,
              double* work, MKL_INT* info );

void dtpmqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const double* v, const MKL_INT* ldv,
               const double* t, const MKL_INT* ldt,
               double* a, const MKL_INT* lda,
               double* b, const MKL_INT* ldb,
               double* work, MKL_INT* info );

void STPMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const float* v, const MKL_INT* ldv,
              const float* t, const MKL_INT* ldt,
              float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb,
              float* work, MKL_INT* info );

void STPMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const float* v, const MKL_INT* ldv,
               const float* t, const MKL_INT* ldt,
               float* a, const MKL_INT* lda,
               float* b, const MKL_INT* ldb,
               float* work, MKL_INT* info );

void stpmqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const float* v, const MKL_INT* ldv,
              const float* t, const MKL_INT* ldt,
              float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb,
              float* work, MKL_INT* info );

void stpmqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const float* v, const MKL_INT* ldv,
               const float* t, const MKL_INT* ldt,
               float* a, const MKL_INT* lda,
               float* b, const MKL_INT* ldb,
               float* work, MKL_INT* info );

void ZTPMQRT( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* work, MKL_INT* info );

void ZTPMQRT_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt,
               MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, MKL_INT* info );

void ztpmqrt( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
              const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* work, MKL_INT* info );

void ztpmqrt_( const char* side, const char* trans, const MKL_INT* m,
               const MKL_INT* n, const MKL_INT* k, const MKL_INT* l, const MKL_INT* nb,
               const MKL_Complex16* v, const MKL_INT* ldv,
               const MKL_Complex16* t, const MKL_INT* ldt,
               MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* work, MKL_INT* info );

void CTPQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* work, MKL_INT* info );

void CTPQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* work, MKL_INT* info );

void ctpqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* work, MKL_INT* info );

void ctpqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* work, MKL_INT* info );

void DTPQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb,
             double* t, const MKL_INT* ldt,
             double* work, MKL_INT* info );

void DTPQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb,
              double* t, const MKL_INT* ldt,
              double* work, MKL_INT* info );

void dtpqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb,
             double* t, const MKL_INT* ldt,
             double* work, MKL_INT* info );

void dtpqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb,
              double* t, const MKL_INT* ldt,
              double* work, MKL_INT* info );

void STPQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb,
             float* t, const MKL_INT* ldt,
             float* work, MKL_INT* info );

void STPQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb,
              float* t, const MKL_INT* ldt,
              float* work, MKL_INT* info );

void stpqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb,
             float* t, const MKL_INT* ldt,
             float* work, MKL_INT* info );

void stpqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb,
              float* t, const MKL_INT* ldt,
              float* work, MKL_INT* info );

void ZTPQRT( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* work, MKL_INT* info );

void ZTPQRT_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* work, MKL_INT* info );

void ztpqrt( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* work, MKL_INT* info );

void ztpqrt_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* work, MKL_INT* info );

void CTPQRT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void CTPQRT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void ctpqrt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void ctpqrt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* t, const MKL_INT* ldt, MKL_INT* info );

void DTPQRT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb,
              double* t, const MKL_INT* ldt, MKL_INT* info );

void DTPQRT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               double* a, const MKL_INT* lda,
               double* b, const MKL_INT* ldb,
               double* t, const MKL_INT* ldt, MKL_INT* info );

void dtpqrt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb,
              double* t, const MKL_INT* ldt, MKL_INT* info );

void dtpqrt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               double* a, const MKL_INT* lda,
               double* b, const MKL_INT* ldb,
               double* t, const MKL_INT* ldt, MKL_INT* info );

void STPQRT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb,
              float* t, const MKL_INT* ldt, MKL_INT* info );

void STPQRT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               float* a, const MKL_INT* lda,
               float* b, const MKL_INT* ldb,
               float* t, const MKL_INT* ldt, MKL_INT* info );

void stpqrt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb,
              float* t, const MKL_INT* ldt, MKL_INT* info );

void stpqrt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               float* a, const MKL_INT* lda,
               float* b, const MKL_INT* ldb,
               float* t, const MKL_INT* ldt, MKL_INT* info );

void ZTPQRT2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void ZTPQRT2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void ztpqrt2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

void ztpqrt2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
               MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* t, const MKL_INT* ldt, MKL_INT* info );

/* LAPACK 3.3.0 routines */

void CBBCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
             MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
             const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
             MKL_Complex8* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
             float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
             float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void CBBCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
              MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
              const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
              MKL_Complex8* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
              float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
              float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void cbbcsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
             MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
             const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
             MKL_Complex8* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
             float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
             float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void cbbcsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
              MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
              const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
              MKL_Complex8* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
              float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
              float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void ZBBCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
             MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
             const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
             MKL_Complex16* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
             double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
             double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void ZBBCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
              MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
              const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
              MKL_Complex16* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
              double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
              double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void zbbcsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
             MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
             const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
             MKL_Complex16* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
             double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
             double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void zbbcsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
              MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
              const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
              MKL_Complex16* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
              double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
              double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void SBBCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
             float* u1, const MKL_INT* ldu1, float* u2,
             const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
             float* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
             float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
             float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void SBBCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
              float* u1, const MKL_INT* ldu1, float* u2,
              const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
              float* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
              float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
              float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void sbbcsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
             float* u1, const MKL_INT* ldu1, float* u2,
             const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
             float* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
             float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
             float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void sbbcsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, float* theta, float* phi,
              float* u1, const MKL_INT* ldu1, float* u2,
              const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
              float* v2t, const MKL_INT* ldv2t, float* b11d, float* b11e,
              float* b12d, float* b12e, float* b21d, float* b21e, float* b22d,
              float* b22e, float* rwork, const MKL_INT* lrwork, MKL_INT* info );

void DBBCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
             double* u1, const MKL_INT* ldu1, double* u2,
             const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
             double* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
             double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
             double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void DBBCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
              double* u1, const MKL_INT* ldu1, double* u2,
              const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
              double* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
              double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
              double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void dbbcsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
             double* u1, const MKL_INT* ldu1, double* u2,
             const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
             double* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
             double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
             double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void dbbcsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, double* theta, double* phi,
              double* u1, const MKL_INT* ldu1, double* u2,
              const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
              double* v2t, const MKL_INT* ldv2t, double* b11d, double* b11e,
              double* b12d, double* b12e, double* b21d, double* b21e, double* b22d,
              double* b22e, double* rwork, const MKL_INT* lrwork, MKL_INT* info );

void CUNBDB( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, MKL_Complex8* x11,
             const MKL_INT* ldx11, MKL_Complex8* x12, const MKL_INT* ldx12,
             MKL_Complex8* x21, const MKL_INT* ldx21, MKL_Complex8* x22,
             const MKL_INT* ldx22, float* theta, float* phi, MKL_Complex8* taup1,
             MKL_Complex8* taup2, MKL_Complex8* tauq1, MKL_Complex8* tauq2,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info);

void CUNBDB_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, MKL_Complex8* x11,
              const MKL_INT* ldx11, MKL_Complex8* x12, const MKL_INT* ldx12,
              MKL_Complex8* x21, const MKL_INT* ldx21, MKL_Complex8* x22,
              const MKL_INT* ldx22, float* theta, float* phi, MKL_Complex8* taup1,
              MKL_Complex8* taup2, MKL_Complex8* tauq1, MKL_Complex8* tauq2,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info);

void cunbdb( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, MKL_Complex8* x11,
             const MKL_INT* ldx11, MKL_Complex8* x12, const MKL_INT* ldx12,
             MKL_Complex8* x21, const MKL_INT* ldx21, MKL_Complex8* x22,
             const MKL_INT* ldx22, float* theta, float* phi, MKL_Complex8* taup1,
             MKL_Complex8* taup2, MKL_Complex8* tauq1, MKL_Complex8* tauq2,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info);

void cunbdb_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, MKL_Complex8* x11,
              const MKL_INT* ldx11, MKL_Complex8* x12, const MKL_INT* ldx12,
              MKL_Complex8* x21, const MKL_INT* ldx21, MKL_Complex8* x22,
              const MKL_INT* ldx22, float* theta, float* phi, MKL_Complex8* taup1,
              MKL_Complex8* taup2, MKL_Complex8* tauq1, MKL_Complex8* tauq2,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info);

void ZUNBDB( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, MKL_Complex16* x11,
             const MKL_INT* ldx11, MKL_Complex16* x12, const MKL_INT* ldx12,
             MKL_Complex16* x21, const MKL_INT* ldx21, MKL_Complex16* x22,
             const MKL_INT* ldx22, double* theta, double* phi, MKL_Complex16* taup1,
             MKL_Complex16* taup2, MKL_Complex16* tauq1, MKL_Complex16* tauq2,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info);

void ZUNBDB_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, MKL_Complex16* x11,
              const MKL_INT* ldx11, MKL_Complex16* x12, const MKL_INT* ldx12,
              MKL_Complex16* x21, const MKL_INT* ldx21, MKL_Complex16* x22,
              const MKL_INT* ldx22, double* theta, double* phi, MKL_Complex16* taup1,
              MKL_Complex16* taup2, MKL_Complex16* tauq1, MKL_Complex16* tauq2,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info);

void zunbdb( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, MKL_Complex16* x11,
             const MKL_INT* ldx11, MKL_Complex16* x12, const MKL_INT* ldx12,
             MKL_Complex16* x21, const MKL_INT* ldx21, MKL_Complex16* x22,
             const MKL_INT* ldx22, double* theta, double* phi, MKL_Complex16* taup1,
             MKL_Complex16* taup2, MKL_Complex16* tauq1, MKL_Complex16* tauq2,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info);

void zunbdb_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, MKL_Complex16* x11,
              const MKL_INT* ldx11, MKL_Complex16* x12, const MKL_INT* ldx12,
              MKL_Complex16* x21, const MKL_INT* ldx21, MKL_Complex16* x22,
              const MKL_INT* ldx22, double* theta, double* phi, MKL_Complex16* taup1,
              MKL_Complex16* taup2, MKL_Complex16* tauq1, MKL_Complex16* tauq2,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info);

void SORBDB( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, float* x11,
             const MKL_INT* ldx11, float* x12, const MKL_INT* ldx12,
             float* x21, const MKL_INT* ldx21, float* x22,
             const MKL_INT* ldx22, float* theta, float* phi, float* taup1,
             float* taup2, float* tauq1, float* tauq2,
             float* work, const MKL_INT* lwork, MKL_INT* info);

void SORBDB_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, float* x11,
              const MKL_INT* ldx11, float* x12, const MKL_INT* ldx12,
              float* x21, const MKL_INT* ldx21, float* x22,
              const MKL_INT* ldx22, float* theta, float* phi, float* taup1,
              float* taup2, float* tauq1, float* tauq2,
              float* work, const MKL_INT* lwork, MKL_INT* info);

void sorbdb( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, float* x11,
             const MKL_INT* ldx11, float* x12, const MKL_INT* ldx12,
             float* x21, const MKL_INT* ldx21, float* x22,
             const MKL_INT* ldx22, float* theta, float* phi, float* taup1,
             float* taup2, float* tauq1, float* tauq2,
             float* work, const MKL_INT* lwork, MKL_INT* info);

void sorbdb_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, float* x11,
              const MKL_INT* ldx11, float* x12, const MKL_INT* ldx12,
              float* x21, const MKL_INT* ldx21, float* x22,
              const MKL_INT* ldx22, float* theta, float* phi, float* taup1,
              float* taup2, float* tauq1, float* tauq2,
              float* work, const MKL_INT* lwork, MKL_INT* info);

void DORBDB( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, double* x11,
             const MKL_INT* ldx11, double* x12, const MKL_INT* ldx12,
             double* x21, const MKL_INT* ldx21, double* x22,
             const MKL_INT* ldx22, double* theta, double* phi, double* taup1,
             double* taup2, double* tauq1, double* tauq2,
             double* work, const MKL_INT* lwork, MKL_INT* info);

void DORBDB_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, double* x11,
              const MKL_INT* ldx11, double* x12, const MKL_INT* ldx12,
              double* x21, const MKL_INT* ldx21, double* x22,
              const MKL_INT* ldx22, double* theta, double* phi, double* taup1,
              double* taup2, double* tauq1, double* tauq2,
              double* work, const MKL_INT* lwork, MKL_INT* info);

void dorbdb( const char* trans, const char* signs, const MKL_INT* M,
             const MKL_INT* P, const MKL_INT* Q, double* x11,
             const MKL_INT* ldx11, double* x12, const MKL_INT* ldx12,
             double* x21, const MKL_INT* ldx21, double* x22,
             const MKL_INT* ldx22, double* theta, double* phi, double* taup1,
             double* taup2, double* tauq1, double* tauq2,
             double* work, const MKL_INT* lwork, MKL_INT* info);

void dorbdb_( const char* trans, const char* signs, const MKL_INT* M,
              const MKL_INT* P, const MKL_INT* Q, double* x11,
              const MKL_INT* ldx11, double* x12, const MKL_INT* ldx12,
              double* x21, const MKL_INT* ldx21, double* x22,
              const MKL_INT* ldx22, double* theta, double* phi, double* taup1,
              double* taup2, double* tauq1, double* tauq2,
              double* work, const MKL_INT* lwork, MKL_INT* info);

void CUNCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x12,
             const MKL_INT* ldx12, MKL_Complex8* x21, const MKL_INT* ldx21,
             MKL_Complex8* x22, const MKL_INT* ldx22, float* theta,
             MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
             const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
             MKL_Complex8* v2t, const MKL_INT* ldv2t, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, MKL_INT* info);

void CUNCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x12,
              const MKL_INT* ldx12, MKL_Complex8* x21, const MKL_INT* ldx21,
              MKL_Complex8* x22, const MKL_INT* ldx22, float* theta,
              MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
              const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
              MKL_Complex8* v2t, const MKL_INT* ldv2t, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, MKL_INT* info);

void cuncsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x12,
             const MKL_INT* ldx12, MKL_Complex8* x21, const MKL_INT* ldx21,
             MKL_Complex8* x22, const MKL_INT* ldx22, float* theta,
             MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
             const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
             MKL_Complex8* v2t, const MKL_INT* ldv2t, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, MKL_INT* info);

void cuncsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              MKL_Complex8* x11, const MKL_INT* ldx11, MKL_Complex8* x12,
              const MKL_INT* ldx12, MKL_Complex8* x21, const MKL_INT* ldx21,
              MKL_Complex8* x22, const MKL_INT* ldx22, float* theta,
              MKL_Complex8* u1, const MKL_INT* ldu1, MKL_Complex8* u2,
              const MKL_INT* ldu2, MKL_Complex8* v1t, const MKL_INT* ldv1t,
              MKL_Complex8* v2t, const MKL_INT* ldv2t, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, MKL_INT* info);

void ZUNCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x12,
             const MKL_INT* ldx12, MKL_Complex16* x21, const MKL_INT* ldx21,
             MKL_Complex16* x22, const MKL_INT* ldx22, double* theta,
             MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
             const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
             MKL_Complex16* v2t, const MKL_INT* ldv2t, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, MKL_INT* info);

void ZUNCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x12,
              const MKL_INT* ldx12, MKL_Complex16* x21, const MKL_INT* ldx21,
              MKL_Complex16* x22, const MKL_INT* ldx22, double* theta,
              MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
              const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
              MKL_Complex16* v2t, const MKL_INT* ldv2t, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, MKL_INT* info);

void zuncsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x12,
             const MKL_INT* ldx12, MKL_Complex16* x21, const MKL_INT* ldx21,
             MKL_Complex16* x22, const MKL_INT* ldx22, double* theta,
             MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
             const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
             MKL_Complex16* v2t, const MKL_INT* ldv2t, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, MKL_INT* info);

void zuncsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              MKL_Complex16* x11, const MKL_INT* ldx11, MKL_Complex16* x12,
              const MKL_INT* ldx12, MKL_Complex16* x21, const MKL_INT* ldx21,
              MKL_Complex16* x22, const MKL_INT* ldx22, double* theta,
              MKL_Complex16* u1, const MKL_INT* ldu1, MKL_Complex16* u2,
              const MKL_INT* ldu2, MKL_Complex16* v1t, const MKL_INT* ldv1t,
              MKL_Complex16* v2t, const MKL_INT* ldv2t, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, MKL_INT* info);

void SORCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             float* x11, const MKL_INT* ldx11, float* x12,
             const MKL_INT* ldx12, float* x21, const MKL_INT* ldx21,
             float* x22, const MKL_INT* ldx22, float* theta,
             float* u1, const MKL_INT* ldu1, float* u2,
             const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
             float* v2t, const MKL_INT* ldv2t, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void SORCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              float* x11, const MKL_INT* ldx11, float* x12,
              const MKL_INT* ldx12, float* x21, const MKL_INT* ldx21,
              float* x22, const MKL_INT* ldx22, float* theta,
              float* u1, const MKL_INT* ldu1, float* u2,
              const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
              float* v2t, const MKL_INT* ldv2t, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void sorcsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             float* x11, const MKL_INT* ldx11, float* x12,
             const MKL_INT* ldx12, float* x21, const MKL_INT* ldx21,
             float* x22, const MKL_INT* ldx22, float* theta,
             float* u1, const MKL_INT* ldu1, float* u2,
             const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
             float* v2t, const MKL_INT* ldv2t, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void sorcsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              float* x11, const MKL_INT* ldx11, float* x12,
              const MKL_INT* ldx12, float* x21, const MKL_INT* ldx21,
              float* x22, const MKL_INT* ldx22, float* theta,
              float* u1, const MKL_INT* ldu1, float* u2,
              const MKL_INT* ldu2, float* v1t, const MKL_INT* ldv1t,
              float* v2t, const MKL_INT* ldv2t, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void DORCSD( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             double* x11, const MKL_INT* ldx11, double* x12,
             const MKL_INT* ldx12, double* x21, const MKL_INT* ldx21,
             double* x22, const MKL_INT* ldx22, double* theta,
             double* u1, const MKL_INT* ldu1, double* u2,
             const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
             double* v2t, const MKL_INT* ldv2t, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void DORCSD_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              double* x11, const MKL_INT* ldx11, double* x12,
              const MKL_INT* ldx12, double* x21, const MKL_INT* ldx21,
              double* x22, const MKL_INT* ldx22, double* theta,
              double* u1, const MKL_INT* ldu1, double* u2,
              const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
              double* v2t, const MKL_INT* ldv2t, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void dorcsd( const char* jobu1, const char* jobu2, const char* jobv1t,
             const char* jobv2t, const char* trans, const char* signs,
             const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
             double* x11, const MKL_INT* ldx11, double* x12,
             const MKL_INT* ldx12, double* x21, const MKL_INT* ldx21,
             double* x22, const MKL_INT* ldx22, double* theta,
             double* u1, const MKL_INT* ldu1, double* u2,
             const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
             double* v2t, const MKL_INT* ldv2t, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);

void dorcsd_( const char* jobu1, const char* jobu2, const char* jobv1t,
              const char* jobv2t, const char* trans, const char* signs,
              const MKL_INT* M, const MKL_INT* P, const MKL_INT* Q,
              double* x11, const MKL_INT* ldx11, double* x12,
              const MKL_INT* ldx12, double* x21, const MKL_INT* ldx21,
              double* x22, const MKL_INT* ldx22, double* theta,
              double* u1, const MKL_INT* ldu1, double* u2,
              const MKL_INT* ldu2, double* v1t, const MKL_INT* ldv1t,
              double* v2t, const MKL_INT* ldv2t, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info);


void CLAPMR( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );
void CLAPMR_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );
void clapmr( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );
void clapmr_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );

void DLAPMR( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             double* x, const MKL_INT* ldx, MKL_INT* k );
void DLAPMR_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              double* x, const MKL_INT* ldx, MKL_INT* k );
void dlapmr( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             double* x, const MKL_INT* ldx, MKL_INT* k );
void dlapmr_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              double* x, const MKL_INT* ldx, MKL_INT* k );

void ZLAPMR( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );
void ZLAPMR_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );
void zlapmr( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );
void zlapmr_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );

void SLAPMR( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             float* x, const MKL_INT* ldx, MKL_INT* k );
void SLAPMR_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              float* x, const MKL_INT* ldx, MKL_INT* k );
void slapmr( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             float* x, const MKL_INT* ldx, MKL_INT* k );
void slapmr_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              float* x, const MKL_INT* ldx, MKL_INT* k );

void CSYCONV( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* e, MKL_INT* info );
void CSYCONV_( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* e, MKL_INT* info );
void csyconv( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* e, MKL_INT* info );
void csyconv_( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* e, MKL_INT* info );

void ZSYCONV( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* e, MKL_INT* info );
void ZSYCONV_( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* e, MKL_INT* info );
void zsyconv( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* e, MKL_INT* info );
void zsyconv_( const char* uplo, const char* way, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* e, MKL_INT* info );

void SSYCONV( const char* uplo, const char* way, const MKL_INT* n,
             float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* e, MKL_INT* info );
void SSYCONV_( const char* uplo, const char* way, const MKL_INT* n,
             float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* e, MKL_INT* info );
void ssyconv( const char* uplo, const char* way, const MKL_INT* n,
             float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* e, MKL_INT* info );
void ssyconv_( const char* uplo, const char* way, const MKL_INT* n,
             float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* e, MKL_INT* info );

void DSYCONV( const char* uplo, const char* way, const MKL_INT* n,
             double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* e, MKL_INT* info );
void DSYCONV_( const char* uplo, const char* way, const MKL_INT* n,
             double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* e, MKL_INT* info );
void dsyconv( const char* uplo, const char* way, const MKL_INT* n,
             double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* e, MKL_INT* info );
void dsyconv_( const char* uplo, const char* way, const MKL_INT* n,
             double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* e, MKL_INT* info );

void CSYSWAPR( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void CSYSWAPR_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void csyswapr( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void csyswapr_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );

void ZSYSWAPR( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void ZSYSWAPR_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void zsyswapr( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void zsyswapr_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );

void SSYSWAPR( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void SSYSWAPR_( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void ssyswapr( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void ssyswapr_( const char* uplo, const MKL_INT* n, float* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );

void DSYSWAPR( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void DSYSWAPR_( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void dsyswapr( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void dsyswapr_( const char* uplo, const MKL_INT* n, double* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );

void CSYTRI2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CSYTRI2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void csytri2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void csytri2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZSYTRI2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZSYTRI2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zsytri2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zsytri2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void SSYTRI2( const char* uplo, const MKL_INT* n, float* a,
              const MKL_INT* lda, const MKL_INT* ipiv, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void SSYTRI2_( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const MKL_INT* ipiv, float* work,
               const MKL_INT* lwork, MKL_INT* info );
void ssytri2( const char* uplo, const MKL_INT* n, float* a,
              const MKL_INT* lda, const MKL_INT* ipiv, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void ssytri2_( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const MKL_INT* ipiv, float* work,
               const MKL_INT* lwork, MKL_INT* info );

void DSYTRI2( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void DSYTRI2_( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const MKL_INT* ipiv, double* work,
               const MKL_INT* lwork, MKL_INT* info );
void dsytri2( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dsytri2_( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const MKL_INT* ipiv, double* work,
               const MKL_INT* lwork, MKL_INT* info );

void CSYTRI2X( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              MKL_INT* nb, MKL_INT* info );
void CSYTRI2X_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               MKL_INT* nb, MKL_INT* info );
void csytri2x( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              MKL_INT* nb, MKL_INT* info );
void csytri2x_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               MKL_INT* nb, MKL_INT* info );

void ZSYTRI2X( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              MKL_INT* nb, MKL_INT* info );
void ZSYTRI2X_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               MKL_INT* nb, MKL_INT* info );
void zsytri2x( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              MKL_INT* nb, MKL_INT* info );
void zsytri2x_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               MKL_INT* nb, MKL_INT* info );

void SSYTRI2X( const char* uplo, const MKL_INT* n, float* a,
              const MKL_INT* lda, const MKL_INT* ipiv, float* work,
              MKL_INT* nb, MKL_INT* info );
void SSYTRI2X_( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const MKL_INT* ipiv, float* work,
               MKL_INT* nb, MKL_INT* info );
void ssytri2x( const char* uplo, const MKL_INT* n, float* a,
              const MKL_INT* lda, const MKL_INT* ipiv, float* work,
              MKL_INT* nb, MKL_INT* info );
void ssytri2x_( const char* uplo, const MKL_INT* n, float* a,
               const MKL_INT* lda, const MKL_INT* ipiv, float* work,
               MKL_INT* nb, MKL_INT* info );

void DSYTRI2X( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, double* work,
              MKL_INT* nb, MKL_INT* info );
void DSYTRI2X_( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const MKL_INT* ipiv, double* work,
               MKL_INT* nb, MKL_INT* info );
void dsytri2x( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, double* work,
              MKL_INT* nb, MKL_INT* info );
void dsytri2x_( const char* uplo, const MKL_INT* n, double* a,
               const MKL_INT* lda, const MKL_INT* ipiv, double* work,
               MKL_INT* nb, MKL_INT* info );

void SLARTGP( float* f, float* g, float* cs, float* sn, float* r );
void SLARTGP_( float* f, float* g, float* cs, float* sn, float* r );
void slartgp( float* f, float* g, float* cs, float* sn, float* r );
void slartgp_( float* f, float* g, float* cs, float* sn, float* r );

void DLARTGP( double* f, double* g, double* cs, double* sn, double* r );
void DLARTGP_( double* f, double* g, double* cs, double* sn, double* r );
void dlartgp( double* f, double* g, double* cs, double* sn, double* r );
void dlartgp_( double* f, double* g, double* cs, double* sn, double* r );

void SLARTGS( const float* x, const float* y, const float* sigma, float* cs, float* sn );
void SLARTGS_( const float* x, const float* y, const float* sigma, float* cs, float* sn );
void slartgs( const float* x, const float* y, const float* sigma, float* cs, float* sn );
void slartgs_( const float* x, const float* y, const float* sigma, float* cs, float* sn );

void DLARTGS( const double* x, const double* y, const double* sigma, double* cs, double* sn );
void DLARTGS_( const double* x, const double* y, const double* sigma, double* cs, double* sn );
void dlartgs( const double* x, const double* y, const double* sigma, double* cs, double* sn );
void dlartgs_( const double* x, const double* y, const double* sigma, double* cs, double* sn );

void CSYTRS2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work, MKL_INT* info );
void CSYTRS2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work, MKL_INT* info );
void csytrs2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work, MKL_INT* info );
void csytrs2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work, MKL_INT* info );

void ZSYTRS2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );
void ZSYTRS2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );
void zsytrs2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );
void zsytrs2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );

void SSYTRS2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* b, const MKL_INT* ldb, float* work, MKL_INT* info );
void SSYTRS2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* b, const MKL_INT* ldb, float* work, MKL_INT* info );
void ssytrs2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* b, const MKL_INT* ldb, float* work, MKL_INT* info );
void ssytrs2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
             float* b, const MKL_INT* ldb, float* work, MKL_INT* info );

void DSYTRS2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, double* work, MKL_INT* info );
void DSYTRS2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, double* work, MKL_INT* info );
void dsytrs2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, double* work, MKL_INT* info );
void dsytrs2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, double* work, MKL_INT* info );

void CHETRS2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
              MKL_INT* info );
void CHETRS2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               MKL_INT* info );
void chetrs2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               MKL_INT* info );
void chetrs2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
               MKL_INT* info );

void ZHETRS2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );
void ZHETRS2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );
void zhetrs2( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );
void zhetrs2_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work, MKL_INT* info );

/* LAPACK 3.2 routines */

void CBDSQR( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
             MKL_Complex8* vt, const MKL_INT* ldvt, MKL_Complex8* u,
             const MKL_INT* ldu, MKL_Complex8* c, const MKL_INT* ldc,
             float* rwork, MKL_INT* info );
void CBDSQR_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
              MKL_Complex8* vt, const MKL_INT* ldvt, MKL_Complex8* u,
              const MKL_INT* ldu, MKL_Complex8* c, const MKL_INT* ldc,
              float* rwork, MKL_INT* info );
void cbdsqr( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
             MKL_Complex8* vt, const MKL_INT* ldvt, MKL_Complex8* u,
             const MKL_INT* ldu, MKL_Complex8* c, const MKL_INT* ldc,
             float* rwork, MKL_INT* info );
void cbdsqr_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
              MKL_Complex8* vt, const MKL_INT* ldvt, MKL_Complex8* u,
              const MKL_INT* ldu, MKL_Complex8* c, const MKL_INT* ldc,
              float* rwork, MKL_INT* info );

void CGBBRD( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             MKL_Complex8* ab, const MKL_INT* ldab, float* d, float* e,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* pt,
             const MKL_INT* ldpt, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGBBRD_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              MKL_Complex8* ab, const MKL_INT* ldab, float* d, float* e,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* pt,
              const MKL_INT* ldpt, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbbrd( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             MKL_Complex8* ab, const MKL_INT* ldab, float* d, float* e,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* pt,
             const MKL_INT* ldpt, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbbrd_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              MKL_Complex8* ab, const MKL_INT* ldab, float* d, float* e,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* pt,
              const MKL_INT* ldpt, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGBCON( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGBCON_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbcon( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbcon_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGBEQUB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );
void CGBEQUB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* r, float* c, float* rowcnd, float* colcnd, float* amax,
               MKL_INT* info );
void cgbequb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );
void cgbequb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* r, float* c, float* rowcnd, float* colcnd, float* amax,
               MKL_INT* info );

void CGBEQU( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
             float* r, float* c, float* rowcnd, float* colcnd, float* amax,
             MKL_INT* info );
void CGBEQU_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );
void cgbequ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
             float* r, float* c, float* rowcnd, float* colcnd, float* amax,
             MKL_INT* info );
void cgbequ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );

void CGBRFS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
             const MKL_INT* ldab, const MKL_Complex8* afb,
             const MKL_INT* ldafb, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void CGBRFS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
              const MKL_INT* ldab, const MKL_Complex8* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* ferr, float* berr, MKL_Complex8* work, float* rwork,
              MKL_INT* info );
void cgbrfs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
             const MKL_INT* ldab, const MKL_Complex8* afb,
             const MKL_INT* ldafb, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void cgbrfs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
              const MKL_INT* ldab, const MKL_Complex8* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* ferr, float* berr, MKL_Complex8* work, float* rwork,
              MKL_INT* info );

void CGBRFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_Complex8* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const float* r, const float* c,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGBRFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const MKL_Complex8* ab, const MKL_INT* ldab,
               const MKL_Complex8* afb, const MKL_INT* ldafb,
               const MKL_INT* ipiv, const float* r, const float* c,
               const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbrfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_Complex8* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const float* r, const float* c,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbrfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const MKL_Complex8* ab, const MKL_INT* ldab,
               const MKL_Complex8* afb, const MKL_INT* ldafb,
               const MKL_INT* ipiv, const float* r, const float* c,
               const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGBSV( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
            MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
            MKL_INT* info );
void CGBSV_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void cgbsv( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
            MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
            MKL_INT* info );
void cgbsv_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );

void CGBSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
             const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
             float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGBSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
              float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
             const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
             float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
              float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGBSVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
              float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGBSVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
               float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbsvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
              float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgbsvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
               float* c, MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGBTF2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void CGBTF2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );
void cgbtf2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void cgbtf2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );

void CGBTRF( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void CGBTRF_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );
void cgbtrf( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void cgbtrf_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );

void CGBTRS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CGBTRS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void cgbtrs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cgbtrs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex8* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CGEBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
             const MKL_INT* m, MKL_Complex8* v, const MKL_INT* ldv,
             MKL_INT* info );
void CGEBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
              const MKL_INT* m, MKL_Complex8* v, const MKL_INT* ldv,
              MKL_INT* info );
void cgebak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
             const MKL_INT* m, MKL_Complex8* v, const MKL_INT* ldv,
             MKL_INT* info );
void cgebak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
              const MKL_INT* m, MKL_Complex8* v, const MKL_INT* ldv,
              MKL_INT* info );

void CGEBAL( const char* job, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, float* scale,
             MKL_INT* info );
void CGEBAL_( const char* job, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, float* scale,
              MKL_INT* info );
void cgebal( const char* job, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, float* scale,
             MKL_INT* info );
void cgebal_( const char* job, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, float* scale,
              MKL_INT* info );

void CGEBD2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
             MKL_Complex8* taup, MKL_Complex8* work, MKL_INT* info );
void CGEBD2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
              MKL_Complex8* taup, MKL_Complex8* work, MKL_INT* info );
void cgebd2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
             MKL_Complex8* taup, MKL_Complex8* work, MKL_INT* info );
void cgebd2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
              MKL_Complex8* taup, MKL_Complex8* work, MKL_INT* info );

void CGEBRD( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
             MKL_Complex8* taup, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CGEBRD_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
              MKL_Complex8* taup, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cgebrd( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
             MKL_Complex8* taup, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cgebrd_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tauq,
              MKL_Complex8* taup, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CGECON( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const float* anorm, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGECON_( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgecon( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const float* anorm, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgecon_( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGEEQUB( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );
void CGEEQUB_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* r, float* c, float* rowcnd,
               float* colcnd, float* amax, MKL_INT* info );
void cgeequb( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );
void cgeequb_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* r, float* c, float* rowcnd,
               float* colcnd, float* amax, MKL_INT* info );

void CGEEQU( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, float* r, float* c, float* rowcnd,
             float* colcnd, float* amax, MKL_INT* info );
void CGEEQU_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );
void cgeequ( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, float* r, float* c, float* rowcnd,
             float* colcnd, float* amax, MKL_INT* info );
void cgeequ_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );

void CGEES( const char* jobvs, const char* sort,
            MKL_C_SELECT_FUNCTION_1 select, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_INT* sdim, MKL_Complex8* w,
            MKL_Complex8* vs, const MKL_INT* ldvs, MKL_Complex8* work,
            const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
            MKL_INT* info );
void CGEES_( const char* jobvs, const char* sort,
             MKL_C_SELECT_FUNCTION_1 select, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* sdim, MKL_Complex8* w,
             MKL_Complex8* vs, const MKL_INT* ldvs, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
             MKL_INT* info );
void cgees( const char* jobvs, const char* sort,
            MKL_C_SELECT_FUNCTION_1 select, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_INT* sdim, MKL_Complex8* w,
            MKL_Complex8* vs, const MKL_INT* ldvs, MKL_Complex8* work,
            const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
            MKL_INT* info );
void cgees_( const char* jobvs, const char* sort,
             MKL_C_SELECT_FUNCTION_1 select, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* sdim, MKL_Complex8* w,
             MKL_Complex8* vs, const MKL_INT* ldvs, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* bwork,
             MKL_INT* info );

void CGEESX( const char* jobvs, const char* sort,
             MKL_C_SELECT_FUNCTION_1 select, const char* sense,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* sdim, MKL_Complex8* w, MKL_Complex8* vs,
             const MKL_INT* ldvs, float* rconde, float* rcondv,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* bwork, MKL_INT* info );
void CGEESX_( const char* jobvs, const char* sort,
              MKL_C_SELECT_FUNCTION_1 select, const char* sense,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* sdim, MKL_Complex8* w, MKL_Complex8* vs,
              const MKL_INT* ldvs, float* rconde, float* rcondv,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* bwork, MKL_INT* info );
void cgeesx( const char* jobvs, const char* sort,
             MKL_C_SELECT_FUNCTION_1 select, const char* sense,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* sdim, MKL_Complex8* w, MKL_Complex8* vs,
             const MKL_INT* ldvs, float* rconde, float* rcondv,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* bwork, MKL_INT* info );
void cgeesx_( const char* jobvs, const char* sort,
              MKL_C_SELECT_FUNCTION_1 select, const char* sense,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* sdim, MKL_Complex8* w, MKL_Complex8* vs,
              const MKL_INT* ldvs, float* rconde, float* rcondv,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* bwork, MKL_INT* info );

void CGEEV( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* w,
            MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
            const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void CGEEV_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* w,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void cgeev( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* w,
            MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
            const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void cgeev_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* w,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );

void CGEEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* w, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, float* scale, float* abnrm,
             float* rconde, float* rcondv, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* info );
void CGEEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* w, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, float* scale, float* abnrm,
              float* rconde, float* rcondv, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* info );
void cgeevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* w, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, float* scale, float* abnrm,
             float* rconde, float* rcondv, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* info );
void cgeevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* w, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, float* scale, float* abnrm,
              float* rconde, float* rcondv, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* info );

void CGEGS( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
            const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void CGEGS_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
             const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void cgegs( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
            const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void cgegs_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
             const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );

void CGEGV( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
            const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void CGEGV_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void cgegv( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
            const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void cgegv_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );

void CGEHD2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void CGEHD2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );
void cgehd2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void cgehd2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );

void CGEHRD( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGEHRD_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgehrd( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cgehrd_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CGELQ2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void CGELQ2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );
void cgelq2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void cgelq2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );

void CGELQF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CGELQF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cgelqf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void cgelqf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CGELSD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* iwork, MKL_INT* info );
void CGELSD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* iwork, MKL_INT* info );
void cgelsd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* iwork, MKL_INT* info );
void cgelsd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* iwork, MKL_INT* info );

void CGELS( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
            const MKL_INT* lwork, MKL_INT* info );
void CGELS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void cgels( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
            const MKL_INT* lwork, MKL_INT* info );
void cgels_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );

void CGELSS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void CGELSS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );
void cgelss( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void cgelss_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, float* s, const float* rcond, MKL_INT* rank,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );

void CGELSX( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
             MKL_INT* rank, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGELSX_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
              MKL_INT* rank, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgelsx( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
             MKL_INT* rank, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgelsx_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
              MKL_INT* rank, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGELSY( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
             MKL_INT* rank, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void CGELSY_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
              MKL_INT* rank, MKL_Complex8* work, const MKL_INT* lwork,
              float* rwork, MKL_INT* info );
void cgelsy( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
             MKL_INT* rank, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void cgelsy_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const float* rcond,
              MKL_INT* rank, MKL_Complex8* work, const MKL_INT* lwork,
              float* rwork, MKL_INT* info );

void CGEQL2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void CGEQL2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );
void cgeql2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void cgeql2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );

void CGEQLF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CGEQLF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cgeqlf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void cgeqlf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CGEQP3( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void CGEQP3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );
void cgeqp3( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void cgeqp3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );

void CGEQPF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGEQPF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgeqpf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgeqpf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGEQR2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void CGEQR2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );
void cgeqr2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void cgeqr2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );

void CGEQR2P( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );
void CGEQR2P_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
               MKL_INT* info );
void cgeqr2p( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );
void cgeqr2p_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
               MKL_INT* info );

void CGEQRF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CGEQRF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cgeqrf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void cgeqrf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CGEQRFP( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CGEQRFP_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void cgeqrfp( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cgeqrfp_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CGERFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void CGERFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cgerfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void cgerfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CGERFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* r, const float* c, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* rcond, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void CGERFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const float* r, const float* c,
               const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgerfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* r, const float* c, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* rcond, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cgerfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const float* r, const float* c,
               const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGERQ2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void CGERQ2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );
void cgerq2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             MKL_INT* info );
void cgerq2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              MKL_INT* info );

void CGERQF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CGERQF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cgerqf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void cgerqf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CGESC2( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
             float* scale );
void CGESC2_( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
              float* scale );
void cgesc2( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
             float* scale );
void cgesc2_( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
              float* scale );

void CGESDD( const char* jobz, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* s, MKL_Complex8* u,
             const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* iwork, MKL_INT* info );
void CGESDD_( const char* jobz, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, float* s, MKL_Complex8* u,
              const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* iwork, MKL_INT* info );
void cgesdd( const char* jobz, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* s, MKL_Complex8* u,
             const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* iwork, MKL_INT* info );
void cgesdd_( const char* jobz, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, float* s, MKL_Complex8* u,
              const MKL_INT* ldu, MKL_Complex8* vt, const MKL_INT* ldvt,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* iwork, MKL_INT* info );

void CGESVD( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* s,
             MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt,
             const MKL_INT* ldvt, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void CGESVD_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* s,
              MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt,
              const MKL_INT* ldvt, MKL_Complex8* work, const MKL_INT* lwork,
              float* rwork, MKL_INT* info );
void cgesvd( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* s,
             MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt,
             const MKL_INT* ldvt, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void cgesvd_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda, float* s,
              MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* vt,
              const MKL_INT* ldvt, MKL_Complex8* work, const MKL_INT* lwork,
              float* rwork, MKL_INT* info );

void CGESV( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* a,
            const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void CGESV_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cgesv( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* a,
            const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void cgesv_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );

void CGESVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv, char* equed,
             float* r, float* c, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGESVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* r, float* c, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* rcond, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cgesvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv, char* equed,
             float* r, float* c, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgesvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* r, float* c, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* rcond, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CGESVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* r, float* c, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGESVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, float* r, float* c, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
               float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgesvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* r, float* c, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgesvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, float* r, float* c, MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
               float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGETC2( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );
void CGETC2_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );
void cgetc2( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );
void cgetc2_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );

void CGETF2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void CGETF2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void cgetf2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void cgetf2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void CGETRF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void CGETRF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void cgetrf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void cgetrf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void MKL_CGETRFNPI( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void MKL_CGETRFNPI_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void mkl_cgetrfnpi( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void mkl_cgetrfnpi_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );

void CGETRI( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CGETRI_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cgetri( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cgetri_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const MKL_INT* ipiv, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CGETRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CGETRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cgetrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cgetrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CGGBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
             const float* rscale, const MKL_INT* m, MKL_Complex8* v,
             const MKL_INT* ldv, MKL_INT* info );
void CGGBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
              const float* rscale, const MKL_INT* m, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_INT* info );
void cggbak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
             const float* rscale, const MKL_INT* m, MKL_Complex8* v,
             const MKL_INT* ldv, MKL_INT* info );
void cggbak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
              const float* rscale, const MKL_INT* m, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_INT* info );

void CGGBAL( const char* job, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
             float* work, MKL_INT* info );
void CGGBAL_( const char* job, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
              float* work, MKL_INT* info );
void cggbal( const char* job, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
             float* work, MKL_INT* info );
void cggbal_( const char* job, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
              float* work, MKL_INT* info );

void CGGES( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_C_SELECT_FUNCTION_2 selctg, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
            MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
            const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* bwork, MKL_INT* info );
void CGGES_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_C_SELECT_FUNCTION_2 selctg, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
             const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* bwork, MKL_INT* info );
void cgges( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_C_SELECT_FUNCTION_2 selctg, const MKL_INT* n, MKL_Complex8* a,
            const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
            MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
            const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* bwork, MKL_INT* info );
void cgges_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_C_SELECT_FUNCTION_2 selctg, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* sdim, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vsl, const MKL_INT* ldvsl, MKL_Complex8* vsr,
             const MKL_INT* ldvsr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* bwork, MKL_INT* info );

void CGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_C_SELECT_FUNCTION_2 selctg, const char* sense,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* sdim,
             MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vsl,
             const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
             float* rconde, float* rcondv, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void CGGESX_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_C_SELECT_FUNCTION_2 selctg, const char* sense,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* sdim,
              MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vsl,
              const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
              float* rconde, float* rcondv, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void cggesx( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_C_SELECT_FUNCTION_2 selctg, const char* sense,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* sdim,
             MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vsl,
             const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
             float* rconde, float* rcondv, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void cggesx_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_C_SELECT_FUNCTION_2 selctg, const char* sense,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* sdim,
              MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vsl,
              const MKL_INT* ldvsl, MKL_Complex8* vsr, const MKL_INT* ldvsr,
              float* rconde, float* rcondv, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );

void CGGEV( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
            const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void CGGEV_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void cggev( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
            MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
            const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
            float* rwork, MKL_INT* info );
void cggev_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );

void CGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
             float* abnrm, float* bbnrm, float* rconde, float* rcondv,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void CGGEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
              float* abnrm, float* bbnrm, float* rconde, float* rcondv,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void cggevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
             float* abnrm, float* bbnrm, float* rconde, float* rcondv,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void cggevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, float* lscale, float* rscale,
              float* abnrm, float* bbnrm, float* rconde, float* rcondv,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );

void CGGGLM( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* d, MKL_Complex8* x,
             MKL_Complex8* y, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CGGGLM_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* d, MKL_Complex8* x,
              MKL_Complex8* y, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cggglm( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* d, MKL_Complex8* x,
             MKL_Complex8* y, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cggglm_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* d, MKL_Complex8* x,
              MKL_Complex8* y, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CGGHRD( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_INT* info );
void CGGHRD_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_INT* info );
void cgghrd( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_INT* info );
void cgghrd_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_INT* info );

void CGGLSE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* c, MKL_Complex8* d,
             MKL_Complex8* x, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CGGLSE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* c, MKL_Complex8* d,
              MKL_Complex8* x, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cgglse( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* c, MKL_Complex8* d,
             MKL_Complex8* x, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cgglse_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* c, MKL_Complex8* d,
              MKL_Complex8* x, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CGGQRF( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGGQRF_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cggqrf( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cggqrf_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CGGRQF( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CGGRQF_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cggrqf( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cggrqf_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* taua,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* taub,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CGGSVD( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, float* alpha, float* beta, MKL_Complex8* u,
             const MKL_INT* ldu, MKL_Complex8* v, const MKL_INT* ldv,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
             float* rwork, MKL_INT* iwork, MKL_INT* info );
void CGGSVD_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, float* alpha, float* beta, MKL_Complex8* u,
              const MKL_INT* ldu, MKL_Complex8* v, const MKL_INT* ldv,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* info );
void cggsvd( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, float* alpha, float* beta, MKL_Complex8* u,
             const MKL_INT* ldu, MKL_Complex8* v, const MKL_INT* ldv,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
             float* rwork, MKL_INT* iwork, MKL_INT* info );
void cggsvd_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, float* alpha, float* beta, MKL_Complex8* u,
              const MKL_INT* ldu, MKL_Complex8* v, const MKL_INT* ldv,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* info );

void CGGSVP( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, const float* tola, const float* tolb,
             MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu,
             MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* q,
             const MKL_INT* ldq, MKL_INT* iwork, float* rwork,
             MKL_Complex8* tau, MKL_Complex8* work, MKL_INT* info );
void CGGSVP_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, const float* tola, const float* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu,
              MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* q,
              const MKL_INT* ldq, MKL_INT* iwork, float* rwork,
              MKL_Complex8* tau, MKL_Complex8* work, MKL_INT* info );
void cggsvp( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, const float* tola, const float* tolb,
             MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu,
             MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* q,
             const MKL_INT* ldq, MKL_INT* iwork, float* rwork,
             MKL_Complex8* tau, MKL_Complex8* work, MKL_INT* info );
void cggsvp_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, const float* tola, const float* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex8* u, const MKL_INT* ldu,
              MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* q,
              const MKL_INT* ldq, MKL_INT* iwork, float* rwork,
              MKL_Complex8* tau, MKL_Complex8* work, MKL_INT* info );

void CGTCON( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
             const MKL_Complex8* d, const MKL_Complex8* du,
             const MKL_Complex8* du2, const MKL_INT* ipiv, const float* anorm,
             float* rcond, MKL_Complex8* work, MKL_INT* info );
void CGTCON_( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du,
              const MKL_Complex8* du2, const MKL_INT* ipiv, const float* anorm,
              float* rcond, MKL_Complex8* work, MKL_INT* info );
void cgtcon( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
             const MKL_Complex8* d, const MKL_Complex8* du,
             const MKL_Complex8* du2, const MKL_INT* ipiv, const float* anorm,
             float* rcond, MKL_Complex8* work, MKL_INT* info );
void cgtcon_( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du,
              const MKL_Complex8* du2, const MKL_INT* ipiv, const float* anorm,
              float* rcond, MKL_Complex8* work, MKL_INT* info );

void CGTRFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* dlf,
             const MKL_Complex8* df, const MKL_Complex8* duf,
             const MKL_Complex8* du2, const MKL_INT* ipiv,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CGTRFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, const MKL_Complex8* dlf,
              const MKL_Complex8* df, const MKL_Complex8* duf,
              const MKL_Complex8* du2, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cgtrfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* dlf,
             const MKL_Complex8* df, const MKL_Complex8* duf,
             const MKL_Complex8* du2, const MKL_INT* ipiv,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void cgtrfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, const MKL_Complex8* dlf,
              const MKL_Complex8* df, const MKL_Complex8* duf,
              const MKL_Complex8* du2, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CGTSV( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
            MKL_Complex8* d, MKL_Complex8* du, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void CGTSV_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
             MKL_Complex8* d, MKL_Complex8* du, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cgtsv( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
            MKL_Complex8* d, MKL_Complex8* du, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void cgtsv_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
             MKL_Complex8* d, MKL_Complex8* du, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );

void CGTSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* dl,
             const MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* dlf,
             MKL_Complex8* df, MKL_Complex8* duf, MKL_Complex8* du2,
             MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CGTSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* dlf,
              MKL_Complex8* df, MKL_Complex8* duf, MKL_Complex8* du2,
              MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgtsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* dl,
             const MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* dlf,
             MKL_Complex8* df, MKL_Complex8* duf, MKL_Complex8* du2,
             MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cgtsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* dlf,
              MKL_Complex8* df, MKL_Complex8* duf, MKL_Complex8* du2,
              MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CGTTRF( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
             MKL_Complex8* du, MKL_Complex8* du2, MKL_INT* ipiv,
             MKL_INT* info );
void CGTTRF_( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
              MKL_Complex8* du, MKL_Complex8* du2, MKL_INT* ipiv,
              MKL_INT* info );
void cgttrf( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
             MKL_Complex8* du, MKL_Complex8* du2, MKL_INT* ipiv,
             MKL_INT* info );
void cgttrf_( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
              MKL_Complex8* du, MKL_Complex8* du2, MKL_INT* ipiv,
              MKL_INT* info );

void CGTTRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* du2,
             const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void CGTTRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, const MKL_Complex8* du2,
              const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );
void cgttrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* du2,
             const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void cgttrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, const MKL_Complex8* du2,
              const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );

void CGTTS2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* du2,
             const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb );
void CGTTS2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, const MKL_Complex8* du2,
              const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb );
void cgtts2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* du2,
             const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb );
void cgtts2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, const MKL_Complex8* du2,
              const MKL_INT* ipiv, MKL_Complex8* b, const MKL_INT* ldb );

void CHBEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CHBEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
              float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void chbevd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void chbevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
              float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CHBEV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab, float* w,
            MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
            float* rwork, MKL_INT* info );
void CHBEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void chbev( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab, float* w,
            MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
            float* rwork, MKL_INT* info );
void chbev_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* info );

void CHBEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void CHBEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
              const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chbevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chbevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, MKL_Complex8* ab,
              const MKL_INT* ldab, MKL_Complex8* q, const MKL_INT* ldq,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void CHBGST( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
             const MKL_INT* ldab, const MKL_Complex8* bb, const MKL_INT* ldbb,
             MKL_Complex8* x, const MKL_INT* ldx, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CHBGST_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
              const MKL_INT* ldab, const MKL_Complex8* bb, const MKL_INT* ldbb,
              MKL_Complex8* x, const MKL_INT* ldx, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void chbgst( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
             const MKL_INT* ldab, const MKL_Complex8* bb, const MKL_INT* ldbb,
             MKL_Complex8* x, const MKL_INT* ldx, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void chbgst_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
              const MKL_INT* ldab, const MKL_Complex8* bb, const MKL_INT* ldbb,
              MKL_Complex8* x, const MKL_INT* ldx, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CHBGVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CHBGVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
              const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
              float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void chbgvd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void chbgvd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
              const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
              float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CHBGV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
            const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
            float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
            float* rwork, MKL_INT* info );
void CHBGV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void chbgv( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
            const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
            float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
            float* rwork, MKL_INT* info );
void chbgv_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* bb, const MKL_INT* ldbb,
             float* w, MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* info );

void CHBGVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* bb,
             const MKL_INT* ldbb, MKL_Complex8* q, const MKL_INT* ldq,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void CHBGVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* bb,
              const MKL_INT* ldbb, MKL_Complex8* q, const MKL_INT* ldq,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chbgvx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* bb,
             const MKL_INT* ldbb, MKL_Complex8* q, const MKL_INT* ldq,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chbgvx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* bb,
              const MKL_INT* ldbb, MKL_Complex8* q, const MKL_INT* ldq,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void CHBTRD( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
             float* d, float* e, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* work, MKL_INT* info );
void CHBTRD_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
              float* d, float* e, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* work, MKL_INT* info );
void chbtrd( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
             float* d, float* e, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* work, MKL_INT* info );
void chbtrd_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex8* ab, const MKL_INT* ldab,
              float* d, float* e, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* work, MKL_INT* info );

void CHECON( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
             float* rcond, MKL_Complex8* work, MKL_INT* info );
void CHECON_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
              float* rcond, MKL_Complex8* work, MKL_INT* info );
void checon( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
             float* rcond, MKL_Complex8* work, MKL_INT* info );
void checon_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
              float* rcond, MKL_Complex8* work, MKL_INT* info );

void CHEEQUB( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* s, float* scond, float* amax,
              MKL_Complex8* work, MKL_INT* info );
void CHEEQUB_( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* s, float* scond, float* amax,
               MKL_Complex8* work, MKL_INT* info );
void cheequb( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* s, float* scond, float* amax,
              MKL_Complex8* work, MKL_INT* info );
void cheequb_( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* s, float* scond, float* amax,
               MKL_Complex8* work, MKL_INT* info );

void CHEEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CHEEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, float* w,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void cheevd( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void cheevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, float* w,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CHEEV( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, float* w, MKL_Complex8* work,
            const MKL_INT* lwork, float* rwork, MKL_INT* info );
void CHEEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* info );
void cheev( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex8* a, const MKL_INT* lda, float* w, MKL_Complex8* work,
            const MKL_INT* lwork, float* rwork, MKL_INT* info );
void cheev_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* info );

void CHEEVR( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void CHEEVR_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void cheevr( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void cheevr_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CHEEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void CHEEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void cheevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void cheevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void CHEGS2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CHEGS2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void chegs2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void chegs2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CHEGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CHEGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void chegst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void chegst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CHEGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CHEGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, float* w,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void chegvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void chegvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* b, const MKL_INT* ldb, float* w,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CHEGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
            MKL_Complex8* b, const MKL_INT* ldb, float* w, MKL_Complex8* work,
            const MKL_INT* lwork, float* rwork, MKL_INT* info );
void CHEGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* info );
void chegv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
            MKL_Complex8* b, const MKL_INT* ldb, float* w, MKL_Complex8* work,
            const MKL_INT* lwork, float* rwork, MKL_INT* info );
void chegv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* b, const MKL_INT* ldb, float* w, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* info );

void CHEGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void CHEGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void chegvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void chegvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void CHERFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void CHERFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cherfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void cherfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CHERFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* s, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CHERFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const float* s, const MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
               float* rcond, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );
void cherfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* s, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cherfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const float* s, const MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
               float* rcond, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );

void CHESV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
            const MKL_INT* lwork, MKL_INT* info );
void CHESV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void chesv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
            const MKL_INT* lwork, MKL_INT* info );
void chesv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );

void CHESVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void CHESVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );
void chesvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void chesvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );

void CHESVXX( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* rpvgrw,
              float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CHESVXX_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* x, const MKL_INT* ldx, float* rcond,
               float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );
void chesvxx( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* rpvgrw,
              float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void chesvxx_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* x, const MKL_INT* ldx, float* rcond,
               float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );

void CHETD2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
             MKL_INT* info );
void CHETD2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
              MKL_INT* info );
void chetd2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
             MKL_INT* info );
void chetd2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
              MKL_INT* info );

void CHETF2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void CHETF2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void chetf2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void chetf2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void CHETRD( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CHETRD_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetrd( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void chetrd_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, float* d, float* e, MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CHETRF( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CHETRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void chetrf( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void chetrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CHETRI( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
             MKL_INT* info );
void CHETRI_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              MKL_INT* info );
void chetri( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
             MKL_INT* info );
void chetri_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              MKL_INT* info );

void CHETRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CHETRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void chetrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void chetrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CHFRK( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const float* alpha,
            const MKL_Complex8* a, const MKL_INT* lda, const float* beta,
            MKL_Complex8* c );
void CHFRK_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const float* alpha,
             const MKL_Complex8* a, const MKL_INT* lda, const float* beta,
             MKL_Complex8* c );
void chfrk( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const float* alpha,
            const MKL_Complex8* a, const MKL_INT* lda, const float* beta,
            MKL_Complex8* c );
void chfrk_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const float* alpha,
             const MKL_Complex8* a, const MKL_INT* lda, const float* beta,
             MKL_Complex8* c );

void CHGEQZ( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* h, const MKL_INT* ldh, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void CHGEQZ_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* h, const MKL_INT* ldh, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* alpha, MKL_Complex8* beta,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
              float* rwork, MKL_INT* info );
void chgeqz( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* h, const MKL_INT* ldh, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* alpha, MKL_Complex8* beta,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
             float* rwork, MKL_INT* info );
void chgeqz_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* h, const MKL_INT* ldh, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* alpha, MKL_Complex8* beta,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
              float* rwork, MKL_INT* info );

void CHLA_TRANSTYPE( char* ret_val, int ret_val_len, const MKL_INT* trans );
void CHLA_TRANSTYPE_( char* ret_val, int ret_val_len, const MKL_INT* trans );
void chla_transtype( char* ret_val, int ret_val_len, const MKL_INT* trans );
void chla_transtype_( char* ret_val, int ret_val_len, const MKL_INT* trans );

void CHPCON( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             MKL_Complex8* work, MKL_INT* info );
void CHPCON_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              MKL_Complex8* work, MKL_INT* info );
void chpcon( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             MKL_Complex8* work, MKL_INT* info );
void chpcon_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              MKL_Complex8* work, MKL_INT* info );

void CHPEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void CHPEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void chpevd( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void chpevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CHPEV( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
            MKL_Complex8* work, float* rwork, MKL_INT* info );
void CHPEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void chpev( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
            MKL_Complex8* work, float* rwork, MKL_INT* info );
void chpev_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex8* ap, float* w, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, float* rwork, MKL_INT* info );

void CHPEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex8* ap, const float* vl,
             const float* vu, const MKL_INT* il, const MKL_INT* iu,
             const float* abstol, MKL_INT* m, float* w, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, float* rwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void CHPEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex8* ap, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu,
              const float* abstol, MKL_INT* m, float* w, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, float* rwork,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chpevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex8* ap, const float* vl,
             const float* vu, const MKL_INT* il, const MKL_INT* iu,
             const float* abstol, MKL_INT* m, float* w, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, float* rwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void chpevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex8* ap, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu,
              const float* abstol, MKL_INT* m, float* w, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, float* rwork,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void CHPGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex8* ap, const MKL_Complex8* bp, MKL_INT* info );
void CHPGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex8* ap, const MKL_Complex8* bp, MKL_INT* info );
void chpgst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex8* ap, const MKL_Complex8* bp, MKL_INT* info );
void chpgst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex8* ap, const MKL_Complex8* bp, MKL_INT* info );

void CHPGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CHPGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void chpgvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void chpgvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void CHPGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
            MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
            float* rwork, MKL_INT* info );
void CHPGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void chpgv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
            MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
            float* rwork, MKL_INT* info );
void chpgv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex8* ap, MKL_Complex8* bp, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             float* rwork, MKL_INT* info );

void CHPGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_Complex8* bp, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, float* rwork, MKL_INT* iwork, MKL_INT* ifail,
             MKL_INT* info );
void CHPGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_Complex8* bp, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, float* rwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );
void chpgvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_Complex8* bp, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, float* rwork, MKL_INT* iwork, MKL_INT* ifail,
             MKL_INT* info );
void chpgvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_Complex8* bp, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, float* rwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );

void CHPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_Complex8* afp,
             const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CHPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_Complex8* afp,
              const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void chprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_Complex8* afp,
             const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void chprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_Complex8* afp,
              const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CHPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void CHPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void chpsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void chpsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );

void CHPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
             MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CHPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
              MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void chpsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
             MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void chpsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
              MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CHPTRD( const char* uplo, const MKL_INT* n, MKL_Complex8* ap, float* d,
             float* e, MKL_Complex8* tau, MKL_INT* info );
void CHPTRD_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap, float* d,
              float* e, MKL_Complex8* tau, MKL_INT* info );
void chptrd( const char* uplo, const MKL_INT* n, MKL_Complex8* ap, float* d,
             float* e, MKL_Complex8* tau, MKL_INT* info );
void chptrd_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap, float* d,
              float* e, MKL_Complex8* tau, MKL_INT* info );

void CHPTRF( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* ipiv, MKL_INT* info );
void CHPTRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* ipiv, MKL_INT* info );
void chptrf( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* ipiv, MKL_INT* info );
void chptrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* ipiv, MKL_INT* info );

void CHPTRI( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );
void CHPTRI_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );
void chptri( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );
void chptri_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );

void CHPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CHPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void chptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void chptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CHSEIN( const char* side, const char* eigsrc, const char* initv,
             const MKL_INT* select, const MKL_INT* n, const MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
             MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );
void CHSEIN_( const char* side, const char* eigsrc, const char* initv,
              const MKL_INT* select, const MKL_INT* n, const MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
              MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );
void chsein( const char* side, const char* eigsrc, const char* initv,
             const MKL_INT* select, const MKL_INT* n, const MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
             MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );
void chsein_( const char* side, const char* eigsrc, const char* initv,
              const MKL_INT* select, const MKL_INT* n, const MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
              MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );

void CHSEQR( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CHSEQR_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void chseqr( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void chseqr_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CLABRD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
             MKL_Complex8* tauq, MKL_Complex8* taup, MKL_Complex8* x,
             const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy );
void CLABRD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
              MKL_Complex8* tauq, MKL_Complex8* taup, MKL_Complex8* x,
              const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy );
void clabrd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
             MKL_Complex8* tauq, MKL_Complex8* taup, MKL_Complex8* x,
             const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy );
void clabrd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, float* d, float* e,
              MKL_Complex8* tauq, MKL_Complex8* taup, MKL_Complex8* x,
              const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy );

void CLACGV( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx );
void CLACGV_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx );
void clacgv( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx );
void clacgv_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx );

void CLACN2( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
             MKL_INT* kase, MKL_INT* isave );
void CLACN2_( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
              MKL_INT* kase, MKL_INT* isave );
void clacn2( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
             MKL_INT* kase, MKL_INT* isave );
void clacn2_( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
              MKL_INT* kase, MKL_INT* isave );

void CLACON( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
             MKL_INT* kase );
void CLACON_( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
              MKL_INT* kase );
void clacon( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
             MKL_INT* kase );
void clacon_( const MKL_INT* n, MKL_Complex8* v, MKL_Complex8* x, float* est,
              MKL_INT* kase );

void CLACP2( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const float* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb );
void CLACP2_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const float* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb );
void clacp2( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const float* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb );
void clacp2_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const float* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb );

void CLACPY( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb );
void CLACPY_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb );
void clacpy( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb );
void clacpy_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb );

void CLACRM( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             MKL_Complex8* c, const MKL_INT* ldc, float* rwork );
void CLACRM_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              MKL_Complex8* c, const MKL_INT* ldc, float* rwork );
void clacrm( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             MKL_Complex8* c, const MKL_INT* ldc, float* rwork );
void clacrm_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              MKL_Complex8* c, const MKL_INT* ldc, float* rwork );

void CLACRT( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
             MKL_Complex8* cy, const MKL_INT* incy, const MKL_Complex8* c,
             const MKL_Complex8* s );
void CLACRT_( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
              MKL_Complex8* cy, const MKL_INT* incy, const MKL_Complex8* c,
              const MKL_Complex8* s );
void clacrt( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
             MKL_Complex8* cy, const MKL_INT* incy, const MKL_Complex8* c,
             const MKL_Complex8* s );
void clacrt_( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
              MKL_Complex8* cy, const MKL_INT* incy, const MKL_Complex8* c,
              const MKL_Complex8* s );

void CLADIV( MKL_Complex8* ret_value, const MKL_Complex8* x,
             const MKL_Complex8* y );
void CLADIV_( MKL_Complex8* ret_value, const MKL_Complex8* x,
              const MKL_Complex8* y );
void cladiv( MKL_Complex8* ret_value, const MKL_Complex8* x,
             const MKL_Complex8* y );
void cladiv_( MKL_Complex8* ret_value, const MKL_Complex8* x,
              const MKL_Complex8* y );

void CLAED0( const MKL_INT* qsiz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* qstore,
             const MKL_INT* ldqs, float* rwork, MKL_INT* iwork,
             MKL_INT* info );
void CLAED0_( const MKL_INT* qsiz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* qstore,
              const MKL_INT* ldqs, float* rwork, MKL_INT* iwork,
              MKL_INT* info );
void claed0( const MKL_INT* qsiz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* qstore,
             const MKL_INT* ldqs, float* rwork, MKL_INT* iwork,
             MKL_INT* info );
void claed0_( const MKL_INT* qsiz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* qstore,
              const MKL_INT* ldqs, float* rwork, MKL_INT* iwork,
              MKL_INT* info );

void CLAED7( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, float* d, MKL_Complex8* q,
             const MKL_INT* ldq, const float* rho, MKL_INT* indxq,
             float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const float* givnum, MKL_Complex8* work, float* rwork,
             MKL_INT* iwork, MKL_INT* info );
void CLAED7_( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, float* d, MKL_Complex8* q,
              const MKL_INT* ldq, const float* rho, MKL_INT* indxq,
              float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const float* givnum, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* info );
void claed7( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, float* d, MKL_Complex8* q,
             const MKL_INT* ldq, const float* rho, MKL_INT* indxq,
             float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const float* givnum, MKL_Complex8* work, float* rwork,
             MKL_INT* iwork, MKL_INT* info );
void claed7_( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, float* d, MKL_Complex8* q,
              const MKL_INT* ldq, const float* rho, MKL_INT* indxq,
              float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const float* givnum, MKL_Complex8* work,
              float* rwork, MKL_INT* iwork, MKL_INT* info );

void CLAED8( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
             MKL_Complex8* q, const MKL_INT* ldq, float* d, float* rho,
             const MKL_INT* cutpnt, const float* z, float* dlamda,
             MKL_Complex8* q2, const MKL_INT* ldq2, float* w, MKL_INT* indxp,
             MKL_INT* indx, const MKL_INT* indxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, float* givnum, MKL_INT* info );
void CLAED8_( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
              MKL_Complex8* q, const MKL_INT* ldq, float* d, float* rho,
              const MKL_INT* cutpnt, const float* z, float* dlamda,
              MKL_Complex8* q2, const MKL_INT* ldq2, float* w, MKL_INT* indxp,
              MKL_INT* indx, const MKL_INT* indxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, float* givnum, MKL_INT* info );
void claed8( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
             MKL_Complex8* q, const MKL_INT* ldq, float* d, float* rho,
             const MKL_INT* cutpnt, const float* z, float* dlamda,
             MKL_Complex8* q2, const MKL_INT* ldq2, float* w, MKL_INT* indxp,
             MKL_INT* indx, const MKL_INT* indxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, float* givnum, MKL_INT* info );
void claed8_( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
              MKL_Complex8* q, const MKL_INT* ldq, float* d, float* rho,
              const MKL_INT* cutpnt, const float* z, float* dlamda,
              MKL_Complex8* q2, const MKL_INT* ldq2, float* w, MKL_INT* indxp,
              MKL_INT* indx, const MKL_INT* indxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, float* givnum, MKL_INT* info );

void CLAEIN( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const MKL_Complex8* h, const MKL_INT* ldh, const MKL_Complex8* w,
             MKL_Complex8* v, MKL_Complex8* b, const MKL_INT* ldb,
             float* rwork, const float* eps3, const float* smlnum,
             MKL_INT* info );
void CLAEIN_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const MKL_Complex8* h, const MKL_INT* ldh, const MKL_Complex8* w,
              MKL_Complex8* v, MKL_Complex8* b, const MKL_INT* ldb,
              float* rwork, const float* eps3, const float* smlnum,
              MKL_INT* info );
void claein( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const MKL_Complex8* h, const MKL_INT* ldh, const MKL_Complex8* w,
             MKL_Complex8* v, MKL_Complex8* b, const MKL_INT* ldb,
             float* rwork, const float* eps3, const float* smlnum,
             MKL_INT* info );
void claein_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const MKL_Complex8* h, const MKL_INT* ldh, const MKL_Complex8* w,
              MKL_Complex8* v, MKL_Complex8* b, const MKL_INT* ldb,
              float* rwork, const float* eps3, const float* smlnum,
              MKL_INT* info );

void CLAESY( const MKL_Complex8* a, const MKL_Complex8* b,
             const MKL_Complex8* c, MKL_Complex8* rt1, MKL_Complex8* rt2,
             MKL_Complex8* evscal, MKL_Complex8* cs1, MKL_Complex8* sn1 );
void CLAESY_( const MKL_Complex8* a, const MKL_Complex8* b,
              const MKL_Complex8* c, MKL_Complex8* rt1, MKL_Complex8* rt2,
              MKL_Complex8* evscal, MKL_Complex8* cs1, MKL_Complex8* sn1 );
void claesy( const MKL_Complex8* a, const MKL_Complex8* b,
             const MKL_Complex8* c, MKL_Complex8* rt1, MKL_Complex8* rt2,
             MKL_Complex8* evscal, MKL_Complex8* cs1, MKL_Complex8* sn1 );
void claesy_( const MKL_Complex8* a, const MKL_Complex8* b,
              const MKL_Complex8* c, MKL_Complex8* rt1, MKL_Complex8* rt2,
              MKL_Complex8* evscal, MKL_Complex8* cs1, MKL_Complex8* sn1 );

void CLAEV2( const MKL_Complex8* a, const MKL_Complex8* b,
             const MKL_Complex8* c, float* rt1, float* rt2, float* cs1,
             MKL_Complex8* sn1 );
void CLAEV2_( const MKL_Complex8* a, const MKL_Complex8* b,
              const MKL_Complex8* c, float* rt1, float* rt2, float* cs1,
              MKL_Complex8* sn1 );
void claev2( const MKL_Complex8* a, const MKL_Complex8* b,
             const MKL_Complex8* c, float* rt1, float* rt2, float* cs1,
             MKL_Complex8* sn1 );
void claev2_( const MKL_Complex8* a, const MKL_Complex8* b,
              const MKL_Complex8* c, float* rt1, float* rt2, float* cs1,
              MKL_Complex8* sn1 );

void CLAG2Z( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* sa,
             const MKL_INT* ldsa, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* info );
void CLAG2Z_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* sa,
              const MKL_INT* ldsa, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );
void clag2z( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* sa,
             const MKL_INT* ldsa, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* info );
void clag2z_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* sa,
              const MKL_INT* ldsa, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );

void CLAGS2( const MKL_INT* upper, const float* a1, const MKL_Complex8* a2,
             const float* a3, const float* b1, const MKL_Complex8* b2,
             const float* b3, float* csu, MKL_Complex8* snu, float* csv,
             MKL_Complex8* snv, float* csq, MKL_Complex8* snq );
void CLAGS2_( const MKL_INT* upper, const float* a1, const MKL_Complex8* a2,
              const float* a3, const float* b1, const MKL_Complex8* b2,
              const float* b3, float* csu, MKL_Complex8* snu, float* csv,
              MKL_Complex8* snv, float* csq, MKL_Complex8* snq );
void clags2( const MKL_INT* upper, const float* a1, const MKL_Complex8* a2,
             const float* a3, const float* b1, const MKL_Complex8* b2,
             const float* b3, float* csu, MKL_Complex8* snu, float* csv,
             MKL_Complex8* snv, float* csq, MKL_Complex8* snq );
void clags2_( const MKL_INT* upper, const float* a1, const MKL_Complex8* a2,
              const float* a3, const float* b1, const MKL_Complex8* b2,
              const float* b3, float* csu, MKL_Complex8* snu, float* csv,
              MKL_Complex8* snv, float* csq, MKL_Complex8* snq );

void CLAGTM( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* alpha, const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* x, const MKL_INT* ldx,
             const float* beta, MKL_Complex8* b, const MKL_INT* ldb );
void CLAGTM_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* alpha, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du,
              const MKL_Complex8* x, const MKL_INT* ldx, const float* beta,
              MKL_Complex8* b, const MKL_INT* ldb );
void clagtm( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* alpha, const MKL_Complex8* dl, const MKL_Complex8* d,
             const MKL_Complex8* du, const MKL_Complex8* x, const MKL_INT* ldx,
             const float* beta, MKL_Complex8* b, const MKL_INT* ldb );
void clagtm_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* alpha, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du,
              const MKL_Complex8* x, const MKL_INT* ldx, const float* beta,
              MKL_Complex8* b, const MKL_INT* ldb );

void CLAHEF( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void CLAHEF_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clahef( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clahef_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );

void CLAHQR( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* info );
void CLAHQR_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* info );
void clahqr( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* info );
void clahqr_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* info );

void CLAHR2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
             const MKL_INT* ldy );
void CLAHR2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
              const MKL_INT* ldy );
void clahr2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
             const MKL_INT* ldy );
void clahr2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
              const MKL_INT* ldy );

void CLAHRD( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
             const MKL_INT* ldy );
void CLAHRD_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
              const MKL_INT* ldy );
void clahrd( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
             const MKL_INT* ldy );
void clahrd_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* y,
              const MKL_INT* ldy );

void CLAIC1( const MKL_INT* job, const MKL_INT* j, const MKL_Complex8* x,
             const float* sest, const MKL_Complex8* w,
             const MKL_Complex8* gamma, float* sestpr, MKL_Complex8* s,
             MKL_Complex8* c );
void CLAIC1_( const MKL_INT* job, const MKL_INT* j, const MKL_Complex8* x,
              const float* sest, const MKL_Complex8* w,
              const MKL_Complex8* gamma, float* sestpr, MKL_Complex8* s,
              MKL_Complex8* c );
void claic1( const MKL_INT* job, const MKL_INT* j, const MKL_Complex8* x,
             const float* sest, const MKL_Complex8* w,
             const MKL_Complex8* gamma, float* sestpr, MKL_Complex8* s,
             MKL_Complex8* c );
void claic1_( const MKL_INT* job, const MKL_INT* j, const MKL_Complex8* x,
              const float* sest, const MKL_Complex8* w,
              const MKL_Complex8* gamma, float* sestpr, MKL_Complex8* s,
              MKL_Complex8* c );

void CLALS0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const float* givnum, const MKL_INT* ldgnum,
             const float* poles, const float* difl, const float* difr,
             const float* z, const MKL_INT* k, const float* c, const float* s,
             float* rwork, MKL_INT* info );
void CLALS0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const float* givnum, const MKL_INT* ldgnum, const float* poles,
              const float* difl, const float* difr, const float* z,
              const MKL_INT* k, const float* c, const float* s, float* rwork,
              MKL_INT* info );
void clals0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const float* givnum, const MKL_INT* ldgnum,
             const float* poles, const float* difl, const float* difr,
             const float* z, const MKL_INT* k, const float* c, const float* s,
             float* rwork, MKL_INT* info );
void clals0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const float* givnum, const MKL_INT* ldgnum, const float* poles,
              const float* difl, const float* difr, const float* z,
              const MKL_INT* k, const float* c, const float* s, float* rwork,
              MKL_INT* info );

void CLALSA( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* bx, const MKL_INT* ldbx, const float* u,
             const MKL_INT* ldu, const float* vt, const MKL_INT* k,
             const float* difl, const float* difr, const float* z,
             const float* poles, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
             const float* c, const float* s, float* rwork, MKL_INT* iwork,
             MKL_INT* info );
void CLALSA_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* bx, const MKL_INT* ldbx, const float* u,
              const MKL_INT* ldu, const float* vt, const MKL_INT* k,
              const float* difl, const float* difr, const float* z,
              const float* poles, const MKL_INT* givptr, const MKL_INT* givcol,
              const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
              const float* c, const float* s, float* rwork, MKL_INT* iwork,
              MKL_INT* info );
void clalsa( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* bx, const MKL_INT* ldbx, const float* u,
             const MKL_INT* ldu, const float* vt, const MKL_INT* k,
             const float* difl, const float* difr, const float* z,
             const float* poles, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
             const float* c, const float* s, float* rwork, MKL_INT* iwork,
             MKL_INT* info );
void clalsa_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* bx, const MKL_INT* ldbx, const float* u,
              const MKL_INT* ldu, const float* vt, const MKL_INT* k,
              const float* difl, const float* difr, const float* z,
              const float* poles, const MKL_INT* givptr, const MKL_INT* givcol,
              const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
              const float* c, const float* s, float* rwork, MKL_INT* iwork,
              MKL_INT* info );

void CLALSD( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, float* d, float* e, MKL_Complex8* b,
             const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
             MKL_Complex8* work, float* rwork, MKL_INT* iwork, MKL_INT* info );
void CLALSD_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, float* d, float* e, MKL_Complex8* b,
              const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
              MKL_Complex8* work, float* rwork, MKL_INT* iwork,
              MKL_INT* info );
void clalsd( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, float* d, float* e, MKL_Complex8* b,
             const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
             MKL_Complex8* work, float* rwork, MKL_INT* iwork, MKL_INT* info );
void clalsd_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, float* d, float* e, MKL_Complex8* b,
              const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
              MKL_Complex8* work, float* rwork, MKL_INT* iwork,
              MKL_INT* info );

float CLANGB( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* work );
float CLANGB_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* work );
float clangb( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* work );
float clangb_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* work );

float CLANGE( const char* norm, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, float* work );
float CLANGE_( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const MKL_Complex8* a, const MKL_INT* lda, float* work );
float clange( const char* norm, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, float* work );
float clange_( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const MKL_Complex8* a, const MKL_INT* lda, float* work );

float CLANGT( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du );
float CLANGT_( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
               const MKL_Complex8* d, const MKL_Complex8* du );
float clangt( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
              const MKL_Complex8* d, const MKL_Complex8* du );
float clangt_( const char* norm, const MKL_INT* n, const MKL_Complex8* dl,
               const MKL_Complex8* d, const MKL_Complex8* du );

float CLANHB( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* work );
float CLANHB_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* work );
float clanhb( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* work );
float clanhb_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* work );

float CLANHE( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, float* work );
float CLANHE_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* a, const MKL_INT* lda, float* work );
float clanhe( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, float* work );
float clanhe_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* a, const MKL_INT* lda, float* work );

float CLANHF( const char* norm, const char* transr, const char* uplo,
              const MKL_INT* n, const MKL_Complex8* a, float* work );
float CLANHF_( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const MKL_Complex8* a, float* work );
float clanhf( const char* norm, const char* transr, const char* uplo,
              const MKL_INT* n, const MKL_Complex8* a, float* work );
float clanhf_( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const MKL_Complex8* a, float* work );

float CLANHP( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* ap, float* work );
float CLANHP_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* ap, float* work );
float clanhp( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* ap, float* work );
float clanhp_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* ap, float* work );

float CLANHS( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* work );
float CLANHS_( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* work );
float clanhs( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* work );
float clanhs_( const char* norm, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* work );

float CLANHT( const char* norm, const MKL_INT* n, const float* d,
              const MKL_Complex8* e );
float CLANHT_( const char* norm, const MKL_INT* n, const float* d,
               const MKL_Complex8* e );
float clanht( const char* norm, const MKL_INT* n, const float* d,
              const MKL_Complex8* e );
float clanht_( const char* norm, const MKL_INT* n, const float* d,
               const MKL_Complex8* e );

float CLANSB( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* work );
float CLANSB_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* work );
float clansb( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
              float* work );
float clansb_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex8* ab, const MKL_INT* ldab,
               float* work );

float CLANSP( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* ap, float* work );
float CLANSP_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* ap, float* work );
float clansp( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* ap, float* work );
float clansp_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* ap, float* work );

float CLANSY( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, float* work );
float CLANSY_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* a, const MKL_INT* lda, float* work );
float clansy( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, float* work );
float clansy_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex8* a, const MKL_INT* lda, float* work );

float CLANTB( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* ab,
              const MKL_INT* ldab, float* work );
float CLANTB_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* ab,
               const MKL_INT* ldab, float* work );
float clantb( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* ab,
              const MKL_INT* ldab, float* work );
float clantb_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* ab,
               const MKL_INT* ldab, float* work );

float CLANTP( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex8* ap, float* work );
float CLANTP_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_Complex8* ap, float* work );
float clantp( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex8* ap, float* work );
float clantp_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_Complex8* ap, float* work );

float CLANTR( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* work );
float CLANTR_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* work );
float clantr( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* work );
float clantr_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* work );

void CLAPLL( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
             MKL_Complex8* y, const MKL_INT* incy, float* ssmin );
void CLAPLL_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
              MKL_Complex8* y, const MKL_INT* incy, float* ssmin );
void clapll( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
             MKL_Complex8* y, const MKL_INT* incy, float* ssmin );
void clapll_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
              MKL_Complex8* y, const MKL_INT* incy, float* ssmin );

void CLAPMT( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );
void CLAPMT_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );
void clapmt( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );
void clapmt_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* x, const MKL_INT* ldx, MKL_INT* k );

void CLAQGB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
             const float* r, const float* c, const float* rowcnd,
             const float* colcnd, const float* amax, char* equed );
void CLAQGB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
              const float* r, const float* c, const float* rowcnd,
              const float* colcnd, const float* amax, char* equed );
void claqgb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
             const float* r, const float* c, const float* rowcnd,
             const float* colcnd, const float* amax, char* equed );
void claqgb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex8* ab, const MKL_INT* ldab,
              const float* r, const float* c, const float* rowcnd,
              const float* colcnd, const float* amax, char* equed );

void CLAQGE( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const float* r, const float* c,
             const float* rowcnd, const float* colcnd, const float* amax,
             char* equed );
void CLAQGE_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const float* r, const float* c,
              const float* rowcnd, const float* colcnd, const float* amax,
              char* equed );
void claqge( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const float* r, const float* c,
             const float* rowcnd, const float* colcnd, const float* amax,
             char* equed );
void claqge_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const float* r, const float* c,
              const float* rowcnd, const float* colcnd, const float* amax,
              char* equed );

void CLAQHB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, float* s,
             const float* scond, const float* amax, char* equed );
void CLAQHB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, float* s,
              const float* scond, const float* amax, char* equed );
void claqhb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, float* s,
             const float* scond, const float* amax, char* equed );
void claqhb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, float* s,
              const float* scond, const float* amax, char* equed );

void CLAQHE( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const float* s, const float* scond,
             const float* amax, char* equed );
void CLAQHE_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const float* s, const float* scond,
              const float* amax, char* equed );
void claqhe( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const float* s, const float* scond,
             const float* amax, char* equed );
void claqhe_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const float* s, const float* scond,
              const float* amax, char* equed );

void CLAQHP( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const float* s, const float* scond, const float* amax,
             char* equed );
void CLAQHP_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const float* s, const float* scond, const float* amax,
              char* equed );
void claqhp( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const float* s, const float* scond, const float* amax,
             char* equed );
void claqhp_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const float* s, const float* scond, const float* amax,
              char* equed );

void CLAQP2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* jpvt,
             MKL_Complex8* tau, float* vn1, float* vn2, MKL_Complex8* work );
void CLAQP2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* jpvt,
              MKL_Complex8* tau, float* vn1, float* vn2, MKL_Complex8* work );
void claqp2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* jpvt,
             MKL_Complex8* tau, float* vn1, float* vn2, MKL_Complex8* work );
void claqp2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* jpvt,
              MKL_Complex8* tau, float* vn1, float* vn2, MKL_Complex8* work );

void CLAQPS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau, float* vn1,
             float* vn2, MKL_Complex8* auxv, MKL_Complex8* f,
             const MKL_INT* ldf );
void CLAQPS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau, float* vn1,
              float* vn2, MKL_Complex8* auxv, MKL_Complex8* f,
              const MKL_INT* ldf );
void claqps( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau, float* vn1,
             float* vn2, MKL_Complex8* auxv, MKL_Complex8* f,
             const MKL_INT* ldf );
void claqps_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex8* tau, float* vn1,
              float* vn2, MKL_Complex8* auxv, MKL_Complex8* f,
              const MKL_INT* ldf );

void CLAQR0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz, MKL_INT* ihiz,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CLAQR0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void claqr0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz, MKL_INT* ihiz,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void claqr0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CLAQR1( const MKL_INT* n, const MKL_Complex8* h, const MKL_INT* ldh,
             const MKL_Complex8* s1, MKL_Complex8* s2, MKL_Complex8* v );
void CLAQR1_( const MKL_INT* n, const MKL_Complex8* h, const MKL_INT* ldh,
              const MKL_Complex8* s1, MKL_Complex8* s2, MKL_Complex8* v );
void claqr1( const MKL_INT* n, const MKL_Complex8* h, const MKL_INT* ldh,
             const MKL_Complex8* s1, MKL_Complex8* s2, MKL_Complex8* v );
void claqr1_( const MKL_INT* n, const MKL_Complex8* h, const MKL_INT* ldh,
              const MKL_Complex8* s1, MKL_Complex8* s2, MKL_Complex8* v );

void CLAQR2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
             const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );
void CLAQR2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
              const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );
void claqr2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
             const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );
void claqr2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
              const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );

void CLAQR3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
             const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );
void CLAQR3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
              const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );
void claqr3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
             const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );
void claqr3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex8* sh, MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex8* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex8* wv,
              const MKL_INT* ldwv, MKL_Complex8* work, const MKL_INT* lwork );

void CLAQR4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz, MKL_INT* ihiz,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CLAQR4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void claqr4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
             const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz, MKL_INT* ihiz,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void claqr4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex8* h,
              const MKL_INT* ldh, MKL_Complex8* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CLAQR5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, MKL_Complex8* s, MKL_Complex8* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* v,
             const MKL_INT* ldv, MKL_Complex8* u, const MKL_INT* ldu,
             const MKL_INT* nv, MKL_Complex8* wv, const MKL_INT* ldwv,
             const MKL_INT* nh, MKL_Complex8* wh, const MKL_INT* ldwh );
void CLAQR5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, MKL_Complex8* s,
              MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* u,
              const MKL_INT* ldu, const MKL_INT* nv, MKL_Complex8* wv,
              const MKL_INT* ldwv, const MKL_INT* nh, MKL_Complex8* wh,
              const MKL_INT* ldwh );
void claqr5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, MKL_Complex8* s, MKL_Complex8* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* v,
             const MKL_INT* ldv, MKL_Complex8* u, const MKL_INT* ldu,
             const MKL_INT* nv, MKL_Complex8* wv, const MKL_INT* ldwv,
             const MKL_INT* nh, MKL_Complex8* wh, const MKL_INT* ldwh );
void claqr5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, MKL_Complex8* s,
              MKL_Complex8* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* v, const MKL_INT* ldv, MKL_Complex8* u,
              const MKL_INT* ldu, const MKL_INT* nv, MKL_Complex8* wv,
              const MKL_INT* ldwv, const MKL_INT* nh, MKL_Complex8* wh,
              const MKL_INT* ldwh );

void CLAQSB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, const float* s,
             const float* scond, const float* amax, char* equed );
void CLAQSB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, const float* s,
              const float* scond, const float* amax, char* equed );
void claqsb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, const float* s,
             const float* scond, const float* amax, char* equed );
void claqsb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, const float* s,
              const float* scond, const float* amax, char* equed );

void CLAQSP( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const float* s, const float* scond, const float* amax,
             char* equed );
void CLAQSP_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const float* s, const float* scond, const float* amax,
              char* equed );
void claqsp( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const float* s, const float* scond, const float* amax,
             char* equed );
void claqsp_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const float* s, const float* scond, const float* amax,
              char* equed );

void CLAQSY( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const float* s, const float* scond,
             const float* amax, char* equed );
void CLAQSY_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const float* s, const float* scond,
              const float* amax, char* equed );
void claqsy( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const float* s, const float* scond,
             const float* amax, char* equed );
void claqsy_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const float* s, const float* scond,
              const float* amax, char* equed );

void CLAR1V( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const float* lambda, const float* d, const float* l,
             const float* ld, const float* lld, const float* pivmin,
             const float* gaptol, MKL_Complex8* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
             MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
             float* work );
void CLAR1V_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const float* lambda, const float* d, const float* l,
              const float* ld, const float* lld, const float* pivmin,
              const float* gaptol, MKL_Complex8* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
              MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
              float* work );
void clar1v( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const float* lambda, const float* d, const float* l,
             const float* ld, const float* lld, const float* pivmin,
             const float* gaptol, MKL_Complex8* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
             MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
             float* work );
void clar1v_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const float* lambda, const float* d, const float* l,
              const float* ld, const float* lld, const float* pivmin,
              const float* gaptol, MKL_Complex8* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
              MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
              float* work );

void CLAR2V( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
             MKL_Complex8* z, const MKL_INT* incx, const float* c,
             const MKL_Complex8* s, const MKL_INT* incc );
void CLAR2V_( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
              MKL_Complex8* z, const MKL_INT* incx, const float* c,
              const MKL_Complex8* s, const MKL_INT* incc );
void clar2v( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
             MKL_Complex8* z, const MKL_INT* incx, const float* c,
             const MKL_Complex8* s, const MKL_INT* incc );
void clar2v_( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
              MKL_Complex8* z, const MKL_INT* incx, const float* c,
              const MKL_Complex8* s, const MKL_INT* incc );

void CLARCM( const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* c, const MKL_INT* ldc, float* rwork );
void CLARCM_( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* c, const MKL_INT* ldc, float* rwork );
void clarcm( const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* c, const MKL_INT* ldc, float* rwork );
void clarcm_( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* c, const MKL_INT* ldc, float* rwork );

void CLARFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
             const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* ldwork );
void CLARFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* ldwork );
void clarfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
             const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* ldwork );
void clarfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* ldwork );

void CLARF( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_Complex8* v, const MKL_INT* incv,
            const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
            MKL_Complex8* work );
void CLARF_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* v, const MKL_INT* incv,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work );
void clarf( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_Complex8* v, const MKL_INT* incv,
            const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
            MKL_Complex8* work );
void clarf_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* v, const MKL_INT* incv,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work );

void CLARFG( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
             const MKL_INT* incx, MKL_Complex8* tau );
void CLARFG_( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
              const MKL_INT* incx, MKL_Complex8* tau );
void clarfg( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
             const MKL_INT* incx, MKL_Complex8* tau );
void clarfg_( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
              const MKL_INT* incx, MKL_Complex8* tau );

void CLARFGP( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
              const MKL_INT* incx, MKL_Complex8* tau );
void CLARFGP_( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
               const MKL_INT* incx, MKL_Complex8* tau );
void clarfgp( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
              const MKL_INT* incx, MKL_Complex8* tau );
void clarfgp_( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
               const MKL_INT* incx, MKL_Complex8* tau );

void CLARFP( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
             const MKL_INT* incx, MKL_Complex8* tau );
void CLARFP_( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
              const MKL_INT* incx, MKL_Complex8* tau );
void clarfp( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
             const MKL_INT* incx, MKL_Complex8* tau );
void clarfp_( const MKL_INT* n, MKL_Complex8* alpha, MKL_Complex8* x,
              const MKL_INT* incx, MKL_Complex8* tau );

void CLARFT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
             const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );
void CLARFT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );
void clarft( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
             const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );
void clarft_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );

void CLARFX( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* v, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work );
void CLARFX_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* v, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work );
void clarfx( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* v, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work );
void clarfx_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* v, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work );

void CLARGV( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
             MKL_Complex8* y, const MKL_INT* incy, float* c,
             const MKL_INT* incc );
void CLARGV_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
              MKL_Complex8* y, const MKL_INT* incy, float* c,
              const MKL_INT* incc );
void clargv( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
             MKL_Complex8* y, const MKL_INT* incy, float* c,
             const MKL_INT* incc );
void clargv_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
              MKL_Complex8* y, const MKL_INT* incy, float* c,
              const MKL_INT* incc );

void CLARNV( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             MKL_Complex8* x );
void CLARNV_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              MKL_Complex8* x );
void clarnv( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             MKL_Complex8* x );
void clarnv_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              MKL_Complex8* x );

void CLARRV( const MKL_INT* n, const float* vl, const float* vu, float* d,
             float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
             const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
             const float* rtol1, const float* rtol2, float* w, float* werr,
             float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
             const float* gers, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* isuppz, float* work, MKL_INT* iwork, MKL_INT* info );
void CLARRV_( const MKL_INT* n, const float* vl, const float* vu, float* d,
              float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
              const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
              const float* rtol1, const float* rtol2, float* w, float* werr,
              float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
              const float* gers, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* isuppz, float* work, MKL_INT* iwork, MKL_INT* info );
void clarrv( const MKL_INT* n, const float* vl, const float* vu, float* d,
             float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
             const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
             const float* rtol1, const float* rtol2, float* w, float* werr,
             float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
             const float* gers, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* isuppz, float* work, MKL_INT* iwork, MKL_INT* info );
void clarrv_( const MKL_INT* n, const float* vl, const float* vu, float* d,
              float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
              const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
              const float* rtol1, const float* rtol2, float* w, float* werr,
              float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
              const float* gers, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* isuppz, float* work, MKL_INT* iwork, MKL_INT* info );

void CLARSCL2( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
               const MKL_INT* ldx );
void CLARSCL2_( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
                const MKL_INT* ldx );
void clarscl2( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
               const MKL_INT* ldx );
void clarscl2_( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
               const MKL_INT* ldx );

void CLARTG( const MKL_Complex8* f, const MKL_Complex8* g, float* cs,
             MKL_Complex8* sn, MKL_Complex8* r );
void CLARTG_( const MKL_Complex8* f, const MKL_Complex8* g, float* cs,
              MKL_Complex8* sn, MKL_Complex8* r );
void clartg( const MKL_Complex8* f, const MKL_Complex8* g, float* cs,
             MKL_Complex8* sn, MKL_Complex8* r );
void clartg_( const MKL_Complex8* f, const MKL_Complex8* g, float* cs,
              MKL_Complex8* sn, MKL_Complex8* r );

void CLARTV( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
             MKL_Complex8* y, const MKL_INT* incy, const float* c,
             const MKL_Complex8* s, const MKL_INT* incc );
void CLARTV_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
              MKL_Complex8* y, const MKL_INT* incy, const float* c,
              const MKL_Complex8* s, const MKL_INT* incc );
void clartv( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
             MKL_Complex8* y, const MKL_INT* incy, const float* c,
             const MKL_Complex8* s, const MKL_INT* incc );
void clartv_( const MKL_INT* n, MKL_Complex8* x, const MKL_INT* incx,
              MKL_Complex8* y, const MKL_INT* incy, const float* c,
              const MKL_Complex8* s, const MKL_INT* incc );

void CLARZB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work,
             const MKL_INT* ldwork );
void CLARZB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work,
              const MKL_INT* ldwork );
void clarzb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work,
             const MKL_INT* ldwork );
void clarzb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* c, const MKL_INT* ldc, MKL_Complex8* work,
              const MKL_INT* ldwork );

void CLARZ( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const MKL_Complex8* v, const MKL_INT* incv,
            const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
            MKL_Complex8* work );
void CLARZ_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const MKL_Complex8* v, const MKL_INT* incv,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work );
void clarz( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const MKL_Complex8* v, const MKL_INT* incv,
            const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
            MKL_Complex8* work );
void clarz_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const MKL_Complex8* v, const MKL_INT* incv,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work );

void CLARZT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex8* v, const MKL_INT* ldv,
             const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );
void CLARZT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );
void clarzt( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex8* v, const MKL_INT* ldv,
             const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );
void clarzt_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex8* v, const MKL_INT* ldv,
              const MKL_Complex8* tau, MKL_Complex8* t, const MKL_INT* ldt );

void CLASCL( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const float* cfrom, const float* cto, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* info );
void CLASCL_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const float* cfrom, const float* cto, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* info );
void clascl( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const float* cfrom, const float* cto, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* info );
void clascl_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const float* cfrom, const float* cto, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* info );

void CLASCL2( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
              const MKL_INT* ldx );
void CLASCL2_( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
               const MKL_INT* ldx );
void clascl2( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
              const MKL_INT* ldx );
void clascl2_( const MKL_INT* m, const MKL_INT* n, const float* d, MKL_Complex8* x,
               const MKL_INT* ldx );

void CLASET( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* alpha, const MKL_Complex8* beta,
             MKL_Complex8* a, const MKL_INT* lda );
void CLASET_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* alpha, const MKL_Complex8* beta,
              MKL_Complex8* a, const MKL_INT* lda );
void claset( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* alpha, const MKL_Complex8* beta,
             MKL_Complex8* a, const MKL_INT* lda );
void claset_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* alpha, const MKL_Complex8* beta,
              MKL_Complex8* a, const MKL_INT* lda );

void CLASR( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const float* c, const float* s,
            MKL_Complex8* a, const MKL_INT* lda );
void CLASR_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const float* c,
             const float* s, MKL_Complex8* a, const MKL_INT* lda );
void clasr( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const float* c, const float* s,
            MKL_Complex8* a, const MKL_INT* lda );
void clasr_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const float* c,
             const float* s, MKL_Complex8* a, const MKL_INT* lda );

void CLASSQ( const MKL_INT* n, const MKL_Complex8* x, const MKL_INT* incx,
             float* scale, float* sumsq );
void CLASSQ_( const MKL_INT* n, const MKL_Complex8* x, const MKL_INT* incx,
              float* scale, float* sumsq );
void classq( const MKL_INT* n, const MKL_Complex8* x, const MKL_INT* incx,
             float* scale, float* sumsq );
void classq_( const MKL_INT* n, const MKL_Complex8* x, const MKL_INT* incx,
              float* scale, float* sumsq );

void CLASWP( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
             const MKL_INT* incx );
void CLASWP_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );
void claswp( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
             const MKL_INT* incx );
void claswp_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );

void CLASYF( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void CLASYF_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clasyf( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );
void clasyf_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex8* w, const MKL_INT* ldw, MKL_INT* info );

void CLATBS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* x,
             float* scale, float* cnorm, MKL_INT* info );
void CLATBS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* x,
              float* scale, float* cnorm, MKL_INT* info );
void clatbs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* x,
             float* scale, float* cnorm, MKL_INT* info );
void clatbs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* x,
              float* scale, float* cnorm, MKL_INT* info );

void CLATDF( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* rhs, float* rdsum,
             float* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );
void CLATDF_( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* rhs, float* rdsum,
              float* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );
void clatdf( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex8* z,
             const MKL_INT* ldz, MKL_Complex8* rhs, float* rdsum,
             float* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );
void clatdf_( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex8* z,
              const MKL_INT* ldz, MKL_Complex8* rhs, float* rdsum,
              float* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );

void CLATPS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex8* ap,
             MKL_Complex8* x, float* scale, float* cnorm, MKL_INT* info );
void CLATPS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex8* ap,
              MKL_Complex8* x, float* scale, float* cnorm, MKL_INT* info );
void clatps( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex8* ap,
             MKL_Complex8* x, float* scale, float* cnorm, MKL_INT* info );
void clatps_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex8* ap,
              MKL_Complex8* x, float* scale, float* cnorm, MKL_INT* info );

void CLATRD( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, float* e, MKL_Complex8* tau,
             MKL_Complex8* w, const MKL_INT* ldw );
void CLATRD_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, float* e, MKL_Complex8* tau,
              MKL_Complex8* w, const MKL_INT* ldw );
void clatrd( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex8* a, const MKL_INT* lda, float* e, MKL_Complex8* tau,
             MKL_Complex8* w, const MKL_INT* ldw );
void clatrd_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex8* a, const MKL_INT* lda, float* e, MKL_Complex8* tau,
              MKL_Complex8* w, const MKL_INT* ldw );

void CLATRS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* x, float* scale, float* cnorm,
             MKL_INT* info );
void CLATRS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* x, float* scale, float* cnorm,
              MKL_INT* info );
void clatrs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* x, float* scale, float* cnorm,
             MKL_INT* info );
void clatrs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* x, float* scale, float* cnorm,
              MKL_INT* info );

void CLATRZ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* work );
void CLATRZ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* work );
void clatrz( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
             MKL_Complex8* work );
void clatrz_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* tau,
              MKL_Complex8* work );

void CLATZM( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* v, const MKL_INT* incv,
             const MKL_Complex8* tau, MKL_Complex8* c1, MKL_Complex8* c2,
             const MKL_INT* ldc, MKL_Complex8* work );
void CLATZM_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* v, const MKL_INT* incv,
              const MKL_Complex8* tau, MKL_Complex8* c1, MKL_Complex8* c2,
              const MKL_INT* ldc, MKL_Complex8* work );
void clatzm( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex8* v, const MKL_INT* incv,
             const MKL_Complex8* tau, MKL_Complex8* c1, MKL_Complex8* c2,
             const MKL_INT* ldc, MKL_Complex8* work );
void clatzm_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex8* v, const MKL_INT* incv,
              const MKL_Complex8* tau, MKL_Complex8* c1, MKL_Complex8* c2,
              const MKL_INT* ldc, MKL_Complex8* work );

void CLAUU2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void CLAUU2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );
void clauu2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void clauu2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );

void CLAUUM( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void CLAUUM_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );
void clauum( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void clauum_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );

void CPBCON( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex8* ab, const MKL_INT* ldab, const float* anorm,
             float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPBCON_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex8* ab, const MKL_INT* ldab, const float* anorm,
              float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cpbcon( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex8* ab, const MKL_INT* ldab, const float* anorm,
             float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cpbcon_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex8* ab, const MKL_INT* ldab, const float* anorm,
              float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPBEQU( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex8* ab, const MKL_INT* ldab, float* s,
             float* scond, float* amax, MKL_INT* info );
void CPBEQU_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex8* ab, const MKL_INT* ldab, float* s,
              float* scond, float* amax, MKL_INT* info );
void cpbequ( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex8* ab, const MKL_INT* ldab, float* s,
             float* scond, float* amax, MKL_INT* info );
void cpbequ_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex8* ab, const MKL_INT* ldab, float* s,
              float* scond, float* amax, MKL_INT* info );

void CPBRFS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
             const MKL_Complex8* afb, const MKL_INT* ldafb,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CPBRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_Complex8* afb, const MKL_INT* ldafb,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cpbrfs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
             const MKL_Complex8* afb, const MKL_INT* ldafb,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void cpbrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_Complex8* afb, const MKL_INT* ldafb,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CPBSTF( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void CPBSTF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void cpbstf( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void cpbstf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );

void CPBSV( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CPBSV_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cpbsv( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cpbsv_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CPBSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* afb, const MKL_INT* ldafb,
             char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPBSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex8* ab,
              const MKL_INT* ldab, MKL_Complex8* afb, const MKL_INT* ldafb,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cpbsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex8* ab,
             const MKL_INT* ldab, MKL_Complex8* afb, const MKL_INT* ldafb,
             char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cpbsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex8* ab,
              const MKL_INT* ldab, MKL_Complex8* afb, const MKL_INT* ldafb,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPBTF2( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void CPBTF2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void cpbtf2( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void cpbtf2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );

void CPBTRF( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void CPBTRF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void cpbtrf( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );
void cpbtrf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex8* ab, const MKL_INT* ldab, MKL_INT* info );

void CPBTRS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CPBTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cpbtrs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cpbtrs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex8* ab, const MKL_INT* ldab,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CPFTRF( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, MKL_INT* info );
void CPFTRF_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, MKL_INT* info );
void cpftrf( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, MKL_INT* info );
void cpftrf_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, MKL_INT* info );

void CPFTRI( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, MKL_INT* info );
void CPFTRI_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, MKL_INT* info );
void cpftri( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex8* a, MKL_INT* info );
void cpftri_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex8* a, MKL_INT* info );

void CPFTRS( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* a, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CPFTRS_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void cpftrs( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* a, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cpftrs_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CPOCON( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const float* anorm, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPOCON_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cpocon( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const float* anorm, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cpocon_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPOEQUB( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              float* s, float* scond, float* amax, MKL_INT* info );
void CPOEQUB_( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
               float* s, float* scond, float* amax, MKL_INT* info );
void cpoequb( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              float* s, float* scond, float* amax, MKL_INT* info );
void cpoequb_( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
               float* s, float* scond, float* amax, MKL_INT* info );

void CPOEQU( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             float* s, float* scond, float* amax, MKL_INT* info );
void CPOEQU_( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              float* s, float* scond, float* amax, MKL_INT* info );
void cpoequ( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             float* s, float* scond, float* amax, MKL_INT* info );
void cpoequ_( const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              float* s, float* scond, float* amax, MKL_INT* info );

void CPORFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPORFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cporfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cporfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CPORFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const float* s,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPORFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf, const float* s,
               const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );
void cporfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const float* s,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cporfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf, const float* s,
               const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPOSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void CPOSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cposv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void cposv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );

void CPOSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPOSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cposvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cposvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPOSVXX( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPOSVXX_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );
void cposvxx( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void cposvxx_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, char* equed, float* s,
               MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPOTF2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void CPOTF2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );
void cpotf2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void cpotf2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );

void CPOTRF( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void CPOTRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );
void cpotrf( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void cpotrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );

void CPOTRI( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void CPOTRI_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );
void cpotri( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* info );
void cpotri_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* info );

void CPOTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CPOTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void cpotrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cpotrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CPPCON( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const float* anorm, float* rcond, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CPPCON_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const float* anorm, float* rcond, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cppcon( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const float* anorm, float* rcond, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void cppcon_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const float* anorm, float* rcond, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CPPEQU( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             float* s, float* scond, float* amax, MKL_INT* info );
void CPPEQU_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              float* s, float* scond, float* amax, MKL_INT* info );
void cppequ( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             float* s, float* scond, float* amax, MKL_INT* info );
void cppequ_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              float* s, float* scond, float* amax, MKL_INT* info );

void CPPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_Complex8* afp,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CPPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_Complex8* afp,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void cpprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_Complex8* afp,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void cpprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_Complex8* afp,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CPPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
            MKL_INT* info );
void CPPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void cppsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
            MKL_INT* info );
void cppsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );

void CPPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* ap, MKL_Complex8* afp,
             char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* ap, MKL_Complex8* afp,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cppsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex8* ap, MKL_Complex8* afp,
             char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cppsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* ap, MKL_Complex8* afp,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPPTRF( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* info );
void CPPTRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* info );
void cpptrf( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* info );
void cpptrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* info );

void CPPTRI( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* info );
void CPPTRI_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* info );
void cpptri( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* info );
void cpptri_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* info );

void CPPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void CPPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );
void cpptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void cpptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );

void CPSTF2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank, const float* tol,
             float* work, MKL_INT* info );
void CPSTF2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const float* tol, float* work, MKL_INT* info );
void cpstf2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank, const float* tol,
             float* work, MKL_INT* info );
void cpstf2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const float* tol, float* work, MKL_INT* info );

void CPSTRF( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank, const float* tol,
             float* work, MKL_INT* info );
void CPSTRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const float* tol, float* work, MKL_INT* info );
void cpstrf( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank, const float* tol,
             float* work, MKL_INT* info );
void cpstrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const float* tol, float* work, MKL_INT* info );

void CPTCON( const MKL_INT* n, const float* d, const MKL_Complex8* e,
             const float* anorm, float* rcond, float* rwork, MKL_INT* info );
void CPTCON_( const MKL_INT* n, const float* d, const MKL_Complex8* e,
              const float* anorm, float* rcond, float* rwork, MKL_INT* info );
void cptcon( const MKL_INT* n, const float* d, const MKL_Complex8* e,
             const float* anorm, float* rcond, float* rwork, MKL_INT* info );
void cptcon_( const MKL_INT* n, const float* d, const MKL_Complex8* e,
              const float* anorm, float* rcond, float* rwork, MKL_INT* info );

void CPTEQR( const char* compz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void CPTEQR_( const char* compz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* z, const MKL_INT* ldz, float* work,
              MKL_INT* info );
void cpteqr( const char* compz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void cpteqr_( const char* compz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* z, const MKL_INT* ldz, float* work,
              MKL_INT* info );

void CPTRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, const float* df,
             const MKL_Complex8* ef, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPTRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, const float* df,
              const MKL_Complex8* ef, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* ferr, float* berr, MKL_Complex8* work, float* rwork,
              MKL_INT* info );
void cptrfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, const float* df,
             const MKL_Complex8* ef, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void cptrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, const float* df,
              const MKL_Complex8* ef, const MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
              float* ferr, float* berr, MKL_Complex8* work, float* rwork,
              MKL_INT* info );

void CPTSV( const MKL_INT* n, const MKL_INT* nrhs, float* d, MKL_Complex8* e,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CPTSV_( const MKL_INT* n, const MKL_INT* nrhs, float* d, MKL_Complex8* e,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cptsv( const MKL_INT* n, const MKL_INT* nrhs, float* d, MKL_Complex8* e,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void cptsv_( const MKL_INT* n, const MKL_INT* nrhs, float* d, MKL_Complex8* e,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CPTSVX( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, float* df,
             MKL_Complex8* ef, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CPTSVX_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, float* df,
              MKL_Complex8* ef, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cptsvx( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, float* df,
             MKL_Complex8* ef, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cptsvx_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, float* df,
              MKL_Complex8* ef, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CPTTRF( const MKL_INT* n, float* d, MKL_Complex8* e, MKL_INT* info );
void CPTTRF_( const MKL_INT* n, float* d, MKL_Complex8* e, MKL_INT* info );
void cpttrf( const MKL_INT* n, float* d, MKL_Complex8* e, MKL_INT* info );
void cpttrf_( const MKL_INT* n, float* d, MKL_Complex8* e, MKL_INT* info );

void CPTTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CPTTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void cpttrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cpttrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CPTTS2( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, MKL_Complex8* b,
             const MKL_INT* ldb );
void CPTTS2_( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, MKL_Complex8* b,
              const MKL_INT* ldb );
void cptts2( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const MKL_Complex8* e, MKL_Complex8* b,
             const MKL_INT* ldb );
void cptts2_( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const MKL_Complex8* e, MKL_Complex8* b,
              const MKL_INT* ldb );

void CROT( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
           MKL_Complex8* cy, const MKL_INT* incy, const float* c,
           const MKL_Complex8* s );
void CROT_( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
            MKL_Complex8* cy, const MKL_INT* incy, const float* c,
            const MKL_Complex8* s );
void crot( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
           MKL_Complex8* cy, const MKL_INT* incy, const float* c,
           const MKL_Complex8* s );
void crot_( const MKL_INT* n, MKL_Complex8* cx, const MKL_INT* incx,
            MKL_Complex8* cy, const MKL_INT* incy, const float* c,
            const MKL_Complex8* s );

void CSPCON( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             MKL_Complex8* work, MKL_INT* info );
void CSPCON_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              MKL_Complex8* work, MKL_INT* info );
void cspcon( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             MKL_Complex8* work, MKL_INT* info );
void cspcon_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              MKL_Complex8* work, MKL_INT* info );

void CSPMV( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* ap, const MKL_Complex8* x, const MKL_INT* incx,
            const MKL_Complex8* beta, MKL_Complex8* y, const MKL_INT* incy );
void CSPMV_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
             const MKL_Complex8* ap, const MKL_Complex8* x,
             const MKL_INT* incx, const MKL_Complex8* beta, MKL_Complex8* y,
             const MKL_INT* incy );
void cspmv( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* ap, const MKL_Complex8* x, const MKL_INT* incx,
            const MKL_Complex8* beta, MKL_Complex8* y, const MKL_INT* incy );
void cspmv_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
             const MKL_Complex8* ap, const MKL_Complex8* x,
             const MKL_INT* incx, const MKL_Complex8* beta, MKL_Complex8* y,
             const MKL_INT* incy );

void CSPR( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
           const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* ap );
void CSPR_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* ap );
void cspr( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
           const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* ap );
void cspr_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* ap );

void CSPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_Complex8* afp,
             const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CSPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_Complex8* afp,
              const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void csprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_Complex8* afp,
             const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void csprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_Complex8* afp,
              const MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* ferr, float* berr,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CSPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void CSPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cspsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
            const MKL_INT* ldb, MKL_INT* info );
void cspsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* ap, MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );

void CSPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
             MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CSPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
              MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cspsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
             MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void cspsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* ap, MKL_Complex8* afp,
              MKL_INT* ipiv, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CSPTRF( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* ipiv, MKL_INT* info );
void CSPTRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* ipiv, MKL_INT* info );
void csptrf( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             MKL_INT* ipiv, MKL_INT* info );
void csptrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              MKL_INT* ipiv, MKL_INT* info );

void CSPTRI( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );
void CSPTRI_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );
void csptri( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
             const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );
void csptri_( const char* uplo, const MKL_INT* n, MKL_Complex8* ap,
              const MKL_INT* ipiv, MKL_Complex8* work, MKL_INT* info );

void CSPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CSPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void csptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void csptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* ap, const MKL_INT* ipiv, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CSRSCL( const MKL_INT* n, const float* sa, MKL_Complex8* sx,
             const MKL_INT* incx );
void CSRSCL_( const MKL_INT* n, const float* sa, MKL_Complex8* sx,
              const MKL_INT* incx );
void csrscl( const MKL_INT* n, const float* sa, MKL_Complex8* sx,
             const MKL_INT* incx );
void csrscl_( const MKL_INT* n, const float* sa, MKL_Complex8* sx,
              const MKL_INT* incx );

void CSTEDC( const char* compz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CSTEDC_( const char* compz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void cstedc( const char* compz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
             const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void cstedc_( const char* compz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_Complex8* work,
              const MKL_INT* lwork, float* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void CSTEGR( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void CSTEGR_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz,
              float* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );
void cstegr( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void cstegr_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              MKL_Complex8* z, const MKL_INT* ldz, MKL_INT* isuppz,
              float* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );

void CSTEIN( const MKL_INT* n, const float* d, const float* e,
             const MKL_INT* m, const float* w, const MKL_INT* iblock,
             const MKL_INT* isplit, MKL_Complex8* z, const MKL_INT* ldz,
             float* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void CSTEIN_( const MKL_INT* n, const float* d, const float* e,
              const MKL_INT* m, const float* w, const MKL_INT* iblock,
              const MKL_INT* isplit, MKL_Complex8* z, const MKL_INT* ldz,
              float* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void cstein( const MKL_INT* n, const float* d, const float* e,
             const MKL_INT* m, const float* w, const MKL_INT* iblock,
             const MKL_INT* isplit, MKL_Complex8* z, const MKL_INT* ldz,
             float* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void cstein_( const MKL_INT* n, const float* d, const float* e,
              const MKL_INT* m, const float* w, const MKL_INT* iblock,
              const MKL_INT* isplit, MKL_Complex8* z, const MKL_INT* ldz,
              float* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void CSTEMR( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, float* w, MKL_Complex8* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void CSTEMR_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, float* w, MKL_Complex8* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void cstemr( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, float* w, MKL_Complex8* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void cstemr_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, float* w, MKL_Complex8* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void CSTEQR( const char* compz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void CSTEQR_( const char* compz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* z, const MKL_INT* ldz, float* work,
              MKL_INT* info );
void csteqr( const char* compz, const MKL_INT* n, float* d, float* e,
             MKL_Complex8* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void csteqr_( const char* compz, const MKL_INT* n, float* d, float* e,
              MKL_Complex8* z, const MKL_INT* ldz, float* work,
              MKL_INT* info );

void CSYCON( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
             float* rcond, MKL_Complex8* work, MKL_INT* info );
void CSYCON_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
              float* rcond, MKL_Complex8* work, MKL_INT* info );
void csycon( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
             float* rcond, MKL_Complex8* work, MKL_INT* info );
void csycon_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
              float* rcond, MKL_Complex8* work, MKL_INT* info );

void CSYEQUB( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* s, float* scond, float* amax,
              MKL_Complex8* work, MKL_INT* info );
void CSYEQUB_( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* s, float* scond, float* amax,
               MKL_Complex8* work, MKL_INT* info );
void csyequb( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, float* s, float* scond, float* amax,
              MKL_Complex8* work, MKL_INT* info );
void csyequb_( char* uplo, const MKL_INT* n, const MKL_Complex8* a,
               const MKL_INT* lda, float* s, float* scond, float* amax,
               MKL_Complex8* work, MKL_INT* info );

void CSYMV( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* x,
            const MKL_INT* incx, const MKL_Complex8* beta, MKL_Complex8* y,
            const MKL_INT* incy );
void CSYMV_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* x,
             const MKL_INT* incx, const MKL_Complex8* beta, MKL_Complex8* y,
             const MKL_INT* incy );
void csymv( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* x,
            const MKL_INT* incx, const MKL_Complex8* beta, MKL_Complex8* y,
            const MKL_INT* incy );
void csymv_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* x,
             const MKL_INT* incx, const MKL_Complex8* beta, MKL_Complex8* y,
             const MKL_INT* incy );

void CSYR( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
           const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* a,
           const MKL_INT* lda );
void CSYR_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* a,
            const MKL_INT* lda );
void csyr( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
           const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* a,
           const MKL_INT* lda );
void csyr_( const char* uplo, const MKL_INT* n, const MKL_Complex8* alpha,
            const MKL_Complex8* x, const MKL_INT* incx, MKL_Complex8* a,
            const MKL_INT* lda );

void CSYRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void CSYRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void csyrfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
             float* ferr, float* berr, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void csyrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CSYRFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* s, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CSYRFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const float* s, const MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
               float* rcond, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );
void csyrfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* s, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void csyrfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
               const MKL_Complex8* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const float* s, const MKL_Complex8* b,
               const MKL_INT* ldb, MKL_Complex8* x, const MKL_INT* ldx,
               float* rcond, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );

void CSYSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
            const MKL_INT* lwork, MKL_INT* info );
void CSYSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void csysv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
            const MKL_INT* lwork, MKL_INT* info );
void csysv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );

void CSYSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void CSYSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );
void csysvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
             MKL_INT* info );
void csysvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              MKL_Complex8* work, const MKL_INT* lwork, float* rwork,
              MKL_INT* info );

void CSYSVXX( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* rpvgrw,
              float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void CSYSVXX_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* x, const MKL_INT* ldx, float* rcond,
               float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );
void csysvxx( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* x, const MKL_INT* ldx, float* rcond, float* rpvgrw,
              float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void csysvxx_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex8* a, const MKL_INT* lda,
               MKL_Complex8* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, float* s, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_Complex8* x, const MKL_INT* ldx, float* rcond,
               float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, MKL_Complex8* work,
               float* rwork, MKL_INT* info );

void CSYTF2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void CSYTF2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void csytf2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void csytf2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void CSYTRF( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CSYTRF_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void csytrf( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void csytrf_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CSYTRI( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
             MKL_INT* info );
void CSYTRI_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              MKL_INT* info );
void csytri( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
             MKL_INT* info );
void csytri_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              MKL_INT* info );

void CSYTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CSYTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void csytrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void csytrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CTBCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_Complex8* ab,
             const MKL_INT* ldab, float* rcond, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CTBCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_Complex8* ab,
              const MKL_INT* ldab, float* rcond, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void ctbcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_Complex8* ab,
             const MKL_INT* ldab, float* rcond, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void ctbcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_Complex8* ab,
              const MKL_INT* ldab, float* rcond, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CTBRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex8* ab, const MKL_INT* ldab,
             const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CTBRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void ctbrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex8* ab, const MKL_INT* ldab,
             const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void ctbrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex8* ab, const MKL_INT* ldab,
              const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CTBTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CTBTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void ctbtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void ctbtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex8* ab, const MKL_INT* ldab, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CTFSM( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const MKL_Complex8* alpha, const MKL_Complex8* a,
            MKL_Complex8* b, const MKL_INT* ldb );
void CTFSM_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex8* alpha,
             const MKL_Complex8* a, MKL_Complex8* b, const MKL_INT* ldb );
void ctfsm( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const MKL_Complex8* alpha, const MKL_Complex8* a,
            MKL_Complex8* b, const MKL_INT* ldb );
void ctfsm_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex8* alpha,
             const MKL_Complex8* a, MKL_Complex8* b, const MKL_INT* ldb );

void CTFTRI( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, MKL_Complex8* a, MKL_INT* info );
void CTFTRI_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, MKL_Complex8* a, MKL_INT* info );
void ctftri( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, MKL_Complex8* a, MKL_INT* info );
void ctftri_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, MKL_Complex8* a, MKL_INT* info );

void CTFTTP( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* arf, MKL_Complex8* ap, MKL_INT* info );
void CTFTTP_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* arf, MKL_Complex8* ap, MKL_INT* info );
void ctfttp( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* arf, MKL_Complex8* ap, MKL_INT* info );
void ctfttp_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* arf, MKL_Complex8* ap, MKL_INT* info );

void CTFTTR( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* arf, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* info );
void CTFTTR_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* arf, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* info );
void ctfttr( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* arf, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* info );
void ctfttr_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* arf, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* info );

void CTGEVC( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex8* s, const MKL_INT* lds,
             const MKL_Complex8* p, const MKL_INT* ldp, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void CTGEVC_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex8* s, const MKL_INT* lds,
              const MKL_Complex8* p, const MKL_INT* ldp, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
              MKL_INT* info );
void ctgevc( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex8* s, const MKL_INT* lds,
             const MKL_Complex8* p, const MKL_INT* ldp, MKL_Complex8* vl,
             const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
             MKL_INT* info );
void ctgevc_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex8* s, const MKL_INT* lds,
              const MKL_Complex8* p, const MKL_INT* ldp, MKL_Complex8* vl,
              const MKL_INT* ldvl, MKL_Complex8* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work, float* rwork,
              MKL_INT* info );

void CTGEX2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* j1,
             MKL_INT* info );
void CTGEX2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* j1,
              MKL_INT* info );
void ctgex2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* j1,
             MKL_INT* info );
void ctgex2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* j1,
              MKL_INT* info );

void CTGEXC( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* ifst,
             MKL_INT* ilst, MKL_INT* info );
void CTGEXC_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* ifst,
              MKL_INT* ilst, MKL_INT* info );
void ctgexc( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* ifst,
             MKL_INT* ilst, MKL_INT* info );
void ctgexc_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* ifst,
              MKL_INT* ilst, MKL_INT* info );

void CTGSEN( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* q,
             const MKL_INT* ldq, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* m, float* pl, float* pr, float* dif, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void CTGSEN_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* q,
              const MKL_INT* ldq, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* m, float* pl, float* pr, float* dif, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void ctgsen( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* q,
             const MKL_INT* ldq, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_INT* m, float* pl, float* pr, float* dif, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ctgsen_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* alpha, MKL_Complex8* beta, MKL_Complex8* q,
              const MKL_INT* ldq, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_INT* m, float* pl, float* pr, float* dif, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void CTGSJA( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             const float* tola, const float* tolb, float* alpha, float* beta,
             MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
             const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* work, MKL_INT* ncycle, MKL_INT* info );
void CTGSJA_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              const float* tola, const float* tolb, float* alpha, float* beta,
              MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* work, MKL_INT* ncycle, MKL_INT* info );
void ctgsja( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             const float* tola, const float* tolb, float* alpha, float* beta,
             MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
             const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* work, MKL_INT* ncycle, MKL_INT* info );
void ctgsja_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              const float* tola, const float* tolb, float* alpha, float* beta,
              MKL_Complex8* u, const MKL_INT* ldu, MKL_Complex8* v,
              const MKL_INT* ldv, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* work, MKL_INT* ncycle, MKL_INT* info );

void CTGSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* vl,
             const MKL_INT* ldvl, const MKL_Complex8* vr, const MKL_INT* ldvr,
             float* s, float* dif, const MKL_INT* mm, MKL_INT* m,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void CTGSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* b, const MKL_INT* ldb,
              const MKL_Complex8* vl, const MKL_INT* ldvl,
              const MKL_Complex8* vr, const MKL_INT* ldvr, float* s,
              float* dif, const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void ctgsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* vl,
             const MKL_INT* ldvl, const MKL_Complex8* vr, const MKL_INT* ldvr,
             float* s, float* dif, const MKL_INT* mm, MKL_INT* m,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void ctgsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* b, const MKL_INT* ldb,
              const MKL_Complex8* vl, const MKL_INT* ldvl,
              const MKL_Complex8* vr, const MKL_INT* ldvr, float* s,
              float* dif, const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void CTGSY2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
             const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
             const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
             const MKL_INT* ldf, float* scale, float* rdsum, float* rdscal,
             MKL_INT* info );
void CTGSY2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
              const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
              const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
              const MKL_INT* ldf, float* scale, float* rdsum, float* rdscal,
              MKL_INT* info );
void ctgsy2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
             const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
             const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
             const MKL_INT* ldf, float* scale, float* rdsum, float* rdscal,
             MKL_INT* info );
void ctgsy2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
              const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
              const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
              const MKL_INT* ldf, float* scale, float* rdsum, float* rdscal,
              MKL_INT* info );

void CTGSYL( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
             const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
             const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
             const MKL_INT* ldf, float* scale, float* dif, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void CTGSYL_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
              const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
              const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
              const MKL_INT* ldf, float* scale, float* dif, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void ctgsyl( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
             const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
             const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
             const MKL_INT* ldf, float* scale, float* dif, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void ctgsyl_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* b, const MKL_INT* ldb, MKL_Complex8* c,
              const MKL_INT* ldc, const MKL_Complex8* d, const MKL_INT* ldd,
              const MKL_Complex8* e, const MKL_INT* lde, MKL_Complex8* f,
              const MKL_INT* ldf, float* scale, float* dif, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void CTPCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex8* ap, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CTPCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex8* ap, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctpcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex8* ap, float* rcond,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctpcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex8* ap, float* rcond,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CTPRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
             const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void CTPRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
              const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );
void ctprfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
             const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
             const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
             float* rwork, MKL_INT* info );
void ctprfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
              const MKL_Complex8* b, const MKL_INT* ldb, const MKL_Complex8* x,
              const MKL_INT* ldx, float* ferr, float* berr, MKL_Complex8* work,
              float* rwork, MKL_INT* info );

void CTPTRI( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex8* ap, MKL_INT* info );
void CTPTRI_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex8* ap, MKL_INT* info );
void ctptri( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex8* ap, MKL_INT* info );
void ctptri_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex8* ap, MKL_INT* info );

void CTPTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void CTPTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void ctptrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
             MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );
void ctptrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* ap,
              MKL_Complex8* b, const MKL_INT* ldb, MKL_INT* info );

void CTPTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* ap, MKL_Complex8* arf, MKL_INT* info );
void CTPTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* ap, MKL_Complex8* arf, MKL_INT* info );
void ctpttf( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* ap, MKL_Complex8* arf, MKL_INT* info );
void ctpttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* ap, MKL_Complex8* arf, MKL_INT* info );

void CTPTTR( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void CTPTTR_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void ctpttr( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void ctpttr_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );

void CTRCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CTRCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctrcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
             float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctrcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex8* a, const MKL_INT* lda,
              float* rcond, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CTREVC( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void CTREVC_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
              const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
              MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctrevc( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
             const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
             MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctrevc_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* vl, const MKL_INT* ldvl, MKL_Complex8* vr,
              const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
              MKL_Complex8* work, float* rwork, MKL_INT* info );

void CTREXC( const char* compq, const MKL_INT* n, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* q, const MKL_INT* ldq,
             const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );
void CTREXC_( const char* compq, const MKL_INT* n, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* q, const MKL_INT* ldq,
              const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );
void ctrexc( const char* compq, const MKL_INT* n, MKL_Complex8* t,
             const MKL_INT* ldt, MKL_Complex8* q, const MKL_INT* ldq,
             const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );
void ctrexc_( const char* compq, const MKL_INT* n, MKL_Complex8* t,
              const MKL_INT* ldt, MKL_Complex8* q, const MKL_INT* ldq,
              const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );

void CTRRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
             const MKL_Complex8* x, const MKL_INT* ldx, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void CTRRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
              const MKL_Complex8* x, const MKL_INT* ldx, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctrrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
             const MKL_Complex8* x, const MKL_INT* ldx, float* ferr,
             float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );
void ctrrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
              const MKL_Complex8* x, const MKL_INT* ldx, float* ferr,
              float* berr, MKL_Complex8* work, float* rwork, MKL_INT* info );

void CTRSEN( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* w, MKL_INT* m,
             float* s, float* sep, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CTRSEN_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* w, MKL_INT* m,
              float* s, float* sep, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void ctrsen( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* w, MKL_INT* m,
             float* s, float* sep, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void ctrsen_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* q, const MKL_INT* ldq, MKL_Complex8* w, MKL_INT* m,
              float* s, float* sep, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CTRSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex8* t, const MKL_INT* ldt,
             const MKL_Complex8* vl, const MKL_INT* ldvl,
             const MKL_Complex8* vr, const MKL_INT* ldvr, float* s, float* sep,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work,
             const MKL_INT* ldwork, float* rwork, MKL_INT* info );
void CTRSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex8* t, const MKL_INT* ldt,
              const MKL_Complex8* vl, const MKL_INT* ldvl,
              const MKL_Complex8* vr, const MKL_INT* ldvr, float* s,
              float* sep, const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work,
              const MKL_INT* ldwork, float* rwork, MKL_INT* info );
void ctrsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex8* t, const MKL_INT* ldt,
             const MKL_Complex8* vl, const MKL_INT* ldvl,
             const MKL_Complex8* vr, const MKL_INT* ldvr, float* s, float* sep,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work,
             const MKL_INT* ldwork, float* rwork, MKL_INT* info );
void ctrsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex8* t, const MKL_INT* ldt,
              const MKL_Complex8* vl, const MKL_INT* ldvl,
              const MKL_Complex8* vr, const MKL_INT* ldvr, float* s,
              float* sep, const MKL_INT* mm, MKL_INT* m, MKL_Complex8* work,
              const MKL_INT* ldwork, float* rwork, MKL_INT* info );

void CTRSYL( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* c, const MKL_INT* ldc, float* scale,
             MKL_INT* info );
void CTRSYL_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* c, const MKL_INT* ldc, float* scale,
              MKL_INT* info );
void ctrsyl( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
             MKL_Complex8* c, const MKL_INT* ldc, float* scale,
             MKL_INT* info );
void ctrsyl_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* b, const MKL_INT* ldb,
              MKL_Complex8* c, const MKL_INT* ldc, float* scale,
              MKL_INT* info );

void CTRTI2( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void CTRTI2_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void ctrti2( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void ctrti2_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );

void CTRTRI( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void CTRTRI_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void ctrtri( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void ctrtri_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );

void CTRTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void CTRTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );
void ctrtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
             MKL_INT* info );
void ctrtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );

void CTRTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* arf,
             MKL_INT* info );
void CTRTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* arf,
              MKL_INT* info );
void ctrttf( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* arf,
             MKL_INT* info );
void ctrttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* arf,
              MKL_INT* info );

void CTRTTP( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* ap, MKL_INT* info );
void CTRTTP_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* ap, MKL_INT* info );
void ctrttp( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* ap, MKL_INT* info );
void ctrttp_( const char* uplo, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* ap, MKL_INT* info );

void CTZRQF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_INT* info );
void CTZRQF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_INT* info );
void ctzrqf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_INT* info );
void ctzrqf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_INT* info );

void CTZRZF( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CTZRZF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void ctzrzf( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void ctzrzf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CUNG2L( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void CUNG2L_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );
void cung2l( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void cung2l_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );

void CUNG2R( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void CUNG2R_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );
void cung2r( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void cung2r_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );

void CUNGBR( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNGBR_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cungbr( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cungbr_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CUNGHR( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNGHR_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunghr( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunghr_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNGL2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void CUNGL2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );
void cungl2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void cungl2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );

void CUNGLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNGLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunglq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunglq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNGQL( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNGQL_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cungql( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cungql_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNGQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNGQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cungqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cungqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNGR2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void CUNGR2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );
void cungr2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, MKL_INT* info );
void cungr2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, MKL_INT* info );

void CUNGRQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNGRQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cungrq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cungrq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex8* a, const MKL_INT* lda, const MKL_Complex8* tau,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNGTR( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void CUNGTR_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void cungtr( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* work,
             const MKL_INT* lwork, MKL_INT* info );
void cungtr_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );

void CUNM2L( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void CUNM2L_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunm2l( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunm2l_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );

void CUNM2R( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void CUNM2R_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunm2r( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunm2r_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );

void CUNMBR( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNMBR_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunmbr( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunmbr_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNMHR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNMHR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunmhr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunmhr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNML2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void CUNML2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunml2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunml2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );

void CUNMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunmlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cunmlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CUNMQL( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNMQL_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunmql( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cunmql_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CUNMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunmqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cunmqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CUNMR2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void CUNMR2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunmr2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );
void cunmr2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, MKL_INT* info );

void CUNMR3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, MKL_INT* info );
void CUNMR3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );
void cunmr3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, MKL_INT* info );
void cunmr3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );

void CUNMRQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNMRQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunmrq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cunmrq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CUNMRZ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CUNMRZ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunmrz( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex8* a, const MKL_INT* lda,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cunmrz_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex8* a, const MKL_INT* lda,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void CUNMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void CUNMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );
void cunmtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
             const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
             MKL_INT* info );
void cunmtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* tau, MKL_Complex8* c,
              const MKL_INT* ldc, MKL_Complex8* work, const MKL_INT* lwork,
              MKL_INT* info );

void CUPGTR( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_Complex8* tau, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* work, MKL_INT* info );
void CUPGTR_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_Complex8* tau, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* work, MKL_INT* info );
void cupgtr( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_Complex8* tau, MKL_Complex8* q, const MKL_INT* ldq,
             MKL_Complex8* work, MKL_INT* info );
void cupgtr_( const char* uplo, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_Complex8* tau, MKL_Complex8* q, const MKL_INT* ldq,
              MKL_Complex8* work, MKL_INT* info );

void CUPMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, MKL_INT* info );
void CUPMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );
void cupmtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* ap,
             const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* work, MKL_INT* info );
void cupmtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* ap,
              const MKL_Complex8* tau, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* work, MKL_INT* info );

void DBDSDC( const char* uplo, const char* compq, const MKL_INT* n, double* d,
             double* e, double* u, const MKL_INT* ldu, double* vt,
             const MKL_INT* ldvt, double* q, MKL_INT* iq, double* work,
             MKL_INT* iwork, MKL_INT* info );
void DBDSDC_( const char* uplo, const char* compq, const MKL_INT* n, double* d,
              double* e, double* u, const MKL_INT* ldu, double* vt,
              const MKL_INT* ldvt, double* q, MKL_INT* iq, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dbdsdc( const char* uplo, const char* compq, const MKL_INT* n, double* d,
             double* e, double* u, const MKL_INT* ldu, double* vt,
             const MKL_INT* ldvt, double* q, MKL_INT* iq, double* work,
             MKL_INT* iwork, MKL_INT* info );
void dbdsdc_( const char* uplo, const char* compq, const MKL_INT* n, double* d,
              double* e, double* u, const MKL_INT* ldu, double* vt,
              const MKL_INT* ldvt, double* q, MKL_INT* iq, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DBDSQR( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
             double* vt, const MKL_INT* ldvt, double* u, const MKL_INT* ldu,
             double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void DBDSQR_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
              double* vt, const MKL_INT* ldvt, double* u, const MKL_INT* ldu,
              double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void dbdsqr( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
             double* vt, const MKL_INT* ldvt, double* u, const MKL_INT* ldu,
             double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void dbdsqr_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
              double* vt, const MKL_INT* ldvt, double* u, const MKL_INT* ldu,
              double* c, const MKL_INT* ldc, double* work, MKL_INT* info );

void DDISNA( const char* job, const MKL_INT* m, const MKL_INT* n,
             const double* d, double* sep, MKL_INT* info );
void DDISNA_( const char* job, const MKL_INT* m, const MKL_INT* n,
              const double* d, double* sep, MKL_INT* info );
void ddisna( const char* job, const MKL_INT* m, const MKL_INT* n,
             const double* d, double* sep, MKL_INT* info );
void ddisna_( const char* job, const MKL_INT* m, const MKL_INT* n,
              const double* d, double* sep, MKL_INT* info );

void DGBBRD( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             double* ab, const MKL_INT* ldab, double* d, double* e, double* q,
             const MKL_INT* ldq, double* pt, const MKL_INT* ldpt, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void DGBBRD_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              double* ab, const MKL_INT* ldab, double* d, double* e, double* q,
              const MKL_INT* ldq, double* pt, const MKL_INT* ldpt, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );
void dgbbrd( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             double* ab, const MKL_INT* ldab, double* d, double* e, double* q,
             const MKL_INT* ldq, double* pt, const MKL_INT* ldpt, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void dgbbrd_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              double* ab, const MKL_INT* ldab, double* d, double* e, double* q,
              const MKL_INT* ldq, double* pt, const MKL_INT* ldpt, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );

void DGBCON( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DGBCON_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgbcon( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dgbcon_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DGBEQUB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );
void DGBEQUB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
               double* r, double* c, double* rowcnd, double* colcnd,
               double* amax, MKL_INT* info );
void dgbequb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );
void dgbequb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
               double* r, double* c, double* rowcnd, double* colcnd,
               double* amax, MKL_INT* info );

void DGBEQU( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
             double* r, double* c, double* rowcnd, double* colcnd,
             double* amax, MKL_INT* info );
void DGBEQU_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );
void dgbequ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
             double* r, double* c, double* rowcnd, double* colcnd,
             double* amax, MKL_INT* info );
void dgbequ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );

void DGBRFS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
             const MKL_INT* ldab, const double* afb, const MKL_INT* ldafb,
             const MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
             double* x, const MKL_INT* ldx, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DGBRFS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
              const MKL_INT* ldab, const double* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
              double* x, const MKL_INT* ldx, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgbrfs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
             const MKL_INT* ldab, const double* afb, const MKL_INT* ldafb,
             const MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
             double* x, const MKL_INT* ldx, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dgbrfs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
              const MKL_INT* ldab, const double* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
              double* x, const MKL_INT* ldx, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DGBRFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const double* ab, const MKL_INT* ldab, const double* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv, const double* r,
              const double* c, const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DGBRFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const double* ab, const MKL_INT* ldab, const double* afb,
               const MKL_INT* ldafb, const MKL_INT* ipiv, const double* r,
               const double* c, const double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dgbrfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const double* ab, const MKL_INT* ldab, const double* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv, const double* r,
              const double* c, const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgbrfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const double* ab, const MKL_INT* ldab, const double* afb,
               const MKL_INT* ldafb, const MKL_INT* ipiv, const double* r,
               const double* c, const double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DGBSV( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, double* ab, const MKL_INT* ldab,
            MKL_INT* ipiv, double* b, const MKL_INT* ldb, MKL_INT* info );
void DGBSV_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, double* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, double* b, const MKL_INT* ldb, MKL_INT* info );
void dgbsv( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, double* ab, const MKL_INT* ldab,
            MKL_INT* ipiv, double* b, const MKL_INT* ldb, MKL_INT* info );
void dgbsv_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, double* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, double* b, const MKL_INT* ldb, MKL_INT* info );

void DGBSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             double* ab, const MKL_INT* ldab, double* afb,
             const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
             double* c, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DGBSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              double* ab, const MKL_INT* ldab, double* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgbsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             double* ab, const MKL_INT* ldab, double* afb,
             const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
             double* c, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dgbsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              double* ab, const MKL_INT* ldab, double* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DGBSVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              double* ab, const MKL_INT* ldab, double* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DGBSVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               double* ab, const MKL_INT* ldab, double* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
               double* c, double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dgbsvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              double* ab, const MKL_INT* ldab, double* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgbsvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               double* ab, const MKL_INT* ldab, double* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
               double* c, double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DGBTF2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, double* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void DGBTF2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, double* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );
void dgbtf2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, double* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void dgbtf2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, double* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );

void DGBTRF( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, double* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void DGBTRF_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, double* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );
void dgbtrf( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, double* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void dgbtrf_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, double* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );

void DGBTRS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DGBTRS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dgbtrs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dgbtrs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const double* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DGEBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
             const MKL_INT* m, double* v, const MKL_INT* ldv, MKL_INT* info );
void DGEBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
              const MKL_INT* m, double* v, const MKL_INT* ldv, MKL_INT* info );
void dgebak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
             const MKL_INT* m, double* v, const MKL_INT* ldv, MKL_INT* info );
void dgebak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
              const MKL_INT* m, double* v, const MKL_INT* ldv, MKL_INT* info );

void DGEBAL( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ilo, MKL_INT* ihi, double* scale, MKL_INT* info );
void DGEBAL_( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* ilo, MKL_INT* ihi, double* scale, MKL_INT* info );
void dgebal( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ilo, MKL_INT* ihi, double* scale, MKL_INT* info );
void dgebal_( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* ilo, MKL_INT* ihi, double* scale, MKL_INT* info );

void DGEBD2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tauq, double* taup, double* work,
             MKL_INT* info );
void DGEBD2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tauq,
              double* taup, double* work, MKL_INT* info );
void dgebd2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tauq, double* taup, double* work,
             MKL_INT* info );
void dgebd2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tauq,
              double* taup, double* work, MKL_INT* info );

void DGEBRD( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tauq, double* taup, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGEBRD_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tauq,
              double* taup, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dgebrd( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tauq, double* taup, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgebrd_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tauq,
              double* taup, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGECON( const char* norm, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DGECON_( const char* norm, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgecon( const char* norm, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dgecon_( const char* norm, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DGEEQUB( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );
void DGEEQUB_( const MKL_INT* m, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* r, double* c, double* rowcnd,
               double* colcnd, double* amax, MKL_INT* info );
void dgeequb( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );
void dgeequb_( const MKL_INT* m, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* r, double* c, double* rowcnd,
               double* colcnd, double* amax, MKL_INT* info );

void DGEEQU( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, double* r, double* c, double* rowcnd,
             double* colcnd, double* amax, MKL_INT* info );
void DGEEQU_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );
void dgeequ( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, double* r, double* c, double* rowcnd,
             double* colcnd, double* amax, MKL_INT* info );
void dgeequ_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );

void DGEES( const char* jobvs, const char* sort,
            MKL_D_SELECT_FUNCTION_2 select, const MKL_INT* n, double* a,
            const MKL_INT* lda, MKL_INT* sdim, double* wr, double* wi,
            double* vs, const MKL_INT* ldvs, double* work,
            const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void DGEES_( const char* jobvs, const char* sort,
             MKL_D_SELECT_FUNCTION_2 select, const MKL_INT* n, double* a,
             const MKL_INT* lda, MKL_INT* sdim, double* wr, double* wi,
             double* vs, const MKL_INT* ldvs, double* work,
             const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void dgees( const char* jobvs, const char* sort,
            MKL_D_SELECT_FUNCTION_2 select, const MKL_INT* n, double* a,
            const MKL_INT* lda, MKL_INT* sdim, double* wr, double* wi,
            double* vs, const MKL_INT* ldvs, double* work,
            const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void dgees_( const char* jobvs, const char* sort,
             MKL_D_SELECT_FUNCTION_2 select, const MKL_INT* n, double* a,
             const MKL_INT* lda, MKL_INT* sdim, double* wr, double* wi,
             double* vs, const MKL_INT* ldvs, double* work,
             const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );

void DGEESX( const char* jobvs, const char* sort,
             MKL_D_SELECT_FUNCTION_2 select, const char* sense,
             const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* sdim,
             double* wr, double* wi, double* vs, const MKL_INT* ldvs,
             double* rconde, double* rcondv, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* bwork, MKL_INT* info );
void DGEESX_( const char* jobvs, const char* sort,
              MKL_D_SELECT_FUNCTION_2 select, const char* sense,
              const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* sdim,
              double* wr, double* wi, double* vs, const MKL_INT* ldvs,
              double* rconde, double* rcondv, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* bwork, MKL_INT* info );
void dgeesx( const char* jobvs, const char* sort,
             MKL_D_SELECT_FUNCTION_2 select, const char* sense,
             const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* sdim,
             double* wr, double* wi, double* vs, const MKL_INT* ldvs,
             double* rconde, double* rcondv, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* bwork, MKL_INT* info );
void dgeesx_( const char* jobvs, const char* sort,
              MKL_D_SELECT_FUNCTION_2 select, const char* sense,
              const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* sdim,
              double* wr, double* wi, double* vs, const MKL_INT* ldvs,
              double* rconde, double* rcondv, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* bwork, MKL_INT* info );

void DGEEV( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* wr, double* wi, double* vl,
            const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void DGEEV_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* wr, double* wi, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dgeev( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* wr, double* wi, double* vl,
            const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void dgeev_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* wr, double* wi, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             double* work, const MKL_INT* lwork, MKL_INT* info );

void DGEEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* wr, double* wi, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
             double* rconde, double* rcondv, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void DGEEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* wr, double* wi, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
              double* rconde, double* rcondv, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgeevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* wr, double* wi, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
             double* rconde, double* rcondv, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgeevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* wr, double* wi, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
              double* rconde, double* rcondv, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void DGEGS( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
            double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
            double* alphar, double* alphai, double* beta, double* vsl,
            const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
            double* work, const MKL_INT* lwork, MKL_INT* info );
void DGEGS_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* alphar, double* alphai, double* beta, double* vsl,
             const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dgegs( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
            double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
            double* alphar, double* alphai, double* beta, double* vsl,
            const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
            double* work, const MKL_INT* lwork, MKL_INT* info );
void dgegs_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* alphar, double* alphai, double* beta, double* vsl,
             const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
             double* work, const MKL_INT* lwork, MKL_INT* info );

void DGEGV( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
            double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
            double* vr, const MKL_INT* ldvr, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void DGEGV_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
             double* vr, const MKL_INT* ldvr, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgegv( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
            double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
            double* vr, const MKL_INT* ldvr, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void dgegv_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
             double* vr, const MKL_INT* ldvr, double* work,
             const MKL_INT* lwork, MKL_INT* info );

void DGEHD2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* a, const MKL_INT* lda, double* tau, double* work,
             MKL_INT* info );
void DGEHD2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* a, const MKL_INT* lda, double* tau, double* work,
              MKL_INT* info );
void dgehd2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* a, const MKL_INT* lda, double* tau, double* work,
             MKL_INT* info );
void dgehd2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* a, const MKL_INT* lda, double* tau, double* work,
              MKL_INT* info );

void DGEHRD( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* a, const MKL_INT* lda, double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGEHRD_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* a, const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgehrd( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* a, const MKL_INT* lda, double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgehrd_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* a, const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGEJSV( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
             const char* jobp, const MKL_INT* m, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* sva, double* u, const MKL_INT* ldu,
             double* v, const MKL_INT* ldv, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void DGEJSV_( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
              const char* jobp, const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* sva, double* u, const MKL_INT* ldu,
              double* v, const MKL_INT* ldv, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgejsv( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
             const char* jobp, const MKL_INT* m, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* sva, double* u, const MKL_INT* ldu,
             double* v, const MKL_INT* ldv, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void dgejsv_( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
              const char* jobp, const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* sva, double* u, const MKL_INT* ldu,
              double* v, const MKL_INT* ldv, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void DGELQ2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void DGELQ2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );
void dgelq2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void dgelq2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );

void DGELQF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGELQF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgelqf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dgelqf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGELSD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* s, const double* rcond, MKL_INT* rank,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void DGELSD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* s, const double* rcond,
              MKL_INT* rank, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void dgelsd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* s, const double* rcond, MKL_INT* rank,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void dgelsd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* s, const double* rcond,
              MKL_INT* rank, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );

void DGELS( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
            const MKL_INT* ldb, double* work, const MKL_INT* lwork,
            MKL_INT* info );
void DGELS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dgels( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
            const MKL_INT* ldb, double* work, const MKL_INT* lwork,
            MKL_INT* info );
void dgels_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* work, const MKL_INT* lwork,
             MKL_INT* info );

void DGELSS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* s, const double* rcond, MKL_INT* rank, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGELSS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* s, const double* rcond, MKL_INT* rank, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgelss( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* s, const double* rcond, MKL_INT* rank, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgelss_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* s, const double* rcond, MKL_INT* rank, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGELSX( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
             MKL_INT* info );
void DGELSX_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
              MKL_INT* info );
void dgelsx( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
             MKL_INT* info );
void dgelsx_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
              MKL_INT* info );

void DGELSY( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DGELSY_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgelsy( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dgelsy_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const double* rcond, MKL_INT* rank, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGEQL2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void DGEQL2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );
void dgeql2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void dgeql2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );

void DGEQLF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGEQLF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgeqlf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dgeqlf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGEQP3( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* jpvt, double* tau, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DGEQP3_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* jpvt, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgeqp3( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* jpvt, double* tau, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dgeqp3_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* jpvt, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGEQPF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* jpvt, double* tau, double* work, MKL_INT* info );
void DGEQPF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* jpvt, double* tau, double* work,
              MKL_INT* info );
void dgeqpf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* jpvt, double* tau, double* work, MKL_INT* info );
void dgeqpf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* jpvt, double* tau, double* work,
              MKL_INT* info );

void DGEQR2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void DGEQR2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );
void dgeqr2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void dgeqr2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );

void DGEQR2P( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* tau, double* work, MKL_INT* info );
void DGEQR2P_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* tau, double* work, MKL_INT* info );
void dgeqr2p( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* tau, double* work, MKL_INT* info );
void dgeqr2p_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* tau, double* work, MKL_INT* info );

void DGEQRF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGEQRF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgeqrf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dgeqrf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGEQRFP( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGEQRFP_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* tau, double* work,
               const MKL_INT* lwork, MKL_INT* info );
void dgeqrfp( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dgeqrfp_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* tau, double* work,
               const MKL_INT* lwork, MKL_INT* info );

void DGERFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const double* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void DGERFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const double* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dgerfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const double* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dgerfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const double* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );

void DGERFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const double* r, const double* c, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* berr, const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DGERFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
               const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const double* r, const double* c, const double* b,
               const MKL_INT* ldb, double* x, const MKL_INT* ldx,
               double* rcond, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, double* work,
               MKL_INT* iwork, MKL_INT* info );
void dgerfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const double* r, const double* c, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* berr, const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgerfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
               const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const double* r, const double* c, const double* b,
               const MKL_INT* ldb, double* x, const MKL_INT* ldx,
               double* rcond, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, double* work,
               MKL_INT* iwork, MKL_INT* info );

void DGERQ2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void DGERQ2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );
void dgerq2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, MKL_INT* info );
void dgerq2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work, MKL_INT* info );

void DGERQF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGERQF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dgerqf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dgerqf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DGESC2( const MKL_INT* n, const double* a, const MKL_INT* lda,
             double* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
             double* scale );
void DGESC2_( const MKL_INT* n, const double* a, const MKL_INT* lda,
              double* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
              double* scale );
void dgesc2( const MKL_INT* n, const double* a, const MKL_INT* lda,
             double* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
             double* scale );
void dgesc2_( const MKL_INT* n, const double* a, const MKL_INT* lda,
              double* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
              double* scale );

void DGESDD( const char* jobz, const MKL_INT* m, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* s, double* u, const MKL_INT* ldu,
             double* vt, const MKL_INT* ldvt, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void DGESDD_( const char* jobz, const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* s, double* u, const MKL_INT* ldu,
              double* vt, const MKL_INT* ldvt, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgesdd( const char* jobz, const MKL_INT* m, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* s, double* u, const MKL_INT* ldu,
             double* vt, const MKL_INT* ldvt, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dgesdd_( const char* jobz, const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* s, double* u, const MKL_INT* ldu,
              double* vt, const MKL_INT* ldvt, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void DGESVD( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* s,
             double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void DGESVD_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* s,
              double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dgesvd( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* s,
             double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dgesvd_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* s,
              double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
              double* work, const MKL_INT* lwork, MKL_INT* info );

void DGESV( const MKL_INT* n, const MKL_INT* nrhs, double* a,
            const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
            MKL_INT* info );
void DGESV_( const MKL_INT* n, const MKL_INT* nrhs, double* a,
             const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
             MKL_INT* info );
void dgesv( const MKL_INT* n, const MKL_INT* nrhs, double* a,
            const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
            MKL_INT* info );
void dgesv_( const MKL_INT* n, const MKL_INT* nrhs, double* a,
             const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
             MKL_INT* info );

void DGESVJ( const char* joba, const char* jobu, const char* jobv,
             const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* sva, const MKL_INT* mv, double* v, const MKL_INT* ldv,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void DGESVJ_( const char* joba, const char* jobu, const char* jobv,
              const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* sva, const MKL_INT* mv, double* v,
              const MKL_INT* ldv, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dgesvj( const char* joba, const char* jobu, const char* jobv,
             const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* sva, const MKL_INT* mv, double* v, const MKL_INT* ldv,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dgesvj_( const char* joba, const char* jobu, const char* jobv,
              const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* sva, const MKL_INT* mv, double* v,
              const MKL_INT* ldv, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGESVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
             const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
             double* c, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DGESVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgesvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
             const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
             double* c, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dgesvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DGESVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DGESVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
               double* c, double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dgesvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
              double* c, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgesvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* r,
               double* c, double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DGETC2( const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_INT* jpiv, MKL_INT* info );
void DGETC2_( const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_INT* jpiv, MKL_INT* info );
void dgetc2( const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_INT* jpiv, MKL_INT* info );
void dgetc2_( const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_INT* jpiv, MKL_INT* info );

void DGETF2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void DGETF2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void dgetf2( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void dgetf2_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void DGETRF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void DGETRF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void dgetrf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void dgetrf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void MKL_DGETRFNPI( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    double* a, const MKL_INT* lda, MKL_INT* info );
void MKL_DGETRFNPI_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     double* a, const MKL_INT* lda, MKL_INT* info );
void mkl_dgetrfnpi( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    double* a, const MKL_INT* lda, MKL_INT* info );
void mkl_dgetrfnpi_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     double* a, const MKL_INT* lda, MKL_INT* info );

void DGETRI( const MKL_INT* n, double* a, const MKL_INT* lda,
             const MKL_INT* ipiv, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DGETRI_( const MKL_INT* n, double* a, const MKL_INT* lda,
              const MKL_INT* ipiv, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dgetri( const MKL_INT* n, double* a, const MKL_INT* lda,
             const MKL_INT* ipiv, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dgetri_( const MKL_INT* n, double* a, const MKL_INT* lda,
              const MKL_INT* ipiv, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGETRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void DGETRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
              double* b, const MKL_INT* ldb, MKL_INT* info );
void dgetrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void dgetrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
              double* b, const MKL_INT* ldb, MKL_INT* info );

void DGGBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
             const double* rscale, const MKL_INT* m, double* v,
             const MKL_INT* ldv, MKL_INT* info );
void DGGBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
              const double* rscale, const MKL_INT* m, double* v,
              const MKL_INT* ldv, MKL_INT* info );
void dggbak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
             const double* rscale, const MKL_INT* m, double* v,
             const MKL_INT* ldv, MKL_INT* info );
void dggbak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
              const double* rscale, const MKL_INT* m, double* v,
              const MKL_INT* ldv, MKL_INT* info );

void DGGBAL( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
             double* lscale, double* rscale, double* work, MKL_INT* info );
void DGGBAL_( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
              double* lscale, double* rscale, double* work, MKL_INT* info );
void dggbal( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
             double* lscale, double* rscale, double* work, MKL_INT* info );
void dggbal_( const char* job, const MKL_INT* n, double* a, const MKL_INT* lda,
              double* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
              double* lscale, double* rscale, double* work, MKL_INT* info );

void DGGES( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_D_SELECT_FUNCTION_3 selctg, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, MKL_INT* sdim,
            double* alphar, double* alphai, double* beta, double* vsl,
            const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
            double* work, const MKL_INT* lwork, MKL_INT* bwork,
            MKL_INT* info );
void DGGES_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_D_SELECT_FUNCTION_3 selctg, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, MKL_INT* sdim,
             double* alphar, double* alphai, double* beta, double* vsl,
             const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
             double* work, const MKL_INT* lwork, MKL_INT* bwork,
             MKL_INT* info );
void dgges( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_D_SELECT_FUNCTION_3 selctg, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, MKL_INT* sdim,
            double* alphar, double* alphai, double* beta, double* vsl,
            const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
            double* work, const MKL_INT* lwork, MKL_INT* bwork,
            MKL_INT* info );
void dgges_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_D_SELECT_FUNCTION_3 selctg, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, MKL_INT* sdim,
             double* alphar, double* alphai, double* beta, double* vsl,
             const MKL_INT* ldvsl, double* vsr, const MKL_INT* ldvsr,
             double* work, const MKL_INT* lwork, MKL_INT* bwork,
             MKL_INT* info );

void DGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_D_SELECT_FUNCTION_3 selctg, const char* sense,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, MKL_INT* sdim, double* alphar, double* alphai,
             double* beta, double* vsl, const MKL_INT* ldvsl, double* vsr,
             const MKL_INT* ldvsr, double* rconde, double* rcondv,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void DGGESX_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_D_SELECT_FUNCTION_3 selctg, const char* sense,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, MKL_INT* sdim, double* alphar,
              double* alphai, double* beta, double* vsl, const MKL_INT* ldvsl,
              double* vsr, const MKL_INT* ldvsr, double* rconde,
              double* rcondv, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* bwork,
              MKL_INT* info );
void dggesx( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_D_SELECT_FUNCTION_3 selctg, const char* sense,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, MKL_INT* sdim, double* alphar, double* alphai,
             double* beta, double* vsl, const MKL_INT* ldvsl, double* vsr,
             const MKL_INT* ldvsr, double* rconde, double* rcondv,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void dggesx_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_D_SELECT_FUNCTION_3 selctg, const char* sense,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, MKL_INT* sdim, double* alphar,
              double* alphai, double* beta, double* vsl, const MKL_INT* ldvsl,
              double* vsr, const MKL_INT* ldvsr, double* rconde,
              double* rcondv, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* bwork,
              MKL_INT* info );

void DGGEV( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
            double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
            double* vr, const MKL_INT* ldvr, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void DGGEV_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
             double* vr, const MKL_INT* ldvr, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dggev( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
            double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
            double* vr, const MKL_INT* ldvr, double* work,
            const MKL_INT* lwork, MKL_INT* info );
void dggev_( const char* jobvl, const char* jobvr, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
             double* vr, const MKL_INT* ldvr, double* work,
             const MKL_INT* lwork, MKL_INT* info );

void DGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
             double* vr, const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi,
             double* lscale, double* rscale, double* abnrm, double* bbnrm,
             double* rconde, double* rcondv, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* bwork,
             MKL_INT* info );
void DGGEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* alphar, double* alphai, double* beta, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
              double* abnrm, double* bbnrm, double* rconde, double* rcondv,
              double* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* bwork, MKL_INT* info );
void dggevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* vl, const MKL_INT* ldvl,
             double* vr, const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi,
             double* lscale, double* rscale, double* abnrm, double* bbnrm,
             double* rconde, double* rcondv, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* bwork,
             MKL_INT* info );
void dggevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* alphar, double* alphai, double* beta, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
              double* abnrm, double* bbnrm, double* rconde, double* rcondv,
              double* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* bwork, MKL_INT* info );

void DGGGLM( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* d,
             double* x, double* y, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DGGGLM_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* d,
              double* x, double* y, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dggglm( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* d,
             double* x, double* y, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dggglm_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* d,
              double* x, double* y, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGGHRD( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* q,
             const MKL_INT* ldq, double* z, const MKL_INT* ldz,
             MKL_INT* info );
void DGGHRD_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* q,
              const MKL_INT* ldq, double* z, const MKL_INT* ldz,
              MKL_INT* info );
void dgghrd( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* q,
             const MKL_INT* ldq, double* z, const MKL_INT* ldz,
             MKL_INT* info );
void dgghrd_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* q,
              const MKL_INT* ldq, double* z, const MKL_INT* ldz,
              MKL_INT* info );

void DGGLSE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* c,
             double* d, double* x, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DGGLSE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* c,
              double* d, double* x, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dgglse( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* c,
             double* d, double* x, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dgglse_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb, double* c,
              double* d, double* x, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGGQRF( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
             const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
             double* taub, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGGQRF_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
              const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
              double* taub, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dggqrf( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
             const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
             double* taub, double* work, const MKL_INT* lwork, MKL_INT* info );
void dggqrf_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, double* a,
              const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
              double* taub, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGGRQF( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
             double* taub, double* work, const MKL_INT* lwork, MKL_INT* info );
void DGGRQF_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
              double* taub, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dggrqf( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
             double* taub, double* work, const MKL_INT* lwork, MKL_INT* info );
void dggrqf_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* taua, double* b, const MKL_INT* ldb,
              double* taub, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGGSVD( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* alpha, double* beta, double* u,
             const MKL_INT* ldu, double* v, const MKL_INT* ldv, double* q,
             const MKL_INT* ldq, double* work, MKL_INT* iwork, MKL_INT* info );
void DGGSVD_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* alpha, double* beta, double* u,
              const MKL_INT* ldu, double* v, const MKL_INT* ldv, double* q,
              const MKL_INT* ldq, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dggsvd( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* alpha, double* beta, double* u,
             const MKL_INT* ldu, double* v, const MKL_INT* ldv, double* q,
             const MKL_INT* ldq, double* work, MKL_INT* iwork, MKL_INT* info );
void dggsvd_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* alpha, double* beta, double* u,
              const MKL_INT* ldu, double* v, const MKL_INT* ldv, double* q,
              const MKL_INT* ldq, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DGGSVP( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb,
             const double* tola, const double* tolb, MKL_INT* k, MKL_INT* l,
             double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
             double* q, const MKL_INT* ldq, MKL_INT* iwork, double* tau,
             double* work, MKL_INT* info );
void DGGSVP_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              const double* tola, const double* tolb, MKL_INT* k, MKL_INT* l,
              double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
              double* q, const MKL_INT* ldq, MKL_INT* iwork, double* tau,
              double* work, MKL_INT* info );
void dggsvp( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb,
             const double* tola, const double* tolb, MKL_INT* k, MKL_INT* l,
             double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
             double* q, const MKL_INT* ldq, MKL_INT* iwork, double* tau,
             double* work, MKL_INT* info );
void dggsvp_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              const double* tola, const double* tolb, MKL_INT* k, MKL_INT* l,
              double* u, const MKL_INT* ldu, double* v, const MKL_INT* ldv,
              double* q, const MKL_INT* ldq, MKL_INT* iwork, double* tau,
              double* work, MKL_INT* info );

void DGSVJ0( const char* jobv, const MKL_INT* m, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* d, double* sva, const MKL_INT* mv,
             double* v, const MKL_INT* ldv, const double* eps,
             const double* sfmin, const double* tol, const MKL_INT* nsweep,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void DGSVJ0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* sva, const MKL_INT* mv,
              double* v, const MKL_INT* ldv, const double* eps,
              const double* sfmin, const double* tol, const MKL_INT* nsweep,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dgsvj0( const char* jobv, const MKL_INT* m, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* d, double* sva, const MKL_INT* mv,
             double* v, const MKL_INT* ldv, const double* eps,
             const double* sfmin, const double* tol, const MKL_INT* nsweep,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dgsvj0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* sva, const MKL_INT* mv,
              double* v, const MKL_INT* ldv, const double* eps,
              const double* sfmin, const double* tol, const MKL_INT* nsweep,
              double* work, const MKL_INT* lwork, MKL_INT* info );

void DGSVJ1( const char* jobv, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, double* a, const MKL_INT* lda, double* d,
             double* sva, const MKL_INT* mv, double* v, const MKL_INT* ldv,
             const double* eps, const double* sfmin, const double* tol,
             const MKL_INT* nsweep, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DGSVJ1_( const char* jobv, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, double* a, const MKL_INT* lda, double* d,
              double* sva, const MKL_INT* mv, double* v, const MKL_INT* ldv,
              const double* eps, const double* sfmin, const double* tol,
              const MKL_INT* nsweep, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dgsvj1( const char* jobv, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, double* a, const MKL_INT* lda, double* d,
             double* sva, const MKL_INT* mv, double* v, const MKL_INT* ldv,
             const double* eps, const double* sfmin, const double* tol,
             const MKL_INT* nsweep, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dgsvj1_( const char* jobv, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, double* a, const MKL_INT* lda, double* d,
              double* sva, const MKL_INT* mv, double* v, const MKL_INT* ldv,
              const double* eps, const double* sfmin, const double* tol,
              const MKL_INT* nsweep, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DGTCON( const char* norm, const MKL_INT* n, const double* dl,
             const double* d, const double* du, const double* du2,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DGTCON_( const char* norm, const MKL_INT* n, const double* dl,
              const double* d, const double* du, const double* du2,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dgtcon( const char* norm, const MKL_INT* n, const double* dl,
             const double* d, const double* du, const double* du2,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dgtcon_( const char* norm, const MKL_INT* n, const double* dl,
              const double* d, const double* du, const double* du2,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DGTRFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* dl, const double* d, const double* du,
             const double* dlf, const double* df, const double* duf,
             const double* du2, const MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void DGTRFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du,
              const double* dlf, const double* df, const double* duf,
              const double* du2, const MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dgtrfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* dl, const double* d, const double* du,
             const double* dlf, const double* df, const double* duf,
             const double* du2, const MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dgtrfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du,
              const double* dlf, const double* df, const double* duf,
              const double* du2, const MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );

void DGTSV( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
            double* du, double* b, const MKL_INT* ldb, MKL_INT* info );
void DGTSV_( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
             double* du, double* b, const MKL_INT* ldb, MKL_INT* info );
void dgtsv( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
            double* du, double* b, const MKL_INT* ldb, MKL_INT* info );
void dgtsv_( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
             double* du, double* b, const MKL_INT* ldb, MKL_INT* info );

void DGTSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const double* dl, const double* d,
             const double* du, double* dlf, double* df, double* duf,
             double* du2, MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
             double* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void DGTSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const double* dl, const double* d,
              const double* du, double* dlf, double* df, double* duf,
              double* du2, MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
              double* x, const MKL_INT* ldx, double* rcond, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dgtsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const double* dl, const double* d,
             const double* du, double* dlf, double* df, double* duf,
             double* du2, MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
             double* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dgtsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const double* dl, const double* d,
              const double* du, double* dlf, double* df, double* duf,
              double* du2, MKL_INT* ipiv, const double* b, const MKL_INT* ldb,
              double* x, const MKL_INT* ldx, double* rcond, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );

void DGTTRF( const MKL_INT* n, double* dl, double* d, double* du, double* du2,
             MKL_INT* ipiv, MKL_INT* info );
void DGTTRF_( const MKL_INT* n, double* dl, double* d, double* du, double* du2,
              MKL_INT* ipiv, MKL_INT* info );
void dgttrf( const MKL_INT* n, double* dl, double* d, double* du, double* du2,
             MKL_INT* ipiv, MKL_INT* info );
void dgttrf_( const MKL_INT* n, double* dl, double* d, double* du, double* du2,
              MKL_INT* ipiv, MKL_INT* info );

void DGTTRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* dl, const double* d, const double* du,
             const double* du2, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DGTTRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du,
              const double* du2, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dgttrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* dl, const double* d, const double* du,
             const double* du2, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dgttrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du,
              const double* du2, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DGTTS2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* dl, const double* d, const double* du,
             const double* du2, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb );
void DGTTS2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du,
              const double* du2, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb );
void dgtts2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* dl, const double* d, const double* du,
             const double* du2, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb );
void dgtts2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du,
              const double* du2, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb );

void DHGEQZ( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* h, const MKL_INT* ldh, double* t, const MKL_INT* ldt,
             double* alphar, double* alphai, double* beta, double* q,
             const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DHGEQZ_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* h, const MKL_INT* ldh, double* t, const MKL_INT* ldt,
              double* alphar, double* alphai, double* beta, double* q,
              const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dhgeqz( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* h, const MKL_INT* ldh, double* t, const MKL_INT* ldt,
             double* alphar, double* alphai, double* beta, double* q,
             const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dhgeqz_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* h, const MKL_INT* ldh, double* t, const MKL_INT* ldt,
              double* alphar, double* alphai, double* beta, double* q,
              const MKL_INT* ldq, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DHSEIN( const char* side, const char* eigsrc, const char* initv,
             MKL_INT* select, const MKL_INT* n, const double* h,
             const MKL_INT* ldh, double* wr, const double* wi, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* ifaill,
             MKL_INT* ifailr, MKL_INT* info );
void DHSEIN_( const char* side, const char* eigsrc, const char* initv,
              MKL_INT* select, const MKL_INT* n, const double* h,
              const MKL_INT* ldh, double* wr, const double* wi, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* ifaill,
              MKL_INT* ifailr, MKL_INT* info );
void dhsein( const char* side, const char* eigsrc, const char* initv,
             MKL_INT* select, const MKL_INT* n, const double* h,
             const MKL_INT* ldh, double* wr, const double* wi, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* ifaill,
             MKL_INT* ifailr, MKL_INT* info );
void dhsein_( const char* side, const char* eigsrc, const char* initv,
              MKL_INT* select, const MKL_INT* n, const double* h,
              const MKL_INT* ldh, double* wr, const double* wi, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* ifaill,
              MKL_INT* ifailr, MKL_INT* info );

void DHSEQR( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, double* z,
             const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DHSEQR_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, double* z,
              const MKL_INT* ldz, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dhseqr( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, double* z,
             const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dhseqr_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, double* z,
              const MKL_INT* ldz, double* work, const MKL_INT* lwork,
              MKL_INT* info );

MKL_INT DISNAN( const double* din );
MKL_INT DISNAN_( const double* din );
MKL_INT disnan( const double* din );
MKL_INT disnan_( const double* din );

void DLABAD( double* smallx, double* large );
void DLABAD_( double* smallx, double* large );
void dlabad( double* smallx, double* large );
void dlabad_( double* smallx, double* large );

void DLABRD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* d, double* e, double* tauq,
             double* taup, double* x, const MKL_INT* ldx, double* y,
             const MKL_INT* ldy );
void DLABRD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* d, double* e, double* tauq,
              double* taup, double* x, const MKL_INT* ldx, double* y,
              const MKL_INT* ldy );
void dlabrd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* d, double* e, double* tauq,
             double* taup, double* x, const MKL_INT* ldx, double* y,
             const MKL_INT* ldy );
void dlabrd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* d, double* e, double* tauq,
              double* taup, double* x, const MKL_INT* ldx, double* y,
              const MKL_INT* ldy );

void DLACN2( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
             double* est, MKL_INT* kase, MKL_INT* isave );
void DLACN2_( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
              double* est, MKL_INT* kase, MKL_INT* isave );
void dlacn2( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
             double* est, MKL_INT* kase, MKL_INT* isave );
void dlacn2_( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
              double* est, MKL_INT* kase, MKL_INT* isave );

void DLACON( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
             double* est, MKL_INT* kase );
void DLACON_( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
              double* est, MKL_INT* kase );
void dlacon( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
             double* est, MKL_INT* kase );
void dlacon_( const MKL_INT* n, double* v, double* x, MKL_INT* isgn,
              double* est, MKL_INT* kase );

void DLACPY( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb );
void DLACPY_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb );
void dlacpy( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb );
void dlacpy_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb );

void DLADIV( const double* a, const double* b, const double* c,
             const double* d, double* p, double* q );
void DLADIV_( const double* a, const double* b, const double* c,
              const double* d, double* p, double* q );
void dladiv( const double* a, const double* b, const double* c,
             const double* d, double* p, double* q );
void dladiv_( const double* a, const double* b, const double* c,
              const double* d, double* p, double* q );

void DLAE2( const double* a, const double* b, const double* c, double* rt1,
            double* rt2 );
void DLAE2_( const double* a, const double* b, const double* c, double* rt1,
             double* rt2 );
void dlae2( const double* a, const double* b, const double* c, double* rt1,
            double* rt2 );
void dlae2_( const double* a, const double* b, const double* c, double* rt1,
             double* rt2 );

void DLAEBZ( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
             const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
             const double* abstol, const double* reltol, const double* pivmin,
             const double* d, const double* e, const double* e2, MKL_INT* nval,
             double* ab, double* c, MKL_INT* mout, MKL_INT* nab, double* work,
             MKL_INT* iwork, MKL_INT* info );
void DLAEBZ_( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
              const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
              const double* abstol, const double* reltol, const double* pivmin,
              const double* d, const double* e, const double* e2,
              MKL_INT* nval, double* ab, double* c, MKL_INT* mout,
              MKL_INT* nab, double* work, MKL_INT* iwork, MKL_INT* info );
void dlaebz( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
             const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
             const double* abstol, const double* reltol, const double* pivmin,
             const double* d, const double* e, const double* e2, MKL_INT* nval,
             double* ab, double* c, MKL_INT* mout, MKL_INT* nab, double* work,
             MKL_INT* iwork, MKL_INT* info );
void dlaebz_( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
              const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
              const double* abstol, const double* reltol, const double* pivmin,
              const double* d, const double* e, const double* e2,
              MKL_INT* nval, double* ab, double* c, MKL_INT* mout,
              MKL_INT* nab, double* work, MKL_INT* iwork, MKL_INT* info );

void DLAED0( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
             double* d, const double* e, double* q, const MKL_INT* ldq,
             double* qstore, const MKL_INT* ldqs, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DLAED0_( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
              double* d, const double* e, double* q, const MKL_INT* ldq,
              double* qstore, const MKL_INT* ldqs, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dlaed0( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
             double* d, const double* e, double* q, const MKL_INT* ldq,
             double* qstore, const MKL_INT* ldqs, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dlaed0_( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
              double* d, const double* e, double* q, const MKL_INT* ldq,
              double* qstore, const MKL_INT* ldqs, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DLAED1( const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
             MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DLAED1_( const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
              MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dlaed1( const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
             MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dlaed1_( const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
              MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DLAED2( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
             double* q, const MKL_INT* ldq, MKL_INT* indxq, double* rho,
             const double* z, double* dlamda, double* w, double* q2,
             MKL_INT* indx, MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp,
             MKL_INT* info );
void DLAED2_( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
              double* q, const MKL_INT* ldq, MKL_INT* indxq, double* rho,
              const double* z, double* dlamda, double* w, double* q2,
              MKL_INT* indx, MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp,
              MKL_INT* info );
void dlaed2( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
             double* q, const MKL_INT* ldq, MKL_INT* indxq, double* rho,
             const double* z, double* dlamda, double* w, double* q2,
             MKL_INT* indx, MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp,
             MKL_INT* info );
void dlaed2_( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
              double* q, const MKL_INT* ldq, MKL_INT* indxq, double* rho,
              const double* z, double* dlamda, double* w, double* q2,
              MKL_INT* indx, MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp,
              MKL_INT* info );

void DLAED3( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
             double* q, const MKL_INT* ldq, const double* rho, double* dlamda,
             const double* q2, const MKL_INT* indx, const MKL_INT* ctot,
             double* w, double* s, MKL_INT* info );
void DLAED3_( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
              double* q, const MKL_INT* ldq, const double* rho, double* dlamda,
              const double* q2, const MKL_INT* indx, const MKL_INT* ctot,
              double* w, double* s, MKL_INT* info );
void dlaed3( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
             double* q, const MKL_INT* ldq, const double* rho, double* dlamda,
             const double* q2, const MKL_INT* indx, const MKL_INT* ctot,
             double* w, double* s, MKL_INT* info );
void dlaed3_( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, double* d,
              double* q, const MKL_INT* ldq, const double* rho, double* dlamda,
              const double* q2, const MKL_INT* indx, const MKL_INT* ctot,
              double* w, double* s, MKL_INT* info );

void DLAED4( const MKL_INT* n, const MKL_INT* i, const double* d,
             const double* z, double* delta, const double* rho, double* dlam,
             MKL_INT* info );
void DLAED4_( const MKL_INT* n, const MKL_INT* i, const double* d,
              const double* z, double* delta, const double* rho, double* dlam,
              MKL_INT* info );
void dlaed4( const MKL_INT* n, const MKL_INT* i, const double* d,
             const double* z, double* delta, const double* rho, double* dlam,
             MKL_INT* info );
void dlaed4_( const MKL_INT* n, const MKL_INT* i, const double* d,
              const double* z, double* delta, const double* rho, double* dlam,
              MKL_INT* info );

void DLAED5( const MKL_INT* i, const double* d, const double* z, double* delta,
             const double* rho, double* dlam );
void DLAED5_( const MKL_INT* i, const double* d, const double* z,
              double* delta, const double* rho, double* dlam );
void dlaed5( const MKL_INT* i, const double* d, const double* z, double* delta,
             const double* rho, double* dlam );
void dlaed5_( const MKL_INT* i, const double* d, const double* z,
              double* delta, const double* rho, double* dlam );

void DLAED6( const MKL_INT* kniter, const MKL_INT* orgati, const double* rho,
             const double* d, const double* z, const double* finit,
             double* tau, MKL_INT* info );
void DLAED6_( const MKL_INT* kniter, const MKL_INT* orgati, const double* rho,
              const double* d, const double* z, const double* finit,
              double* tau, MKL_INT* info );
void dlaed6( const MKL_INT* kniter, const MKL_INT* orgati, const double* rho,
             const double* d, const double* z, const double* finit,
             double* tau, MKL_INT* info );
void dlaed6_( const MKL_INT* kniter, const MKL_INT* orgati, const double* rho,
              const double* d, const double* z, const double* finit,
              double* tau, MKL_INT* info );

void DLAED7( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, double* d, double* q, const MKL_INT* ldq,
             MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
             double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const double* givnum, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DLAED7_( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, double* d, double* q, const MKL_INT* ldq,
              MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
              double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const double* givnum, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dlaed7( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, double* d, double* q, const MKL_INT* ldq,
             MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
             double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const double* givnum, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dlaed7_( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, double* d, double* q, const MKL_INT* ldq,
              MKL_INT* indxq, const double* rho, const MKL_INT* cutpnt,
              double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const double* givnum, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DLAED8( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
             const MKL_INT* qsiz, double* d, double* q, const MKL_INT* ldq,
             const MKL_INT* indxq, double* rho, const MKL_INT* cutpnt,
             const double* z, double* dlamda, double* q2, const MKL_INT* ldq2,
             double* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
             double* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );
void DLAED8_( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
              const MKL_INT* qsiz, double* d, double* q, const MKL_INT* ldq,
              const MKL_INT* indxq, double* rho, const MKL_INT* cutpnt,
              const double* z, double* dlamda, double* q2, const MKL_INT* ldq2,
              double* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
              double* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );
void dlaed8( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
             const MKL_INT* qsiz, double* d, double* q, const MKL_INT* ldq,
             const MKL_INT* indxq, double* rho, const MKL_INT* cutpnt,
             const double* z, double* dlamda, double* q2, const MKL_INT* ldq2,
             double* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
             double* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );
void dlaed8_( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
              const MKL_INT* qsiz, double* d, double* q, const MKL_INT* ldq,
              const MKL_INT* indxq, double* rho, const MKL_INT* cutpnt,
              const double* z, double* dlamda, double* q2, const MKL_INT* ldq2,
              double* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
              double* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );

void DLAED9( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
             const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
             const double* rho, const double* dlamda, const double* w,
             double* s, const MKL_INT* lds, MKL_INT* info );
void DLAED9_( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
              const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
              const double* rho, const double* dlamda, const double* w,
              double* s, const MKL_INT* lds, MKL_INT* info );
void dlaed9( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
             const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
             const double* rho, const double* dlamda, const double* w,
             double* s, const MKL_INT* lds, MKL_INT* info );
void dlaed9_( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
              const MKL_INT* n, double* d, double* q, const MKL_INT* ldq,
              const double* rho, const double* dlamda, const double* w,
              double* s, const MKL_INT* lds, MKL_INT* info );

void DLAEDA( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, const MKL_INT* prmptr, const MKL_INT* perm,
             const MKL_INT* givptr, const MKL_INT* givcol,
             const double* givnum, const double* q, const MKL_INT* qptr,
             double* z, double* ztemp, MKL_INT* info );
void DLAEDA_( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const double* givnum, const double* q,
              const MKL_INT* qptr, double* z, double* ztemp, MKL_INT* info );
void dlaeda( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, const MKL_INT* prmptr, const MKL_INT* perm,
             const MKL_INT* givptr, const MKL_INT* givcol,
             const double* givnum, const double* q, const MKL_INT* qptr,
             double* z, double* ztemp, MKL_INT* info );
void dlaeda_( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const double* givnum, const double* q,
              const MKL_INT* qptr, double* z, double* ztemp, MKL_INT* info );

void DLAEIN( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const double* h, const MKL_INT* ldh, const double* wr,
             const double* wi, double* vr, double* vi, double* b,
             const MKL_INT* ldb, double* work, const double* eps3,
             const double* smlnum, const double* bignum, MKL_INT* info );
void DLAEIN_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const double* h, const MKL_INT* ldh, const double* wr,
              const double* wi, double* vr, double* vi, double* b,
              const MKL_INT* ldb, double* work, const double* eps3,
              const double* smlnum, const double* bignum, MKL_INT* info );
void dlaein( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const double* h, const MKL_INT* ldh, const double* wr,
             const double* wi, double* vr, double* vi, double* b,
             const MKL_INT* ldb, double* work, const double* eps3,
             const double* smlnum, const double* bignum, MKL_INT* info );
void dlaein_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const double* h, const MKL_INT* ldh, const double* wr,
              const double* wi, double* vr, double* vi, double* b,
              const MKL_INT* ldb, double* work, const double* eps3,
              const double* smlnum, const double* bignum, MKL_INT* info );

void DLAEV2( const double* a, const double* b, const double* c, double* rt1,
             double* rt2, double* cs1, double* sn1 );
void DLAEV2_( const double* a, const double* b, const double* c, double* rt1,
              double* rt2, double* cs1, double* sn1 );
void dlaev2( const double* a, const double* b, const double* c, double* rt1,
             double* rt2, double* cs1, double* sn1 );
void dlaev2_( const double* a, const double* b, const double* c, double* rt1,
              double* rt2, double* cs1, double* sn1 );

void DLAEXC( const MKL_INT* wantq, const MKL_INT* n, double* t,
             const MKL_INT* ldt, double* q, const MKL_INT* ldq,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             double* work, MKL_INT* info );
void DLAEXC_( const MKL_INT* wantq, const MKL_INT* n, double* t,
              const MKL_INT* ldt, double* q, const MKL_INT* ldq,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              double* work, MKL_INT* info );
void dlaexc( const MKL_INT* wantq, const MKL_INT* n, double* t,
             const MKL_INT* ldt, double* q, const MKL_INT* ldq,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             double* work, MKL_INT* info );
void dlaexc_( const MKL_INT* wantq, const MKL_INT* n, double* t,
              const MKL_INT* ldt, double* q, const MKL_INT* ldq,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              double* work, MKL_INT* info );

void DLAG2( const double* a, const MKL_INT* lda, const double* b,
            const MKL_INT* ldb, const double* safmin, double* scale1,
            double* scale2, double* wr1, double* wr2, double* wi );
void DLAG2_( const double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, const double* safmin, double* scale1,
             double* scale2, double* wr1, double* wr2, double* wi );
void dlag2( const double* a, const MKL_INT* lda, const double* b,
            const MKL_INT* ldb, const double* safmin, double* scale1,
            double* scale2, double* wr1, double* wr2, double* wi );
void dlag2_( const double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, const double* safmin, double* scale1,
             double* scale2, double* wr1, double* wr2, double* wi );

void DLAG2S( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void DLAG2S_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
              MKL_INT* info );
void dlag2s( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void dlag2s_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
              MKL_INT* info );

void DLAGS2( const MKL_INT* upper, const double* a1, const double* a2,
             const double* a3, const double* b1, const double* b2,
             const double* b3, double* csu, double* snu, double* csv,
             double* snv, double* csq, double* snq );
void DLAGS2_( const MKL_INT* upper, const double* a1, const double* a2,
              const double* a3, const double* b1, const double* b2,
              const double* b3, double* csu, double* snu, double* csv,
              double* snv, double* csq, double* snq );
void dlags2( const MKL_INT* upper, const double* a1, const double* a2,
             const double* a3, const double* b1, const double* b2,
             const double* b3, double* csu, double* snu, double* csv,
             double* snv, double* csq, double* snq );
void dlags2_( const MKL_INT* upper, const double* a1, const double* a2,
              const double* a3, const double* b1, const double* b2,
              const double* b3, double* csu, double* snu, double* csv,
              double* snv, double* csq, double* snq );

void DLAGTF( const MKL_INT* n, double* a, const double* lambda, double* b,
             double* c, const double* tol, double* d, MKL_INT* in,
             MKL_INT* info );
void DLAGTF_( const MKL_INT* n, double* a, const double* lambda, double* b,
              double* c, const double* tol, double* d, MKL_INT* in,
              MKL_INT* info );
void dlagtf( const MKL_INT* n, double* a, const double* lambda, double* b,
             double* c, const double* tol, double* d, MKL_INT* in,
             MKL_INT* info );
void dlagtf_( const MKL_INT* n, double* a, const double* lambda, double* b,
              double* c, const double* tol, double* d, MKL_INT* in,
              MKL_INT* info );

void DLAGTM( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* alpha, const double* dl, const double* d,
             const double* du, const double* x, const MKL_INT* ldx,
             const double* beta, double* b, const MKL_INT* ldb );
void DLAGTM_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* alpha, const double* dl, const double* d,
              const double* du, const double* x, const MKL_INT* ldx,
              const double* beta, double* b, const MKL_INT* ldb );
void dlagtm( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* alpha, const double* dl, const double* d,
             const double* du, const double* x, const MKL_INT* ldx,
             const double* beta, double* b, const MKL_INT* ldb );
void dlagtm_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* alpha, const double* dl, const double* d,
              const double* du, const double* x, const MKL_INT* ldx,
              const double* beta, double* b, const MKL_INT* ldb );

void DLAGTS( const MKL_INT* job, const MKL_INT* n, const double* a,
             const double* b, const double* c, const double* d,
             const MKL_INT* in, double* y, double* tol, MKL_INT* info );
void DLAGTS_( const MKL_INT* job, const MKL_INT* n, const double* a,
              const double* b, const double* c, const double* d,
              const MKL_INT* in, double* y, double* tol, MKL_INT* info );
void dlagts( const MKL_INT* job, const MKL_INT* n, const double* a,
             const double* b, const double* c, const double* d,
             const MKL_INT* in, double* y, double* tol, MKL_INT* info );
void dlagts_( const MKL_INT* job, const MKL_INT* n, const double* a,
              const double* b, const double* c, const double* d,
              const MKL_INT* in, double* y, double* tol, MKL_INT* info );

void DLAGV2( double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* alphar, double* alphai, double* beta, double* csl,
             double* snl, double* csr, double* snr );
void DLAGV2_( double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* alphar, double* alphai, double* beta, double* csl,
              double* snl, double* csr, double* snr );
void dlagv2( double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* alphar, double* alphai, double* beta, double* csl,
             double* snl, double* csr, double* snr );
void dlagv2_( double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* alphar, double* alphai, double* beta, double* csl,
              double* snl, double* csr, double* snr );

void DLAHQR( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz,
             MKL_INT* info );
void DLAHQR_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz,
              MKL_INT* info );
void dlahqr( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz,
             MKL_INT* info );
void dlahqr_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz,
              MKL_INT* info );

void DLAHR2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
             double* y, const MKL_INT* ldy );
void DLAHR2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
              double* y, const MKL_INT* ldy );
void dlahr2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
             double* y, const MKL_INT* ldy );
void dlahr2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
              double* y, const MKL_INT* ldy );

void DLAHRD( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
             double* y, const MKL_INT* ldy );
void DLAHRD_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
              double* y, const MKL_INT* ldy );
void dlahrd( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
             double* y, const MKL_INT* ldy );
void dlahrd_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* tau, double* t, const MKL_INT* ldt,
              double* y, const MKL_INT* ldy );

void DLAIC1( const MKL_INT* job, const MKL_INT* j, const double* x,
             const double* sest, const double* w, const double* gamma,
             double* sestpr, double* s, double* c );
void DLAIC1_( const MKL_INT* job, const MKL_INT* j, const double* x,
              const double* sest, const double* w, const double* gamma,
              double* sestpr, double* s, double* c );
void dlaic1( const MKL_INT* job, const MKL_INT* j, const double* x,
             const double* sest, const double* w, const double* gamma,
             double* sestpr, double* s, double* c );
void dlaic1_( const MKL_INT* job, const MKL_INT* j, const double* x,
              const double* sest, const double* w, const double* gamma,
              double* sestpr, double* s, double* c );

MKL_INT DLAISNAN( const double* din1, const double* din2 );
MKL_INT DLAISNAN_( const double* din1, const double* din2 );
MKL_INT dlaisnan( const double* din1, const double* din2 );
MKL_INT dlaisnan_( const double* din1, const double* din2 );

void DLALN2( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
             const double* smin, const double* ca, const double* a,
             const MKL_INT* lda, const double* d1, const double* d2,
             const double* b, const MKL_INT* ldb, const double* wr,
             const double* wi, double* x, const MKL_INT* ldx, double* scale,
             double* xnorm, MKL_INT* info );
void DLALN2_( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
              const double* smin, const double* ca, const double* a,
              const MKL_INT* lda, const double* d1, const double* d2,
              const double* b, const MKL_INT* ldb, const double* wr,
              const double* wi, double* x, const MKL_INT* ldx, double* scale,
              double* xnorm, MKL_INT* info );
void dlaln2( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
             const double* smin, const double* ca, const double* a,
             const MKL_INT* lda, const double* d1, const double* d2,
             const double* b, const MKL_INT* ldb, const double* wr,
             const double* wi, double* x, const MKL_INT* ldx, double* scale,
             double* xnorm, MKL_INT* info );
void dlaln2_( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
              const double* smin, const double* ca, const double* a,
              const MKL_INT* lda, const double* d1, const double* d2,
              const double* b, const MKL_INT* ldb, const double* wr,
              const double* wi, double* x, const MKL_INT* ldx, double* scale,
              double* xnorm, MKL_INT* info );

void DLALS0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, double* b,
             const MKL_INT* ldb, double* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const double* givnum,
             const MKL_INT* ldgnum, const double* poles, const double* difl,
             const double* difr, const double* z, const MKL_INT* k,
             const double* c, const double* s, double* work, MKL_INT* info );
void DLALS0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, double* b,
              const MKL_INT* ldb, double* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const double* givnum, const MKL_INT* ldgnum, const double* poles,
              const double* difl, const double* difr, const double* z,
              const MKL_INT* k, const double* c, const double* s, double* work,
              MKL_INT* info );
void dlals0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, double* b,
             const MKL_INT* ldb, double* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const double* givnum,
             const MKL_INT* ldgnum, const double* poles, const double* difl,
             const double* difr, const double* z, const MKL_INT* k,
             const double* c, const double* s, double* work, MKL_INT* info );
void dlals0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, double* b,
              const MKL_INT* ldb, double* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const double* givnum, const MKL_INT* ldgnum, const double* poles,
              const double* difl, const double* difr, const double* z,
              const MKL_INT* k, const double* c, const double* s, double* work,
              MKL_INT* info );

void DLALSA( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, double* b, const MKL_INT* ldb, double* bx,
             const MKL_INT* ldbx, const double* u, const MKL_INT* ldu,
             const double* vt, const MKL_INT* k, const double* difl,
             const double* difr, const double* z, const double* poles,
             const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const double* givnum,
             const double* c, const double* s, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DLALSA_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, double* b, const MKL_INT* ldb, double* bx,
              const MKL_INT* ldbx, const double* u, const MKL_INT* ldu,
              const double* vt, const MKL_INT* k, const double* difl,
              const double* difr, const double* z, const double* poles,
              const MKL_INT* givptr, const MKL_INT* givcol,
              const MKL_INT* ldgcol, const MKL_INT* perm, const double* givnum,
              const double* c, const double* s, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dlalsa( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, double* b, const MKL_INT* ldb, double* bx,
             const MKL_INT* ldbx, const double* u, const MKL_INT* ldu,
             const double* vt, const MKL_INT* k, const double* difl,
             const double* difr, const double* z, const double* poles,
             const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const double* givnum,
             const double* c, const double* s, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dlalsa_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, double* b, const MKL_INT* ldb, double* bx,
              const MKL_INT* ldbx, const double* u, const MKL_INT* ldu,
              const double* vt, const MKL_INT* k, const double* difl,
              const double* difr, const double* z, const double* poles,
              const MKL_INT* givptr, const MKL_INT* givcol,
              const MKL_INT* ldgcol, const MKL_INT* perm, const double* givnum,
              const double* c, const double* s, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DLALSD( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, double* d, double* e, double* b,
             const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DLALSD_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, double* d, double* e, double* b,
              const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dlalsd( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, double* d, double* e, double* b,
             const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dlalsd_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, double* d, double* e, double* b,
              const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
              double* work, MKL_INT* iwork, MKL_INT* info );

double DLAMCH( const char* cmach );
double DLAMCH_( const char* cmach );
double dlamch( const char* cmach );
double dlamch_( const char* cmach );

void DLAMC1( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );
void DLAMC1_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );
void dlamc1( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );
void dlamc1_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );

void DLAMC2( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, double* eps,
             MKL_INT* emin, double* rmin, MKL_INT* emax, double* rmax );
void DLAMC2_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, double* eps,
              MKL_INT* emin, double* rmin, MKL_INT* emax, double* rmax );
void dlamc2( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, double* eps,
             MKL_INT* emin, double* rmin, MKL_INT* emax, double* rmax );
void dlamc2_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, double* eps,
              MKL_INT* emin, double* rmin, MKL_INT* emax, double* rmax );

double DLAMC3( const double* a, const double* b );
double DLAMC3_( const double* a, const double* b );
double dlamc3( const double* a, const double* b );
double dlamc3_( const double* a, const double* b );

void DLAMC4( MKL_INT* emin, const double* start, const MKL_INT* base );
void DLAMC4_( MKL_INT* emin, const double* start, const MKL_INT* base );
void dlamc4( MKL_INT* emin, const double* start, const MKL_INT* base );
void dlamc4_( MKL_INT* emin, const double* start, const MKL_INT* base );

void DLAMC5( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
             const MKL_INT* ieee, MKL_INT* emax, double* rmax );
void DLAMC5_( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
              const MKL_INT* ieee, MKL_INT* emax, double* rmax );
void dlamc5( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
             const MKL_INT* ieee, MKL_INT* emax, double* rmax );
void dlamc5_( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
              const MKL_INT* ieee, MKL_INT* emax, double* rmax );

void DLAMRG( const MKL_INT* n1, const MKL_INT* n2, const double* a,
             const MKL_INT* dtrd1, const MKL_INT* dtrd2, MKL_INT* index );
void DLAMRG_( const MKL_INT* n1, const MKL_INT* n2, const double* a,
              const MKL_INT* dtrd1, const MKL_INT* dtrd2, MKL_INT* index );
void dlamrg( const MKL_INT* n1, const MKL_INT* n2, const double* a,
             const MKL_INT* dtrd1, const MKL_INT* dtrd2, MKL_INT* index );
void dlamrg_( const MKL_INT* n1, const MKL_INT* n2, const double* a,
              const MKL_INT* dtrd1, const MKL_INT* dtrd2, MKL_INT* index );

MKL_INT DLANEG( const MKL_INT* n, const double* d, const double* lld,
                const double* sigma, const double* pivmin, const MKL_INT* r );
MKL_INT DLANEG_( const MKL_INT* n, const double* d, const double* lld,
                 const double* sigma, const double* pivmin, const MKL_INT* r );
MKL_INT dlaneg( const MKL_INT* n, const double* d, const double* lld,
                const double* sigma, const double* pivmin, const MKL_INT* r );
MKL_INT dlaneg_( const MKL_INT* n, const double* d, const double* lld,
                 const double* sigma, const double* pivmin, const MKL_INT* r );

double DLANGB( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
               double* work );
double DLANGB_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
                const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
                double* work );
double dlangb( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
               double* work );
double dlangb_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
                const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
                double* work );

double DLANGE( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const double* a, const MKL_INT* lda, double* work );
double DLANGE_( const char* norm, const MKL_INT* m, const MKL_INT* n,
                const double* a, const MKL_INT* lda, double* work );
double dlange( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const double* a, const MKL_INT* lda, double* work );
double dlange_( const char* norm, const MKL_INT* m, const MKL_INT* n,
                const double* a, const MKL_INT* lda, double* work );

double DLANGT( const char* norm, const MKL_INT* n, const double* dl,
               const double* d, const double* du );
double DLANGT_( const char* norm, const MKL_INT* n, const double* dl,
                const double* d, const double* du );
double dlangt( const char* norm, const MKL_INT* n, const double* dl,
               const double* d, const double* du );
double dlangt_( const char* norm, const MKL_INT* n, const double* dl,
                const double* d, const double* du );

double DLANHS( const char* norm, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* work );
double DLANHS_( const char* norm, const MKL_INT* n, const double* a,
                const MKL_INT* lda, double* work );
double dlanhs( const char* norm, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* work );
double dlanhs_( const char* norm, const MKL_INT* n, const double* a,
                const MKL_INT* lda, double* work );

double DLANSB( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const double* ab, const MKL_INT* ldab,
               double* work );
double DLANSB_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_INT* k, const double* ab, const MKL_INT* ldab,
                double* work );
double dlansb( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const double* ab, const MKL_INT* ldab,
               double* work );
double dlansb_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_INT* k, const double* ab, const MKL_INT* ldab,
                double* work );

double DLANSF( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const double* a, double* work );
double DLANSF_( const char* norm, const char* transr, const char* uplo,
                const MKL_INT* n, const double* a, double* work );
double dlansf( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const double* a, double* work );
double dlansf_( const char* norm, const char* transr, const char* uplo,
                const MKL_INT* n, const double* a, double* work );

double DLANSP( const char* norm, const char* uplo, const MKL_INT* n,
               const double* ap, double* work );
double DLANSP_( const char* norm, const char* uplo, const MKL_INT* n,
                const double* ap, double* work );
double dlansp( const char* norm, const char* uplo, const MKL_INT* n,
               const double* ap, double* work );
double dlansp_( const char* norm, const char* uplo, const MKL_INT* n,
                const double* ap, double* work );

double DLANST( const char* norm, const MKL_INT* n, const double* d,
               const double* e );
double DLANST_( const char* norm, const MKL_INT* n, const double* d,
                const double* e );
double dlanst( const char* norm, const MKL_INT* n, const double* d,
               const double* e );
double dlanst_( const char* norm, const MKL_INT* n, const double* d,
                const double* e );

double DLANSY( const char* norm, const char* uplo, const MKL_INT* n,
               const double* a, const MKL_INT* lda, double* work );
double DLANSY_( const char* norm, const char* uplo, const MKL_INT* n,
                const double* a, const MKL_INT* lda, double* work );
double dlansy( const char* norm, const char* uplo, const MKL_INT* n,
               const double* a, const MKL_INT* lda, double* work );
double dlansy_( const char* norm, const char* uplo, const MKL_INT* n,
                const double* a, const MKL_INT* lda, double* work );

double DLANTB( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const double* ab,
               const MKL_INT* ldab, double* work );
double DLANTB_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const MKL_INT* k, const double* ab,
                const MKL_INT* ldab, double* work );
double dlantb( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const double* ab,
               const MKL_INT* ldab, double* work );
double dlantb_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const MKL_INT* k, const double* ab,
                const MKL_INT* ldab, double* work );

double DLANTP( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const double* ap, double* work );
double DLANTP_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const double* ap, double* work );
double dlantp( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const double* ap, double* work );
double dlantp_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const double* ap, double* work );

double DLANTR( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* work );
double DLANTR_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* m, const MKL_INT* n, const double* a,
                const MKL_INT* lda, double* work );
double dlantr( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* work );
double dlantr_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* m, const MKL_INT* n, const double* a,
                const MKL_INT* lda, double* work );

void DLANV2( double* a, double* b, double* c, double* d, double* rt1r,
             double* rt1i, double* rt2r, double* rt2i, double* cs,
             double* sn );
void DLANV2_( double* a, double* b, double* c, double* d, double* rt1r,
              double* rt1i, double* rt2r, double* rt2i, double* cs,
              double* sn );
void dlanv2( double* a, double* b, double* c, double* d, double* rt1r,
             double* rt1i, double* rt2r, double* rt2i, double* cs,
             double* sn );
void dlanv2_( double* a, double* b, double* c, double* d, double* rt1r,
              double* rt1i, double* rt2r, double* rt2i, double* cs,
              double* sn );

void DLAPLL( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
             const MKL_INT* incy, double* ssmin );
void DLAPLL_( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
              const MKL_INT* incy, double* ssmin );
void dlapll( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
             const MKL_INT* incy, double* ssmin );
void dlapll_( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
              const MKL_INT* incy, double* ssmin );

void DLAPMT( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             double* x, const MKL_INT* ldx, MKL_INT* k );
void DLAPMT_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              double* x, const MKL_INT* ldx, MKL_INT* k );
void dlapmt( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             double* x, const MKL_INT* ldx, MKL_INT* k );
void dlapmt_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              double* x, const MKL_INT* ldx, MKL_INT* k );

double DLAPY2( const double* x, const double* y );
double DLAPY2_( const double* x, const double* y );
double dlapy2( const double* x, const double* y );
double dlapy2_( const double* x, const double* y );

double DLAPY3( const double* x, const double* y, const double* z );
double DLAPY3_( const double* x, const double* y, const double* z );
double dlapy3( const double* x, const double* y, const double* z );
double dlapy3_( const double* x, const double* y, const double* z );

void DLAQGB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, double* ab, const MKL_INT* ldab,
             const double* r, const double* c, const double* rowcnd,
             const double* colcnd, const double* amax, char* equed );
void DLAQGB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, double* ab, const MKL_INT* ldab,
              const double* r, const double* c, const double* rowcnd,
              const double* colcnd, const double* amax, char* equed );
void dlaqgb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, double* ab, const MKL_INT* ldab,
             const double* r, const double* c, const double* rowcnd,
             const double* colcnd, const double* amax, char* equed );
void dlaqgb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, double* ab, const MKL_INT* ldab,
              const double* r, const double* c, const double* rowcnd,
              const double* colcnd, const double* amax, char* equed );

void DLAQGE( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             const double* r, const double* c, const double* rowcnd,
             const double* colcnd, const double* amax, char* equed );
void DLAQGE_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, const double* r, const double* c,
              const double* rowcnd, const double* colcnd, const double* amax,
              char* equed );
void dlaqge( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             const double* r, const double* c, const double* rowcnd,
             const double* colcnd, const double* amax, char* equed );
void dlaqge_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, const double* r, const double* c,
              const double* rowcnd, const double* colcnd, const double* amax,
              char* equed );

void DLAQP2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             double* a, const MKL_INT* lda, MKL_INT* jpvt, double* tau,
             double* vn1, double* vn2, double* work );
void DLAQP2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              double* a, const MKL_INT* lda, MKL_INT* jpvt, double* tau,
              double* vn1, double* vn2, double* work );
void dlaqp2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             double* a, const MKL_INT* lda, MKL_INT* jpvt, double* tau,
             double* vn1, double* vn2, double* work );
void dlaqp2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              double* a, const MKL_INT* lda, MKL_INT* jpvt, double* tau,
              double* vn1, double* vn2, double* work );

void DLAQPS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, double* a, const MKL_INT* lda,
             MKL_INT* jpvt, double* tau, double* vn1, double* vn2,
             double* auxv, double* f, const MKL_INT* ldf );
void DLAQPS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, double* a, const MKL_INT* lda,
              MKL_INT* jpvt, double* tau, double* vn1, double* vn2,
              double* auxv, double* f, const MKL_INT* ldf );
void dlaqps( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, double* a, const MKL_INT* lda,
             MKL_INT* jpvt, double* tau, double* vn1, double* vn2,
             double* auxv, double* f, const MKL_INT* ldf );
void dlaqps_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, double* a, const MKL_INT* lda,
              MKL_INT* jpvt, double* tau, double* vn1, double* vn2,
              double* auxv, double* f, const MKL_INT* ldf );

void DLAQR0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DLAQR0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dlaqr0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dlaqr0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DLAQR1( const MKL_INT* n, const double* h, const MKL_INT* ldh,
             const double* sr1, double* si1, double* sr2, double* si2,
             double* v );
void DLAQR1_( const MKL_INT* n, const double* h, const MKL_INT* ldh,
              const double* sr1, double* si1, double* sr2, double* si2,
              double* v );
void dlaqr1( const MKL_INT* n, const double* h, const MKL_INT* ldh,
             const double* sr1, double* si1, double* sr2, double* si2,
             double* v );
void dlaqr1_( const MKL_INT* n, const double* h, const MKL_INT* ldh,
              const double* sr1, double* si1, double* sr2, double* si2,
              double* v );

void DLAQR2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             double* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, double* sr, double* si, double* v,
             const MKL_INT* ldv, const MKL_INT* nh, double* t,
             const MKL_INT* ldt, const MKL_INT* nv, double* wv,
             const MKL_INT* ldwv, double* work, const MKL_INT* lwork );
void DLAQR2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              double* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, double* sr, double* si, double* v,
              const MKL_INT* ldv, const MKL_INT* nh, double* t,
              const MKL_INT* ldt, const MKL_INT* nv, double* wv,
              const MKL_INT* ldwv, double* work, const MKL_INT* lwork );
void dlaqr2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             double* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, double* sr, double* si, double* v,
             const MKL_INT* ldv, const MKL_INT* nh, double* t,
             const MKL_INT* ldt, const MKL_INT* nv, double* wv,
             const MKL_INT* ldwv, double* work, const MKL_INT* lwork );
void dlaqr2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              double* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, double* sr, double* si, double* v,
              const MKL_INT* ldv, const MKL_INT* nh, double* t,
              const MKL_INT* ldt, const MKL_INT* nv, double* wv,
              const MKL_INT* ldwv, double* work, const MKL_INT* lwork );

void DLAQR3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             double* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, double* sr, double* si, double* v,
             const MKL_INT* ldv, const MKL_INT* nh, double* t,
             const MKL_INT* ldt, const MKL_INT* nv, double* wv,
             const MKL_INT* ldwv, double* work, const MKL_INT* lwork );
void DLAQR3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              double* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, double* sr, double* si, double* v,
              const MKL_INT* ldv, const MKL_INT* nh, double* t,
              const MKL_INT* ldt, const MKL_INT* nv, double* wv,
              const MKL_INT* ldwv, double* work, const MKL_INT* lwork );
void dlaqr3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             double* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, double* sr, double* si, double* v,
             const MKL_INT* ldv, const MKL_INT* nh, double* t,
             const MKL_INT* ldt, const MKL_INT* nv, double* wv,
             const MKL_INT* ldwv, double* work, const MKL_INT* lwork );
void dlaqr3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              double* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, double* sr, double* si, double* v,
              const MKL_INT* ldv, const MKL_INT* nh, double* t,
              const MKL_INT* ldt, const MKL_INT* nv, double* wv,
              const MKL_INT* ldwv, double* work, const MKL_INT* lwork );

void DLAQR4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DLAQR4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dlaqr4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, double* h,
             const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dlaqr4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, double* h,
              const MKL_INT* ldh, double* wr, double* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DLAQR5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, double* sr, double* si, double* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             double* z, const MKL_INT* ldz, double* v, const MKL_INT* ldv,
             double* u, const MKL_INT* ldu, const MKL_INT* nv, double* wv,
             const MKL_INT* ldwv, const MKL_INT* nh, double* wh,
             const MKL_INT* ldwh );
void DLAQR5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, double* sr,
              double* si, double* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* v,
              const MKL_INT* ldv, double* u, const MKL_INT* ldu,
              const MKL_INT* nv, double* wv, const MKL_INT* ldwv,
              const MKL_INT* nh, double* wh, const MKL_INT* ldwh );
void dlaqr5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, double* sr, double* si, double* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             double* z, const MKL_INT* ldz, double* v, const MKL_INT* ldv,
             double* u, const MKL_INT* ldu, const MKL_INT* nv, double* wv,
             const MKL_INT* ldwv, const MKL_INT* nh, double* wh,
             const MKL_INT* ldwh );
void dlaqr5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, double* sr,
              double* si, double* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, double* z, const MKL_INT* ldz, double* v,
              const MKL_INT* ldv, double* u, const MKL_INT* ldu,
              const MKL_INT* nv, double* wv, const MKL_INT* ldwv,
              const MKL_INT* nh, double* wh, const MKL_INT* ldwh );

void DLAQSB( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, const double* s, const double* scond,
             const double* amax, char* equed );
void DLAQSB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, const double* s,
              const double* scond, const double* amax, char* equed );
void dlaqsb( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, const double* s, const double* scond,
             const double* amax, char* equed );
void dlaqsb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, const double* s,
              const double* scond, const double* amax, char* equed );

void DLAQSP( const char* uplo, const MKL_INT* n, double* ap, const double* s,
             const double* scond, const double* amax, char* equed );
void DLAQSP_( const char* uplo, const MKL_INT* n, double* ap, const double* s,
              const double* scond, const double* amax, char* equed );
void dlaqsp( const char* uplo, const MKL_INT* n, double* ap, const double* s,
             const double* scond, const double* amax, char* equed );
void dlaqsp_( const char* uplo, const MKL_INT* n, double* ap, const double* s,
              const double* scond, const double* amax, char* equed );

void DLAQSY( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             const double* s, const double* scond, const double* amax,
             char* equed );
void DLAQSY_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const double* s, const double* scond,
              const double* amax, char* equed );
void dlaqsy( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             const double* s, const double* scond, const double* amax,
             char* equed );
void dlaqsy_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const double* s, const double* scond,
              const double* amax, char* equed );

void DLAQTR( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
             const double* t, const MKL_INT* ldt, const double* b,
             const double* w, double* scale, double* x, double* work,
             MKL_INT* info );
void DLAQTR_( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
              const double* t, const MKL_INT* ldt, const double* b,
              const double* w, double* scale, double* x, double* work,
              MKL_INT* info );
void dlaqtr( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
             const double* t, const MKL_INT* ldt, const double* b,
             const double* w, double* scale, double* x, double* work,
             MKL_INT* info );
void dlaqtr_( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
              const double* t, const MKL_INT* ldt, const double* b,
              const double* w, double* scale, double* x, double* work,
              MKL_INT* info );

void DLAR1V( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const double* lambda, const double* d, const double* l,
             const double* ld, const double* lld, const double* pivmin,
             const double* gaptol, double* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
             MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
             double* work );
void DLAR1V_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const double* lambda, const double* d, const double* l,
              const double* ld, const double* lld, const double* pivmin,
              const double* gaptol, double* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
              MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
              double* work );
void dlar1v( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const double* lambda, const double* d, const double* l,
             const double* ld, const double* lld, const double* pivmin,
             const double* gaptol, double* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
             MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
             double* work );
void dlar1v_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const double* lambda, const double* d, const double* l,
              const double* ld, const double* lld, const double* pivmin,
              const double* gaptol, double* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
              MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
              double* work );

void DLAR2V( const MKL_INT* n, double* x, double* y, double* z,
             const MKL_INT* incx, const double* c, const double* s,
             const MKL_INT* incc );
void DLAR2V_( const MKL_INT* n, double* x, double* y, double* z,
              const MKL_INT* incx, const double* c, const double* s,
              const MKL_INT* incc );
void dlar2v( const MKL_INT* n, double* x, double* y, double* z,
             const MKL_INT* incx, const double* c, const double* s,
             const MKL_INT* incc );
void dlar2v_( const MKL_INT* n, double* x, double* y, double* z,
              const MKL_INT* incx, const double* c, const double* s,
              const MKL_INT* incc );

void DLARFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const double* v, const MKL_INT* ldv,
             const double* t, const MKL_INT* ldt, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* ldwork );
void DLARFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* ldwork );
void dlarfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const double* v, const MKL_INT* ldv,
             const double* t, const MKL_INT* ldt, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* ldwork );
void dlarfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const double* v, const MKL_INT* ldv,
              const double* t, const MKL_INT* ldt, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* ldwork );

void DLARF( const char* side, const MKL_INT* m, const MKL_INT* n,
            const double* v, const MKL_INT* incv, const double* tau, double* c,
            const MKL_INT* ldc, double* work );
void DLARF_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const double* v, const MKL_INT* incv, const double* tau,
             double* c, const MKL_INT* ldc, double* work );
void dlarf( const char* side, const MKL_INT* m, const MKL_INT* n,
            const double* v, const MKL_INT* incv, const double* tau, double* c,
            const MKL_INT* ldc, double* work );
void dlarf_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const double* v, const MKL_INT* incv, const double* tau,
             double* c, const MKL_INT* ldc, double* work );

void DLARFG( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
             double* tau );
void DLARFG_( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
              double* tau );
void dlarfg( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
             double* tau );
void dlarfg_( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
              double* tau );

void DLARFGP( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
              double* tau );
void DLARFGP_( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
               double* tau );
void dlarfgp( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
              double* tau );
void dlarfgp_( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
               double* tau );

void DLARFP( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
             double* tau );
void DLARFP_( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
              double* tau );
void dlarfp( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
             double* tau );
void dlarfp_( const MKL_INT* n, double* alpha, double* x, const MKL_INT* incx,
              double* tau );

void DLARFT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const double* v, const MKL_INT* ldv,
             const double* tau, double* t, const MKL_INT* ldt );
void DLARFT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const double* v, const MKL_INT* ldv,
              const double* tau, double* t, const MKL_INT* ldt );
void dlarft( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const double* v, const MKL_INT* ldv,
             const double* tau, double* t, const MKL_INT* ldt );
void dlarft_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const double* v, const MKL_INT* ldv,
              const double* tau, double* t, const MKL_INT* ldt );

void DLARFX( const char* side, const MKL_INT* m, const MKL_INT* n,
             const double* v, const double* tau, double* c, const MKL_INT* ldc,
             double* work );
void DLARFX_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const double* v, const double* tau, double* c,
              const MKL_INT* ldc, double* work );
void dlarfx( const char* side, const MKL_INT* m, const MKL_INT* n,
             const double* v, const double* tau, double* c, const MKL_INT* ldc,
             double* work );
void dlarfx_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const double* v, const double* tau, double* c,
              const MKL_INT* ldc, double* work );

void DLARGV( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
             const MKL_INT* incy, double* c, const MKL_INT* incc );
void DLARGV_( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
              const MKL_INT* incy, double* c, const MKL_INT* incc );
void dlargv( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
             const MKL_INT* incy, double* c, const MKL_INT* incc );
void dlargv_( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
              const MKL_INT* incy, double* c, const MKL_INT* incc );

void DLARNV( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             double* x );
void DLARNV_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              double* x );
void dlarnv( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             double* x );
void dlarnv_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              double* x );

void DLARRA( const MKL_INT* n, const double* d, double* e, double* e2,
             const double* spltol, const double* tnrm, MKL_INT* nsplit,
             MKL_INT* isplit, MKL_INT* info );
void DLARRA_( const MKL_INT* n, const double* d, double* e, double* e2,
              const double* spltol, const double* tnrm, MKL_INT* nsplit,
              MKL_INT* isplit, MKL_INT* info );
void dlarra( const MKL_INT* n, const double* d, double* e, double* e2,
             const double* spltol, const double* tnrm, MKL_INT* nsplit,
             MKL_INT* isplit, MKL_INT* info );
void dlarra_( const MKL_INT* n, const double* d, double* e, double* e2,
              const double* spltol, const double* tnrm, MKL_INT* nsplit,
              MKL_INT* isplit, MKL_INT* info );

void DLARRB( const MKL_INT* n, const double* d, const double* lld,
             const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol1,
             const double* rtol2, const MKL_INT* offset, double* w,
             double* wgap, double* werr, double* work, MKL_INT* iwork,
             const double* pivmin, const double* spdiam, const MKL_INT* twist,
             MKL_INT* info );
void DLARRB_( const MKL_INT* n, const double* d, const double* lld,
              const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol1,
              const double* rtol2, const MKL_INT* offset, double* w,
              double* wgap, double* werr, double* work, MKL_INT* iwork,
              const double* pivmin, const double* spdiam, const MKL_INT* twist,
              MKL_INT* info );
void dlarrb( const MKL_INT* n, const double* d, const double* lld,
             const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol1,
             const double* rtol2, const MKL_INT* offset, double* w,
             double* wgap, double* werr, double* work, MKL_INT* iwork,
             const double* pivmin, const double* spdiam, const MKL_INT* twist,
             MKL_INT* info );
void dlarrb_( const MKL_INT* n, const double* d, const double* lld,
              const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol1,
              const double* rtol2, const MKL_INT* offset, double* w,
              double* wgap, double* werr, double* work, MKL_INT* iwork,
              const double* pivmin, const double* spdiam, const MKL_INT* twist,
              MKL_INT* info );

void DLARRC( const char* jobt, const MKL_INT* n, const double* vl,
             const double* vu, const double* d, const double* e,
             const double* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
             MKL_INT* rcnt, MKL_INT* info );
void DLARRC_( const char* jobt, const MKL_INT* n, const double* vl,
              const double* vu, const double* d, const double* e,
              const double* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
              MKL_INT* rcnt, MKL_INT* info );
void dlarrc( const char* jobt, const MKL_INT* n, const double* vl,
             const double* vu, const double* d, const double* e,
             const double* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
             MKL_INT* rcnt, MKL_INT* info );
void dlarrc_( const char* jobt, const MKL_INT* n, const double* vl,
              const double* vu, const double* d, const double* e,
              const double* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
              MKL_INT* rcnt, MKL_INT* info );

void DLARRD( const char* range, const char* order, const MKL_INT* n,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* gers, const double* reltol,
             const double* d, const double* e, const double* e2,
             const double* pivmin, const MKL_INT* nsplit,
             const MKL_INT* isplit, MKL_INT* m, double* w, double* werr,
             double* wl, double* wu, MKL_INT* iblock, MKL_INT* indexw,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DLARRD_( const char* range, const char* order, const MKL_INT* n,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* gers, const double* reltol,
              const double* d, const double* e, const double* e2,
              const double* pivmin, const MKL_INT* nsplit,
              const MKL_INT* isplit, MKL_INT* m, double* w, double* werr,
              double* wl, double* wu, MKL_INT* iblock, MKL_INT* indexw,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dlarrd( const char* range, const char* order, const MKL_INT* n,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* gers, const double* reltol,
             const double* d, const double* e, const double* e2,
             const double* pivmin, const MKL_INT* nsplit,
             const MKL_INT* isplit, MKL_INT* m, double* w, double* werr,
             double* wl, double* wu, MKL_INT* iblock, MKL_INT* indexw,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dlarrd_( const char* range, const char* order, const MKL_INT* n,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* gers, const double* reltol,
              const double* d, const double* e, const double* e2,
              const double* pivmin, const MKL_INT* nsplit,
              const MKL_INT* isplit, MKL_INT* m, double* w, double* werr,
              double* wl, double* wu, MKL_INT* iblock, MKL_INT* indexw,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DLARRE( const char* range, const MKL_INT* n, double* vl, double* vu,
             const MKL_INT* il, const MKL_INT* iu, double* d, double* e,
             double* e2, const double* rtol1, const double* rtol2,
             const double* spltol, MKL_INT* nsplit, MKL_INT* isplit,
             MKL_INT* m, double* w, double* werr, double* wgap,
             MKL_INT* iblock, MKL_INT* indexw, double* gers, double* pivmin,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DLARRE_( const char* range, const MKL_INT* n, double* vl, double* vu,
              const MKL_INT* il, const MKL_INT* iu, double* d, double* e,
              double* e2, const double* rtol1, const double* rtol2,
              const double* spltol, MKL_INT* nsplit, MKL_INT* isplit,
              MKL_INT* m, double* w, double* werr, double* wgap,
              MKL_INT* iblock, MKL_INT* indexw, double* gers, double* pivmin,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dlarre( const char* range, const MKL_INT* n, double* vl, double* vu,
             const MKL_INT* il, const MKL_INT* iu, double* d, double* e,
             double* e2, const double* rtol1, const double* rtol2,
             const double* spltol, MKL_INT* nsplit, MKL_INT* isplit,
             MKL_INT* m, double* w, double* werr, double* wgap,
             MKL_INT* iblock, MKL_INT* indexw, double* gers, double* pivmin,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dlarre_( const char* range, const MKL_INT* n, double* vl, double* vu,
              const MKL_INT* il, const MKL_INT* iu, double* d, double* e,
              double* e2, const double* rtol1, const double* rtol2,
              const double* spltol, MKL_INT* nsplit, MKL_INT* isplit,
              MKL_INT* m, double* w, double* werr, double* wgap,
              MKL_INT* iblock, MKL_INT* indexw, double* gers, double* pivmin,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DLARRF( const MKL_INT* n, const double* d, const double* l,
             const double* ld, const MKL_INT* clstrt, const MKL_INT* clend,
             const double* w, double* wgap, const double* werr,
             const double* spdiam, const double* clgapl, double* clgapr,
             const double* pivmin, double* sigma, double* dplus, double* lplus,
             double* work, MKL_INT* info );
void DLARRF_( const MKL_INT* n, const double* d, const double* l,
              const double* ld, const MKL_INT* clstrt, const MKL_INT* clend,
              const double* w, double* wgap, const double* werr,
              const double* spdiam, const double* clgapl, double* clgapr,
              const double* pivmin, double* sigma, double* dplus,
              double* lplus, double* work, MKL_INT* info );
void dlarrf( const MKL_INT* n, const double* d, const double* l,
             const double* ld, const MKL_INT* clstrt, const MKL_INT* clend,
             const double* w, double* wgap, const double* werr,
             const double* spdiam, const double* clgapl, double* clgapr,
             const double* pivmin, double* sigma, double* dplus, double* lplus,
             double* work, MKL_INT* info );
void dlarrf_( const MKL_INT* n, const double* d, const double* l,
              const double* ld, const MKL_INT* clstrt, const MKL_INT* clend,
              const double* w, double* wgap, const double* werr,
              const double* spdiam, const double* clgapl, double* clgapr,
              const double* pivmin, double* sigma, double* dplus,
              double* lplus, double* work, MKL_INT* info );

void DLARRJ( const MKL_INT* n, const double* d, const double* e2,
             const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol,
             const MKL_INT* offset, double* w, double* werr, double* work,
             MKL_INT* iwork, const double* pivmin, const double* spdiam,
             MKL_INT* info );
void DLARRJ_( const MKL_INT* n, const double* d, const double* e2,
              const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol,
              const MKL_INT* offset, double* w, double* werr, double* work,
              MKL_INT* iwork, const double* pivmin, const double* spdiam,
              MKL_INT* info );
void dlarrj( const MKL_INT* n, const double* d, const double* e2,
             const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol,
             const MKL_INT* offset, double* w, double* werr, double* work,
             MKL_INT* iwork, const double* pivmin, const double* spdiam,
             MKL_INT* info );
void dlarrj_( const MKL_INT* n, const double* d, const double* e2,
              const MKL_INT* ifirst, const MKL_INT* ilast, const double* rtol,
              const MKL_INT* offset, double* w, double* werr, double* work,
              MKL_INT* iwork, const double* pivmin, const double* spdiam,
              MKL_INT* info );

void DLARRK( const MKL_INT* n, const MKL_INT* iw, const double* gl,
             const double* gu, const double* d, const double* e2,
             const double* pivmin, const double* reltol, double* w,
             double* werr, MKL_INT* info );
void DLARRK_( const MKL_INT* n, const MKL_INT* iw, const double* gl,
              const double* gu, const double* d, const double* e2,
              const double* pivmin, const double* reltol, double* w,
              double* werr, MKL_INT* info );
void dlarrk( const MKL_INT* n, const MKL_INT* iw, const double* gl,
             const double* gu, const double* d, const double* e2,
             const double* pivmin, const double* reltol, double* w,
             double* werr, MKL_INT* info );
void dlarrk_( const MKL_INT* n, const MKL_INT* iw, const double* gl,
              const double* gu, const double* d, const double* e2,
              const double* pivmin, const double* reltol, double* w,
              double* werr, MKL_INT* info );

void DLARRR( const MKL_INT* n, const double* d, double* e, MKL_INT* info );
void DLARRR_( const MKL_INT* n, const double* d, double* e, MKL_INT* info );
void dlarrr( const MKL_INT* n, const double* d, double* e, MKL_INT* info );
void dlarrr_( const MKL_INT* n, const double* d, double* e, MKL_INT* info );

void DLARRV( const MKL_INT* n, const double* vl, const double* vu, double* d,
             double* l, double* pivmin, const MKL_INT* isplit,
             const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
             const double* minrgp, const double* rtol1, const double* rtol2,
             double* w, double* werr, double* wgap, const MKL_INT* iblock,
             const MKL_INT* indexw, const double* gers, double* z,
             const MKL_INT* ldz, MKL_INT* isuppz, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DLARRV_( const MKL_INT* n, const double* vl, const double* vu, double* d,
              double* l, double* pivmin, const MKL_INT* isplit,
              const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
              const double* minrgp, const double* rtol1, const double* rtol2,
              double* w, double* werr, double* wgap, const MKL_INT* iblock,
              const MKL_INT* indexw, const double* gers, double* z,
              const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dlarrv( const MKL_INT* n, const double* vl, const double* vu, double* d,
             double* l, double* pivmin, const MKL_INT* isplit,
             const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
             const double* minrgp, const double* rtol1, const double* rtol2,
             double* w, double* werr, double* wgap, const MKL_INT* iblock,
             const MKL_INT* indexw, const double* gers, double* z,
             const MKL_INT* ldz, MKL_INT* isuppz, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dlarrv_( const MKL_INT* n, const double* vl, const double* vu, double* d,
              double* l, double* pivmin, const MKL_INT* isplit,
              const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
              const double* minrgp, const double* rtol1, const double* rtol2,
              double* w, double* werr, double* wgap, const MKL_INT* iblock,
              const MKL_INT* indexw, const double* gers, double* z,
              const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DLARSCL2( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
               const MKL_INT* ldx );
void DLARSCL2_( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
                const MKL_INT* ldx );
void dlarscl2( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
               const MKL_INT* ldx );
void dlarscl2_( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
                const MKL_INT* ldx );

void DLARTG( const double* f, const double* g, double* cs, double* sn,
             double* r );
void DLARTG_( const double* f, const double* g, double* cs, double* sn,
              double* r );
void dlartg( const double* f, const double* g, double* cs, double* sn,
             double* r );
void dlartg_( const double* f, const double* g, double* cs, double* sn,
              double* r );

void DLARTV( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
             const MKL_INT* incy, const double* c, const double* s,
             const MKL_INT* incc );
void DLARTV_( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
              const MKL_INT* incy, const double* c, const double* s,
              const MKL_INT* incc );
void dlartv( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
             const MKL_INT* incy, const double* c, const double* s,
             const MKL_INT* incc );
void dlartv_( const MKL_INT* n, double* x, const MKL_INT* incx, double* y,
              const MKL_INT* incy, const double* c, const double* s,
              const MKL_INT* incc );

void DLARUV( MKL_INT* iseed, const MKL_INT* n, double* x );
void DLARUV_( MKL_INT* iseed, const MKL_INT* n, double* x );
void dlaruv( MKL_INT* iseed, const MKL_INT* n, double* x );
void dlaruv_( MKL_INT* iseed, const MKL_INT* n, double* x );

void DLARZB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const double* v,
             const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
             double* c, const MKL_INT* ldc, double* work,
             const MKL_INT* ldwork );
void DLARZB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const double* v,
              const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* ldwork );
void dlarzb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const double* v,
             const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
             double* c, const MKL_INT* ldc, double* work,
             const MKL_INT* ldwork );
void dlarzb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const double* v,
              const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* ldwork );

void DLARZ( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const double* v, const MKL_INT* incv,
            const double* tau, double* c, const MKL_INT* ldc, double* work );
void DLARZ_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const double* v, const MKL_INT* incv,
             const double* tau, double* c, const MKL_INT* ldc, double* work );
void dlarz( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const double* v, const MKL_INT* incv,
            const double* tau, double* c, const MKL_INT* ldc, double* work );
void dlarz_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const double* v, const MKL_INT* incv,
             const double* tau, double* c, const MKL_INT* ldc, double* work );

void DLARZT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, double* v, const MKL_INT* ldv,
             const double* tau, double* t, const MKL_INT* ldt );
void DLARZT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, double* v, const MKL_INT* ldv,
              const double* tau, double* t, const MKL_INT* ldt );
void dlarzt( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, double* v, const MKL_INT* ldv,
             const double* tau, double* t, const MKL_INT* ldt );
void dlarzt_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, double* v, const MKL_INT* ldv,
              const double* tau, double* t, const MKL_INT* ldt );

void DLAS2( const double* f, const double* g, const double* h, double* ssmin,
            double* ssmax );
void DLAS2_( const double* f, const double* g, const double* h, double* ssmin,
             double* ssmax );
void dlas2( const double* f, const double* g, const double* h, double* ssmin,
            double* ssmax );
void dlas2_( const double* f, const double* g, const double* h, double* ssmin,
             double* ssmax );

void DLASCL( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const double* cfrom, const double* cto, const MKL_INT* m,
             const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* info );
void DLASCL_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const double* cfrom, const double* cto, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* info );
void dlascl( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const double* cfrom, const double* cto, const MKL_INT* m,
             const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* info );
void dlascl_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const double* cfrom, const double* cto, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda, MKL_INT* info );

void DLASCL2( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
              const MKL_INT* ldx );
void DLASCL2_( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
               const MKL_INT* ldx );
void dlascl2( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
              const MKL_INT* ldx );
void dlascl2_( const MKL_INT* m, const MKL_INT* n, const double* d, double* x,
               const MKL_INT* ldx );

void DLASD0( const MKL_INT* n, const MKL_INT* sqre, double* d, const double* e,
             double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
             const MKL_INT* smlsiz, MKL_INT* iwork, double* work,
             MKL_INT* info );
void DLASD0_( const MKL_INT* n, const MKL_INT* sqre, double* d,
              const double* e, double* u, const MKL_INT* ldu, double* vt,
              const MKL_INT* ldvt, const MKL_INT* smlsiz, MKL_INT* iwork,
              double* work, MKL_INT* info );
void dlasd0( const MKL_INT* n, const MKL_INT* sqre, double* d, const double* e,
             double* u, const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
             const MKL_INT* smlsiz, MKL_INT* iwork, double* work,
             MKL_INT* info );
void dlasd0_( const MKL_INT* n, const MKL_INT* sqre, double* d,
              const double* e, double* u, const MKL_INT* ldu, double* vt,
              const MKL_INT* ldvt, const MKL_INT* smlsiz, MKL_INT* iwork,
              double* work, MKL_INT* info );

void DLASD1( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             double* d, double* alpha, double* beta, double* u,
             const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
             MKL_INT* idxq, MKL_INT* iwork, double* work, MKL_INT* info );
void DLASD1_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              double* d, double* alpha, double* beta, double* u,
              const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
              MKL_INT* idxq, MKL_INT* iwork, double* work, MKL_INT* info );
void dlasd1( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             double* d, double* alpha, double* beta, double* u,
             const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
             MKL_INT* idxq, MKL_INT* iwork, double* work, MKL_INT* info );
void dlasd1_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              double* d, double* alpha, double* beta, double* u,
              const MKL_INT* ldu, double* vt, const MKL_INT* ldvt,
              MKL_INT* idxq, MKL_INT* iwork, double* work, MKL_INT* info );

void DLASD2( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             MKL_INT* k, double* d, double* z, const double* alpha,
             const double* beta, double* u, const MKL_INT* ldu, double* vt,
             const MKL_INT* ldvt, double* dsigma, double* u2,
             const MKL_INT* ldu2, double* vt2, const MKL_INT* ldvt2,
             MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
             MKL_INT* coltyp, MKL_INT* info );
void DLASD2_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              MKL_INT* k, double* d, double* z, const double* alpha,
              const double* beta, double* u, const MKL_INT* ldu, double* vt,
              const MKL_INT* ldvt, double* dsigma, double* u2,
              const MKL_INT* ldu2, double* vt2, const MKL_INT* ldvt2,
              MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
              MKL_INT* coltyp, MKL_INT* info );
void dlasd2( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             MKL_INT* k, double* d, double* z, const double* alpha,
             const double* beta, double* u, const MKL_INT* ldu, double* vt,
             const MKL_INT* ldvt, double* dsigma, double* u2,
             const MKL_INT* ldu2, double* vt2, const MKL_INT* ldvt2,
             MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
             MKL_INT* coltyp, MKL_INT* info );
void dlasd2_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              MKL_INT* k, double* d, double* z, const double* alpha,
              const double* beta, double* u, const MKL_INT* ldu, double* vt,
              const MKL_INT* ldvt, double* dsigma, double* u2,
              const MKL_INT* ldu2, double* vt2, const MKL_INT* ldvt2,
              MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
              MKL_INT* coltyp, MKL_INT* info );

void DLASD3( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             const MKL_INT* k, double* d, double* q, const MKL_INT* ldq,
             const double* dsigma, double* u, const MKL_INT* ldu, double* u2,
             const MKL_INT* ldu2, double* vt, const MKL_INT* ldvt, double* vt2,
             const MKL_INT* ldvt2, const MKL_INT* idxc, const MKL_INT* ctot,
             const double* z, MKL_INT* info );
void DLASD3_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              const MKL_INT* k, double* d, double* q, const MKL_INT* ldq,
              const double* dsigma, double* u, const MKL_INT* ldu, double* u2,
              const MKL_INT* ldu2, double* vt, const MKL_INT* ldvt,
              double* vt2, const MKL_INT* ldvt2, const MKL_INT* idxc,
              const MKL_INT* ctot, const double* z, MKL_INT* info );
void dlasd3( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             const MKL_INT* k, double* d, double* q, const MKL_INT* ldq,
             const double* dsigma, double* u, const MKL_INT* ldu, double* u2,
             const MKL_INT* ldu2, double* vt, const MKL_INT* ldvt, double* vt2,
             const MKL_INT* ldvt2, const MKL_INT* idxc, const MKL_INT* ctot,
             const double* z, MKL_INT* info );
void dlasd3_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              const MKL_INT* k, double* d, double* q, const MKL_INT* ldq,
              const double* dsigma, double* u, const MKL_INT* ldu, double* u2,
              const MKL_INT* ldu2, double* vt, const MKL_INT* ldvt,
              double* vt2, const MKL_INT* ldvt2, const MKL_INT* idxc,
              const MKL_INT* ctot, const double* z, MKL_INT* info );

void DLASD4( const MKL_INT* n, const MKL_INT* i, const double* d,
             const double* z, double* delta, const double* rho, double* sigma,
             double* work, MKL_INT* info );
void DLASD4_( const MKL_INT* n, const MKL_INT* i, const double* d,
              const double* z, double* delta, const double* rho, double* sigma,
              double* work, MKL_INT* info );
void dlasd4( const MKL_INT* n, const MKL_INT* i, const double* d,
             const double* z, double* delta, const double* rho, double* sigma,
             double* work, MKL_INT* info );
void dlasd4_( const MKL_INT* n, const MKL_INT* i, const double* d,
              const double* z, double* delta, const double* rho, double* sigma,
              double* work, MKL_INT* info );

void DLASD5( const MKL_INT* i, const double* d, const double* z, double* delta,
             const double* rho, double* dsigma, double* work );
void DLASD5_( const MKL_INT* i, const double* d, const double* z,
              double* delta, const double* rho, double* dsigma, double* work );
void dlasd5( const MKL_INT* i, const double* d, const double* z, double* delta,
             const double* rho, double* dsigma, double* work );
void dlasd5_( const MKL_INT* i, const double* d, const double* z,
              double* delta, const double* rho, double* dsigma, double* work );

void DLASD6( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, double* d, double* vf, double* vl,
             double* alpha, double* beta, MKL_INT* idxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
             double* givnum, const MKL_INT* ldgnum, double* poles,
             double* difl, double* difr, double* z, MKL_INT* k, double* c,
             double* s, double* work, MKL_INT* iwork, MKL_INT* info );
void DLASD6_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, double* d, double* vf, double* vl,
              double* alpha, double* beta, MKL_INT* idxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
              double* givnum, const MKL_INT* ldgnum, double* poles,
              double* difl, double* difr, double* z, MKL_INT* k, double* c,
              double* s, double* work, MKL_INT* iwork, MKL_INT* info );
void dlasd6( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, double* d, double* vf, double* vl,
             double* alpha, double* beta, MKL_INT* idxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
             double* givnum, const MKL_INT* ldgnum, double* poles,
             double* difl, double* difr, double* z, MKL_INT* k, double* c,
             double* s, double* work, MKL_INT* iwork, MKL_INT* info );
void dlasd6_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, double* d, double* vf, double* vl,
              double* alpha, double* beta, MKL_INT* idxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
              double* givnum, const MKL_INT* ldgnum, double* poles,
              double* difl, double* difr, double* z, MKL_INT* k, double* c,
              double* s, double* work, MKL_INT* iwork, MKL_INT* info );

void DLASD7( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, MKL_INT* k, double* d, double* z, double* zw,
             double* vf, double* vfw, double* vl, double* vlw,
             const double* alpha, const double* beta, double* dsigma,
             MKL_INT* idx, MKL_INT* idxp, const MKL_INT* idxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
             double* givnum, const MKL_INT* ldgnum, double* c, double* s,
             MKL_INT* info );
void DLASD7_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, MKL_INT* k, double* d, double* z,
              double* zw, double* vf, double* vfw, double* vl, double* vlw,
              const double* alpha, const double* beta, double* dsigma,
              MKL_INT* idx, MKL_INT* idxp, const MKL_INT* idxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
              double* givnum, const MKL_INT* ldgnum, double* c, double* s,
              MKL_INT* info );
void dlasd7( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, MKL_INT* k, double* d, double* z, double* zw,
             double* vf, double* vfw, double* vl, double* vlw,
             const double* alpha, const double* beta, double* dsigma,
             MKL_INT* idx, MKL_INT* idxp, const MKL_INT* idxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
             double* givnum, const MKL_INT* ldgnum, double* c, double* s,
             MKL_INT* info );
void dlasd7_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, MKL_INT* k, double* d, double* z,
              double* zw, double* vf, double* vfw, double* vl, double* vlw,
              const double* alpha, const double* beta, double* dsigma,
              MKL_INT* idx, MKL_INT* idxp, const MKL_INT* idxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
              double* givnum, const MKL_INT* ldgnum, double* c, double* s,
              MKL_INT* info );

void DLASD8( const MKL_INT* icompq, const MKL_INT* k, double* d, double* z,
             double* vf, double* vl, double* difl, double* difr,
             const MKL_INT* lddifr, double* dsigma, double* work,
             MKL_INT* info );
void DLASD8_( const MKL_INT* icompq, const MKL_INT* k, double* d, double* z,
              double* vf, double* vl, double* difl, double* difr,
              const MKL_INT* lddifr, double* dsigma, double* work,
              MKL_INT* info );
void dlasd8( const MKL_INT* icompq, const MKL_INT* k, double* d, double* z,
             double* vf, double* vl, double* difl, double* difr,
             const MKL_INT* lddifr, double* dsigma, double* work,
             MKL_INT* info );
void dlasd8_( const MKL_INT* icompq, const MKL_INT* k, double* d, double* z,
              double* vf, double* vl, double* difl, double* difr,
              const MKL_INT* lddifr, double* dsigma, double* work,
              MKL_INT* info );

void DLASDA( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* sqre, double* d, const double* e, double* u,
             const MKL_INT* ldu, double* vt, MKL_INT* k, double* difl,
             double* difr, double* z, double* poles, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
             double* givnum, double* c, double* s, double* work,
             MKL_INT* iwork, MKL_INT* info );
void DLASDA_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* sqre, double* d, const double* e, double* u,
              const MKL_INT* ldu, double* vt, MKL_INT* k, double* difl,
              double* difr, double* z, double* poles, MKL_INT* givptr,
              MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
              double* givnum, double* c, double* s, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dlasda( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* sqre, double* d, const double* e, double* u,
             const MKL_INT* ldu, double* vt, MKL_INT* k, double* difl,
             double* difr, double* z, double* poles, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
             double* givnum, double* c, double* s, double* work,
             MKL_INT* iwork, MKL_INT* info );
void dlasda_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* sqre, double* d, const double* e, double* u,
              const MKL_INT* ldu, double* vt, MKL_INT* k, double* difl,
              double* difr, double* z, double* poles, MKL_INT* givptr,
              MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
              double* givnum, double* c, double* s, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DLASDQ( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
             const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
             double* d, double* e, double* vt, const MKL_INT* ldvt, double* u,
             const MKL_INT* ldu, double* c, const MKL_INT* ldc, double* work,
             MKL_INT* info );
void DLASDQ_( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
              const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
              double* d, double* e, double* vt, const MKL_INT* ldvt, double* u,
              const MKL_INT* ldu, double* c, const MKL_INT* ldc, double* work,
              MKL_INT* info );
void dlasdq( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
             const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
             double* d, double* e, double* vt, const MKL_INT* ldvt, double* u,
             const MKL_INT* ldu, double* c, const MKL_INT* ldc, double* work,
             MKL_INT* info );
void dlasdq_( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
              const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
              double* d, double* e, double* vt, const MKL_INT* ldvt, double* u,
              const MKL_INT* ldu, double* c, const MKL_INT* ldc, double* work,
              MKL_INT* info );

void DLASDT( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
             MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );
void DLASDT_( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
              MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );
void dlasdt( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
             MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );
void dlasdt_( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
              MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );

void DLASET( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const double* alpha, const double* beta, double* a,
             const MKL_INT* lda );
void DLASET_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const double* alpha, const double* beta, double* a,
              const MKL_INT* lda );
void dlaset( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const double* alpha, const double* beta, double* a,
             const MKL_INT* lda );
void dlaset_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const double* alpha, const double* beta, double* a,
              const MKL_INT* lda );

void DLASQ1( const MKL_INT* n, double* d, double* e, double* work,
             MKL_INT* info );
void DLASQ1_( const MKL_INT* n, double* d, double* e, double* work,
              MKL_INT* info );
void dlasq1( const MKL_INT* n, double* d, double* e, double* work,
             MKL_INT* info );
void dlasq1_( const MKL_INT* n, double* d, double* e, double* work,
              MKL_INT* info );

void DLASQ2( const MKL_INT* n, double* z, MKL_INT* info );
void DLASQ2_( const MKL_INT* n, double* z, MKL_INT* info );
void dlasq2( const MKL_INT* n, double* z, MKL_INT* info );
void dlasq2_( const MKL_INT* n, double* z, MKL_INT* info );

void DLASQ3( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             MKL_INT* pp, double* dmin, double* sigma, double* desig,
             const double* qmax, MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv,
             const MKL_INT* ieee, MKL_INT* ttype, double* dmin1, double* dmin2,
             double* dn, double* dn1, double* dn2, double* g, double* tau );
void DLASQ3_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              MKL_INT* pp, double* dmin, double* sigma, double* desig,
              const double* qmax, MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv,
              const MKL_INT* ieee, MKL_INT* ttype, double* dmin1,
              double* dmin2, double* dn, double* dn1, double* dn2, double* g,
              double* tau );
void dlasq3( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             MKL_INT* pp, double* dmin, double* sigma, double* desig,
             const double* qmax, MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv,
             const MKL_INT* ieee, MKL_INT* ttype, double* dmin1, double* dmin2,
             double* dn, double* dn1, double* dn2, double* g, double* tau );
void dlasq3_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              MKL_INT* pp, double* dmin, double* sigma, double* desig,
              const double* qmax, MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv,
              const MKL_INT* ieee, MKL_INT* ttype, double* dmin1,
              double* dmin2, double* dn, double* dn1, double* dn2, double* g,
              double* tau );

void DLASQ4( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             const MKL_INT* pp, MKL_INT* n0in, const double* dmin,
             const double* dmin1, const double* dmin2, const double* dn,
             const double* dn1, const double* dn2, double* tau, MKL_INT* ttype,
             double* g );
void DLASQ4_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              const MKL_INT* pp, MKL_INT* n0in, const double* dmin,
              const double* dmin1, const double* dmin2, const double* dn,
              const double* dn1, const double* dn2, double* tau,
              MKL_INT* ttype, double* g );
void dlasq4( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             const MKL_INT* pp, MKL_INT* n0in, const double* dmin,
             const double* dmin1, const double* dmin2, const double* dn,
             const double* dn1, const double* dn2, double* tau, MKL_INT* ttype,
             double* g );
void dlasq4_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              const MKL_INT* pp, MKL_INT* n0in, const double* dmin,
              const double* dmin1, const double* dmin2, const double* dn,
              const double* dn1, const double* dn2, double* tau,
              MKL_INT* ttype, double* g );

void DLASQ5( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             const MKL_INT* pp, const double* tau, const double* sigma,
             double* dmin, double* dmin1, double* dmin2, double* dn,
             double* dnm1, double* dnm2, const MKL_INT* ieee,
             const double* eps);
void DLASQ5_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              const MKL_INT* pp, const double* tau, const double* sigma,
              double* dmin, double* dmin1, double* dmin2, double* dn,
              double* dnm1, double* dnm2, const MKL_INT* ieee,
              const double* eps);
void dlasq5( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             const MKL_INT* pp, const double* tau, const double* sigma,
             double* dmin, double* dmin1, double* dmin2, double* dn,
             double* dnm1, double* dnm2, const MKL_INT* ieee,
             const double* eps);
void dlasq5_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              const MKL_INT* pp, const double* tau, const double* sigma,
              double* dmin, double* dmin1, double* dmin2, double* dn,
              double* dnm1, double* dnm2, const MKL_INT* ieee,
              const double* eps);

void DLASQ6( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             const MKL_INT* pp, double* dmin, double* dmin1, double* dmin2,
             double* dn, double* dnm1, double* dnm2 );
void DLASQ6_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              const MKL_INT* pp, double* dmin, double* dmin1, double* dmin2,
              double* dn, double* dnm1, double* dnm2 );
void dlasq6( const MKL_INT* i0, const MKL_INT* n0, const double* z,
             const MKL_INT* pp, double* dmin, double* dmin1, double* dmin2,
             double* dn, double* dnm1, double* dnm2 );
void dlasq6_( const MKL_INT* i0, const MKL_INT* n0, const double* z,
              const MKL_INT* pp, double* dmin, double* dmin1, double* dmin2,
              double* dn, double* dnm1, double* dnm2 );

void DLASR( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const double* c,
            const double* s, double* a, const MKL_INT* lda );
void DLASR_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const double* c,
             const double* s, double* a, const MKL_INT* lda );
void dlasr( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const double* c,
            const double* s, double* a, const MKL_INT* lda );
void dlasr_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const double* c,
             const double* s, double* a, const MKL_INT* lda );

void DLASRT( const char* id, const MKL_INT* n, double* d, MKL_INT* info );
void DLASRT_( const char* id, const MKL_INT* n, double* d, MKL_INT* info );
void dlasrt( const char* id, const MKL_INT* n, double* d, MKL_INT* info );
void dlasrt_( const char* id, const MKL_INT* n, double* d, MKL_INT* info );

void DLASSQ( const MKL_INT* n, const double* x, const MKL_INT* incx,
             double* scale, double* sumsq );
void DLASSQ_( const MKL_INT* n, const double* x, const MKL_INT* incx,
              double* scale, double* sumsq );
void dlassq( const MKL_INT* n, const double* x, const MKL_INT* incx,
             double* scale, double* sumsq );
void dlassq_( const MKL_INT* n, const double* x, const MKL_INT* incx,
              double* scale, double* sumsq );

void DLASV2( const double* f, const double* g, const double* h, double* ssmin,
             double* ssmax, double* snr, double* csr, double* snl,
             double* csl );
void DLASV2_( const double* f, const double* g, const double* h, double* ssmin,
              double* ssmax, double* snr, double* csr, double* snl,
              double* csl );
void dlasv2( const double* f, const double* g, const double* h, double* ssmin,
             double* ssmax, double* snr, double* csr, double* snl,
             double* csl );
void dlasv2_( const double* f, const double* g, const double* h, double* ssmin,
              double* ssmax, double* snr, double* csr, double* snl,
              double* csl );

void DLASWP( const MKL_INT* n, double* a, const MKL_INT* lda,
             const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
             const MKL_INT* incx );
void DLASWP_( const MKL_INT* n, double* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );
void dlaswp( const MKL_INT* n, double* a, const MKL_INT* lda,
             const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
             const MKL_INT* incx );
void dlaswp_( const MKL_INT* n, double* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );

void DLASY2( const MKL_INT* ltranl, const MKL_INT* ltranr, const MKL_INT* isgn,
             const MKL_INT* n1, const MKL_INT* n2, const double* tl,
             const MKL_INT* ldtl, const double* tr, const MKL_INT* ldtr,
             const double* b, const MKL_INT* ldb, double* scale, double* x,
             const MKL_INT* ldx, double* xnorm, MKL_INT* info );
void DLASY2_( const MKL_INT* ltranl, const MKL_INT* ltranr,
              const MKL_INT* isgn, const MKL_INT* n1, const MKL_INT* n2,
              const double* tl, const MKL_INT* ldtl, const double* tr,
              const MKL_INT* ldtr, const double* b, const MKL_INT* ldb,
              double* scale, double* x, const MKL_INT* ldx, double* xnorm,
              MKL_INT* info );
void dlasy2( const MKL_INT* ltranl, const MKL_INT* ltranr, const MKL_INT* isgn,
             const MKL_INT* n1, const MKL_INT* n2, const double* tl,
             const MKL_INT* ldtl, const double* tr, const MKL_INT* ldtr,
             const double* b, const MKL_INT* ldb, double* scale, double* x,
             const MKL_INT* ldx, double* xnorm, MKL_INT* info );
void dlasy2_( const MKL_INT* ltranl, const MKL_INT* ltranr,
              const MKL_INT* isgn, const MKL_INT* n1, const MKL_INT* n2,
              const double* tl, const MKL_INT* ldtl, const double* tr,
              const MKL_INT* ldtr, const double* b, const MKL_INT* ldb,
              double* scale, double* x, const MKL_INT* ldx, double* xnorm,
              MKL_INT* info );

void DLASYF( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
             double* w, const MKL_INT* ldw, MKL_INT* info );
void DLASYF_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
              double* w, const MKL_INT* ldw, MKL_INT* info );
void dlasyf( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
             double* w, const MKL_INT* ldw, MKL_INT* info );
void dlasyf_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, double* a, const MKL_INT* lda, MKL_INT* ipiv,
              double* w, const MKL_INT* ldw, MKL_INT* info );

void DLAT2S( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void DLAT2S_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
              MKL_INT* info );
void dlat2s( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void dlat2s_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, float* sa, const MKL_INT* ldsa,
              MKL_INT* info );

void DLATBS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const double* ab, const MKL_INT* ldab, double* x, double* scale,
             double* cnorm, MKL_INT* info );
void DLATBS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const double* ab, const MKL_INT* ldab, double* x, double* scale,
              double* cnorm, MKL_INT* info );
void dlatbs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const double* ab, const MKL_INT* ldab, double* x, double* scale,
             double* cnorm, MKL_INT* info );
void dlatbs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const double* ab, const MKL_INT* ldab, double* x, double* scale,
              double* cnorm, MKL_INT* info );

void DLATDF( const MKL_INT* ijob, const MKL_INT* n, const double* z,
             const MKL_INT* ldz, double* rhs, double* rdsum, double* rdscal,
             const MKL_INT* ipiv, const MKL_INT* jpiv );
void DLATDF_( const MKL_INT* ijob, const MKL_INT* n, const double* z,
              const MKL_INT* ldz, double* rhs, double* rdsum, double* rdscal,
              const MKL_INT* ipiv, const MKL_INT* jpiv );
void dlatdf( const MKL_INT* ijob, const MKL_INT* n, const double* z,
             const MKL_INT* ldz, double* rhs, double* rdsum, double* rdscal,
             const MKL_INT* ipiv, const MKL_INT* jpiv );
void dlatdf_( const MKL_INT* ijob, const MKL_INT* n, const double* z,
              const MKL_INT* ldz, double* rhs, double* rdsum, double* rdscal,
              const MKL_INT* ipiv, const MKL_INT* jpiv );

void DLATPS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const double* ap, double* x,
             double* scale, double* cnorm, MKL_INT* info );
void DLATPS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const double* ap,
              double* x, double* scale, double* cnorm, MKL_INT* info );
void dlatps( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const double* ap, double* x,
             double* scale, double* cnorm, MKL_INT* info );
void dlatps_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const double* ap,
              double* x, double* scale, double* cnorm, MKL_INT* info );

void DLATRD( const char* uplo, const MKL_INT* n, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* e, double* tau, double* w,
             const MKL_INT* ldw );
void DLATRD_( const char* uplo, const MKL_INT* n, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* e, double* tau, double* w,
              const MKL_INT* ldw );
void dlatrd( const char* uplo, const MKL_INT* n, const MKL_INT* nb, double* a,
             const MKL_INT* lda, double* e, double* tau, double* w,
             const MKL_INT* ldw );
void dlatrd_( const char* uplo, const MKL_INT* n, const MKL_INT* nb, double* a,
              const MKL_INT* lda, double* e, double* tau, double* w,
              const MKL_INT* ldw );

void DLATRS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const double* a,
             const MKL_INT* lda, double* x, double* scale, double* cnorm,
             MKL_INT* info );
void DLATRS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* x, double* scale, double* cnorm,
              MKL_INT* info );
void dlatrs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const double* a,
             const MKL_INT* lda, double* x, double* scale, double* cnorm,
             MKL_INT* info );
void dlatrs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* x, double* scale, double* cnorm,
              MKL_INT* info );

void DLATRZ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
             const MKL_INT* lda, double* tau, double* work );
void DLATRZ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
              const MKL_INT* lda, double* tau, double* work );
void dlatrz( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
             const MKL_INT* lda, double* tau, double* work );
void dlatrz_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, double* a,
              const MKL_INT* lda, double* tau, double* work );

void DLATZM( const char* side, const MKL_INT* m, const MKL_INT* n,
             const double* v, const MKL_INT* incv, const double* tau,
             double* c1, double* c2, const MKL_INT* ldc, double* work );
void DLATZM_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const double* v, const MKL_INT* incv, const double* tau,
              double* c1, double* c2, const MKL_INT* ldc, double* work );
void dlatzm( const char* side, const MKL_INT* m, const MKL_INT* n,
             const double* v, const MKL_INT* incv, const double* tau,
             double* c1, double* c2, const MKL_INT* ldc, double* work );
void dlatzm_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const double* v, const MKL_INT* incv, const double* tau,
              double* c1, double* c2, const MKL_INT* ldc, double* work );

void DLAUU2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void DLAUU2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dlauu2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void dlauu2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DLAUUM( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void DLAUUM_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dlauum( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void dlauum_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DOPGTR( const char* uplo, const MKL_INT* n, const double* ap,
             const double* tau, double* q, const MKL_INT* ldq, double* work,
             MKL_INT* info );
void DOPGTR_( const char* uplo, const MKL_INT* n, const double* ap,
              const double* tau, double* q, const MKL_INT* ldq, double* work,
              MKL_INT* info );
void dopgtr( const char* uplo, const MKL_INT* n, const double* ap,
             const double* tau, double* q, const MKL_INT* ldq, double* work,
             MKL_INT* info );
void dopgtr_( const char* uplo, const MKL_INT* n, const double* ap,
              const double* tau, double* q, const MKL_INT* ldq, double* work,
              MKL_INT* info );

void DOPMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const double* ap,
             const double* tau, double* c, const MKL_INT* ldc, double* work,
             MKL_INT* info );
void DOPMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const double* ap,
              const double* tau, double* c, const MKL_INT* ldc, double* work,
              MKL_INT* info );
void dopmtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const double* ap,
             const double* tau, double* c, const MKL_INT* ldc, double* work,
             MKL_INT* info );
void dopmtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const double* ap,
              const double* tau, double* c, const MKL_INT* ldc, double* work,
              MKL_INT* info );

void DORG2L( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void DORG2L_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );
void dorg2l( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void dorg2l_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );

void DORG2R( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void DORG2R_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );
void dorg2r( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void dorg2r_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );

void DORGBR( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, double* a, const MKL_INT* lda,
             const double* tau, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORGBR_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, double* a, const MKL_INT* lda,
              const double* tau, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dorgbr( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, double* a, const MKL_INT* lda,
             const double* tau, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dorgbr_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, double* a, const MKL_INT* lda,
              const double* tau, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DORGHR( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* a, const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DORGHR_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* a, const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorghr( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             double* a, const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dorghr_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              double* a, const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORGL2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void DORGL2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );
void dorgl2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void dorgl2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );

void DORGLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DORGLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorglq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dorglq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORGQL( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DORGQL_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorgql( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dorgql_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORGQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DORGQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorgqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dorgqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORGR2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void DORGR2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );
void dorgr2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             MKL_INT* info );
void dorgr2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              MKL_INT* info );

void DORGRQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DORGRQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorgrq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
             const MKL_INT* lda, const double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dorgrq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORGTR( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             const double* tau, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORGTR_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dorgtr( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             const double* tau, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dorgtr_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORM2L( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void DORM2L_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );
void dorm2l( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void dorm2l_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );

void DORM2R( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void DORM2R_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );
void dorm2r( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void dorm2r_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );

void DORMBR( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMBR_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dormbr( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormbr_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORMHR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMHR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dormhr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormhr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORML2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void DORML2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );
void dorml2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void dorml2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );

void DORMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dormlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DORMQL( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMQL_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dormql( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormql_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DORMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dormqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DORMR2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void DORMR2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );
void dormr2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void dormr2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, MKL_INT* info );

void DORMR3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void DORMR3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work, MKL_INT* info );
void dormr3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, MKL_INT* info );
void dormr3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work, MKL_INT* info );

void DORMRQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMRQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dormrq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormrq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DORMRZ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMRZ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dormrz( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const double* a, const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormrz_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const double* a, const MKL_INT* lda, const double* tau,
              double* c, const MKL_INT* ldc, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DORMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DORMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dormtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* tau, double* c,
             const MKL_INT* ldc, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dormtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* tau, double* c,
              const MKL_INT* ldc, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DPBCON( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const double* ab, const MKL_INT* ldab, const double* anorm,
             double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void DPBCON_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const double* ab, const MKL_INT* ldab, const double* anorm,
              double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dpbcon( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const double* ab, const MKL_INT* ldab, const double* anorm,
             double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dpbcon_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const double* ab, const MKL_INT* ldab, const double* anorm,
              double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );

void DPBEQU( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const double* ab, const MKL_INT* ldab, double* s, double* scond,
             double* amax, MKL_INT* info );
void DPBEQU_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const double* ab, const MKL_INT* ldab, double* s, double* scond,
              double* amax, MKL_INT* info );
void dpbequ( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const double* ab, const MKL_INT* ldab, double* s, double* scond,
             double* amax, MKL_INT* info );
void dpbequ_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const double* ab, const MKL_INT* ldab, double* s, double* scond,
              double* amax, MKL_INT* info );

void DPBRFS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
             const double* afb, const MKL_INT* ldafb, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void DPBRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
              const double* afb, const MKL_INT* ldafb, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dpbrfs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
             const double* afb, const MKL_INT* ldafb, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dpbrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
              const double* afb, const MKL_INT* ldafb, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );

void DPBSTF( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, MKL_INT* info );
void DPBSTF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, MKL_INT* info );
void dpbstf( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, MKL_INT* info );
void dpbstf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, MKL_INT* info );

void DPBSV( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, double* ab, const MKL_INT* ldab, double* b,
            const MKL_INT* ldb, MKL_INT* info );
void DPBSV_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, double* ab, const MKL_INT* ldab, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dpbsv( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, double* ab, const MKL_INT* ldab, double* b,
            const MKL_INT* ldb, MKL_INT* info );
void dpbsv_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, double* ab, const MKL_INT* ldab, double* b,
             const MKL_INT* ldb, MKL_INT* info );

void DPBSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, double* ab,
             const MKL_INT* ldab, double* afb, const MKL_INT* ldafb,
             char* equed, double* s, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DPBSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, double* ab,
              const MKL_INT* ldab, double* afb, const MKL_INT* ldafb,
              char* equed, double* s, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dpbsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, double* ab,
             const MKL_INT* ldab, double* afb, const MKL_INT* ldafb,
             char* equed, double* s, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dpbsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, double* ab,
              const MKL_INT* ldab, double* afb, const MKL_INT* ldafb,
              char* equed, double* s, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DPBTF2( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, MKL_INT* info );
void DPBTF2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, MKL_INT* info );
void dpbtf2( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, MKL_INT* info );
void dpbtf2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, MKL_INT* info );

void DPBTRF( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, MKL_INT* info );
void DPBTRF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, MKL_INT* info );
void dpbtrf( const char* uplo, const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, MKL_INT* info );
void dpbtrf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              double* ab, const MKL_INT* ldab, MKL_INT* info );

void DPBTRS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void DPBTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
              double* b, const MKL_INT* ldb, MKL_INT* info );
void dpbtrs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void dpbtrs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const double* ab, const MKL_INT* ldab,
              double* b, const MKL_INT* ldb, MKL_INT* info );

void DPFTRF( const char* transr, const char* uplo, const MKL_INT* n, double* a,
             MKL_INT* info );
void DPFTRF_( const char* transr, const char* uplo, const MKL_INT* n,
              double* a, MKL_INT* info );
void dpftrf( const char* transr, const char* uplo, const MKL_INT* n, double* a,
             MKL_INT* info );
void dpftrf_( const char* transr, const char* uplo, const MKL_INT* n,
              double* a, MKL_INT* info );

void DPFTRI( const char* transr, const char* uplo, const MKL_INT* n, double* a,
             MKL_INT* info );
void DPFTRI_( const char* transr, const char* uplo, const MKL_INT* n,
              double* a, MKL_INT* info );
void dpftri( const char* transr, const char* uplo, const MKL_INT* n, double* a,
             MKL_INT* info );
void dpftri_( const char* transr, const char* uplo, const MKL_INT* n,
              double* a, MKL_INT* info );

void DPFTRS( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const double* a, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DPFTRS_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dpftrs( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const double* a, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dpftrs_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DPOCON( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DPOCON_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dpocon( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dpocon_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DPOEQUB( const MKL_INT* n, const double* a, const MKL_INT* lda, double* s,
              double* scond, double* amax, MKL_INT* info );
void DPOEQUB_( const MKL_INT* n, const double* a, const MKL_INT* lda,
               double* s, double* scond, double* amax, MKL_INT* info );
void dpoequb( const MKL_INT* n, const double* a, const MKL_INT* lda, double* s,
              double* scond, double* amax, MKL_INT* info );
void dpoequb_( const MKL_INT* n, const double* a, const MKL_INT* lda,
               double* s, double* scond, double* amax, MKL_INT* info );

void DPOEQU( const MKL_INT* n, const double* a, const MKL_INT* lda, double* s,
             double* scond, double* amax, MKL_INT* info );
void DPOEQU_( const MKL_INT* n, const double* a, const MKL_INT* lda, double* s,
              double* scond, double* amax, MKL_INT* info );
void dpoequ( const MKL_INT* n, const double* a, const MKL_INT* lda, double* s,
             double* scond, double* amax, MKL_INT* info );
void dpoequ_( const MKL_INT* n, const double* a, const MKL_INT* lda, double* s,
              double* scond, double* amax, MKL_INT* info );

void DPORFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const double* af,
             const MKL_INT* ldaf, const double* b, const MKL_INT* ldb,
             double* x, const MKL_INT* ldx, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DPORFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const double* af,
              const MKL_INT* ldaf, const double* b, const MKL_INT* ldb,
              double* x, const MKL_INT* ldx, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dporfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const double* af,
             const MKL_INT* ldaf, const double* b, const MKL_INT* ldb,
             double* x, const MKL_INT* ldx, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dporfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const double* af,
              const MKL_INT* ldaf, const double* b, const MKL_INT* ldb,
              double* x, const MKL_INT* ldx, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DPORFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              const double* af, const MKL_INT* ldaf, const double* s,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DPORFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
               const double* af, const MKL_INT* ldaf, const double* s,
               const double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dporfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              const double* af, const MKL_INT* ldaf, const double* s,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dporfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
               const double* af, const MKL_INT* ldaf, const double* s,
               const double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DPOSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, MKL_INT* info );
void DPOSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* info );
void dposv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, double* a,
            const MKL_INT* lda, double* b, const MKL_INT* ldb, MKL_INT* info );
void dposv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* info );

void DPOSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
             const MKL_INT* ldaf, char* equed, double* s, double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
             double* ferr, double* berr, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DPOSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, char* equed, double* s, double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dposvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
             const MKL_INT* ldaf, char* equed, double* s, double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
             double* ferr, double* berr, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dposvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, char* equed, double* s, double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DPOSVXX( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, char* equed, double* s, double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, double* work,
              MKL_INT* iwork, MKL_INT* info );
void DPOSVXX_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
               const MKL_INT* ldaf, char* equed, double* s, double* b,
               const MKL_INT* ldb, double* x, const MKL_INT* ldx,
               double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dposvxx( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, char* equed, double* s, double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dposvxx_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
               const MKL_INT* ldaf, char* equed, double* s, double* b,
               const MKL_INT* ldb, double* x, const MKL_INT* ldx,
               double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DPOTF2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void DPOTF2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dpotf2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void dpotf2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DPOTRF( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void DPOTRF_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dpotrf( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void dpotrf_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DPOTRI( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void DPOTRI_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dpotri( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* info );
void dpotri_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DPOTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DPOTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dpotrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dpotrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DPPCON( const char* uplo, const MKL_INT* n, const double* ap,
             const double* anorm, double* rcond, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DPPCON_( const char* uplo, const MKL_INT* n, const double* ap,
              const double* anorm, double* rcond, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dppcon( const char* uplo, const MKL_INT* n, const double* ap,
             const double* anorm, double* rcond, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dppcon_( const char* uplo, const MKL_INT* n, const double* ap,
              const double* anorm, double* rcond, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DPPEQU( const char* uplo, const MKL_INT* n, const double* ap, double* s,
             double* scond, double* amax, MKL_INT* info );
void DPPEQU_( const char* uplo, const MKL_INT* n, const double* ap, double* s,
              double* scond, double* amax, MKL_INT* info );
void dppequ( const char* uplo, const MKL_INT* n, const double* ap, double* s,
             double* scond, double* amax, MKL_INT* info );
void dppequ_( const char* uplo, const MKL_INT* n, const double* ap, double* s,
              double* scond, double* amax, MKL_INT* info );

void DPPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, const double* afp, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void DPPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, const double* afp, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dpprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, const double* afp, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dpprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, const double* afp, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );

void DPPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );
void DPPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );
void dppsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );
void dppsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );

void DPPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, double* ap, double* afp, char* equed,
             double* s, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DPPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* ap, double* afp, char* equed,
              double* s, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dppsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, double* ap, double* afp, char* equed,
             double* s, double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dppsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* ap, double* afp, char* equed,
              double* s, double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DPPTRF( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );
void DPPTRF_( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );
void dpptrf( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );
void dpptrf_( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );

void DPPTRI( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );
void DPPTRI_( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );
void dpptri( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );
void dpptri_( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* info );

void DPPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );
void DPPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );
void dpptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );
void dpptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, double* b, const MKL_INT* ldb, MKL_INT* info );

void DPSTF2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const double* tol, double* work,
             MKL_INT* info );
void DPSTF2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );
void dpstf2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const double* tol, double* work,
             MKL_INT* info );
void dpstf2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );

void DPSTRF( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const double* tol, double* work,
             MKL_INT* info );
void DPSTRF_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );
void dpstrf( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const double* tol, double* work,
             MKL_INT* info );
void dpstrf_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );

void DPTCON( const MKL_INT* n, const double* d, const double* e,
             const double* anorm, double* rcond, double* work, MKL_INT* info );
void DPTCON_( const MKL_INT* n, const double* d, const double* e,
              const double* anorm, double* rcond, double* work,
              MKL_INT* info );
void dptcon( const MKL_INT* n, const double* d, const double* e,
             const double* anorm, double* rcond, double* work, MKL_INT* info );
void dptcon_( const MKL_INT* n, const double* d, const double* e,
              const double* anorm, double* rcond, double* work,
              MKL_INT* info );

void DPTEQR( const char* compz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void DPTEQR_( const char* compz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dpteqr( const char* compz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dpteqr_( const char* compz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* info );

void DPTRFS( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
             const double* e, const double* df, const double* ef,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* ferr, double* berr, double* work,
             MKL_INT* info );
void DPTRFS_( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
              const double* e, const double* df, const double* ef,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* ferr, double* berr, double* work,
              MKL_INT* info );
void dptrfs( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
             const double* e, const double* df, const double* ef,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* ferr, double* berr, double* work,
             MKL_INT* info );
void dptrfs_( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
              const double* e, const double* df, const double* ef,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* ferr, double* berr, double* work,
              MKL_INT* info );

void DPTSV( const MKL_INT* n, const MKL_INT* nrhs, double* d, double* e,
            double* b, const MKL_INT* ldb, MKL_INT* info );
void DPTSV_( const MKL_INT* n, const MKL_INT* nrhs, double* d, double* e,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void dptsv( const MKL_INT* n, const MKL_INT* nrhs, double* d, double* e,
            double* b, const MKL_INT* ldb, MKL_INT* info );
void dptsv_( const MKL_INT* n, const MKL_INT* nrhs, double* d, double* e,
             double* b, const MKL_INT* ldb, MKL_INT* info );

void DPTSVX( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const double* e, double* df, double* ef,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* info );
void DPTSVX_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const double* e, double* df, double* ef,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* info );
void dptsvx( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const double* e, double* df, double* ef,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* info );
void dptsvx_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const double* e, double* df, double* ef,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* info );

void DPTTRF( const MKL_INT* n, double* d, double* e, MKL_INT* info );
void DPTTRF_( const MKL_INT* n, double* d, double* e, MKL_INT* info );
void dpttrf( const MKL_INT* n, double* d, double* e, MKL_INT* info );
void dpttrf_( const MKL_INT* n, double* d, double* e, MKL_INT* info );

void DPTTRS( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
             const double* e, double* b, const MKL_INT* ldb, MKL_INT* info );
void DPTTRS_( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
              const double* e, double* b, const MKL_INT* ldb, MKL_INT* info );
void dpttrs( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
             const double* e, double* b, const MKL_INT* ldb, MKL_INT* info );
void dpttrs_( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
              const double* e, double* b, const MKL_INT* ldb, MKL_INT* info );

void DPTTS2( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
             const double* e, double* b, const MKL_INT* ldb );
void DPTTS2_( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
              const double* e, double* b, const MKL_INT* ldb );
void dptts2( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
             const double* e, double* b, const MKL_INT* ldb );
void dptts2_( const MKL_INT* n, const MKL_INT* nrhs, const double* d,
              const double* e, double* b, const MKL_INT* ldb );

void DRSCL( const MKL_INT* n, const double* sa, double* sx,
            const MKL_INT* incx );
void DRSCL_( const MKL_INT* n, const double* sa, double* sx,
             const MKL_INT* incx );
void drscl( const MKL_INT* n, const double* sa, double* sx,
            const MKL_INT* incx );
void drscl_( const MKL_INT* n, const double* sa, double* sx,
             const MKL_INT* incx );

void DSBEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSBEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dsbevd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dsbevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSBEV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
            double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void DSBEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dsbev( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
            double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dsbev_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );

void DSBEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, double* q, const MKL_INT* ldq,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void DSBEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, double* ab,
              const MKL_INT* ldab, double* q, const MKL_INT* ldq,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void dsbevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, double* ab,
             const MKL_INT* ldab, double* q, const MKL_INT* ldq,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void dsbevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, double* ab,
              const MKL_INT* ldab, double* q, const MKL_INT* ldq,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void DSBGST( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, double* ab,
             const MKL_INT* ldab, const double* bb, const MKL_INT* ldbb,
             double* x, const MKL_INT* ldx, double* work, MKL_INT* info );
void DSBGST_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, double* ab,
              const MKL_INT* ldab, const double* bb, const MKL_INT* ldbb,
              double* x, const MKL_INT* ldx, double* work, MKL_INT* info );
void dsbgst( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, double* ab,
             const MKL_INT* ldab, const double* bb, const MKL_INT* ldbb,
             double* x, const MKL_INT* ldx, double* work, MKL_INT* info );
void dsbgst_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, double* ab,
              const MKL_INT* ldab, const double* bb, const MKL_INT* ldbb,
              double* x, const MKL_INT* ldx, double* work, MKL_INT* info );

void DSBGVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, double* ab,
             const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSBGVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, double* ab,
              const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dsbgvd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, double* ab,
             const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dsbgvd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, double* ab,
              const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSBGV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, double* ab,
            const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
            double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void DSBGV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, double* ab,
             const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dsbgv( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, double* ab,
            const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
            double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dsbgv_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, double* ab,
             const MKL_INT* ldab, double* bb, const MKL_INT* ldbb, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );

void DSBGVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
             double* ab, const MKL_INT* ldab, double* bb, const MKL_INT* ldbb,
             double* q, const MKL_INT* ldq, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void DSBGVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              double* ab, const MKL_INT* ldab, double* bb, const MKL_INT* ldbb,
              double* q, const MKL_INT* ldq, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu,
              const double* abstol, MKL_INT* m, double* w, double* z,
              const MKL_INT* ldz, double* work, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );
void dsbgvx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
             double* ab, const MKL_INT* ldab, double* bb, const MKL_INT* ldbb,
             double* q, const MKL_INT* ldq, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void dsbgvx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              double* ab, const MKL_INT* ldab, double* bb, const MKL_INT* ldbb,
              double* q, const MKL_INT* ldq, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu,
              const double* abstol, MKL_INT* m, double* w, double* z,
              const MKL_INT* ldz, double* work, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );

void DSBTRD( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* d,
             double* e, double* q, const MKL_INT* ldq, double* work,
             MKL_INT* info );
void DSBTRD_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* d,
              double* e, double* q, const MKL_INT* ldq, double* work,
              MKL_INT* info );
void dsbtrd( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* d,
             double* e, double* q, const MKL_INT* ldq, double* work,
             MKL_INT* info );
void dsbtrd_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, double* ab, const MKL_INT* ldab, double* d,
              double* e, double* q, const MKL_INT* ldq, double* work,
              MKL_INT* info );

double DSECND( void );
double DSECND_( void );
double dsecnd( void );
double dsecnd_( void );

void DSFRK( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const double* alpha,
            const double* a, const MKL_INT* lda, const double* beta,
            double* c );
void DSFRK_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const double* alpha,
             const double* a, const MKL_INT* lda, const double* beta,
             double* c );
void dsfrk( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const double* alpha,
            const double* a, const MKL_INT* lda, const double* beta,
            double* c );
void dsfrk_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const double* alpha,
             const double* a, const MKL_INT* lda, const double* beta,
             double* c );

void DSGESV( const MKL_INT* n, const MKL_INT* nrhs, double* a,
             const MKL_INT* lda, MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
             float* swork, MKL_INT* iter, MKL_INT* info );
void DSGESV_( const MKL_INT* n, const MKL_INT* nrhs, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
              float* swork, MKL_INT* iter, MKL_INT* info );
void dsgesv( const MKL_INT* n, const MKL_INT* nrhs, double* a,
             const MKL_INT* lda, MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
             float* swork, MKL_INT* iter, MKL_INT* info );
void dsgesv_( const MKL_INT* n, const MKL_INT* nrhs, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
              float* swork, MKL_INT* iter, MKL_INT* info );

void DSPCON( const char* uplo, const MKL_INT* n, const double* ap,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DSPCON_( const char* uplo, const MKL_INT* n, const double* ap,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dspcon( const char* uplo, const MKL_INT* n, const double* ap,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dspcon_( const char* uplo, const MKL_INT* n, const double* ap,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DSPEVD( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
             double* w, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void DSPEVD_( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
              double* w, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dspevd( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
             double* w, double* z, const MKL_INT* ldz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void dspevd_( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
              double* w, double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSPEV( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
            double* w, double* z, const MKL_INT* ldz, double* work,
            MKL_INT* info );
void DSPEV_( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
             double* w, double* z, const MKL_INT* ldz, double* work,
             MKL_INT* info );
void dspev( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
            double* w, double* z, const MKL_INT* ldz, double* work,
            MKL_INT* info );
void dspev_( const char* jobz, const char* uplo, const MKL_INT* n, double* ap,
             double* w, double* z, const MKL_INT* ldz, double* work,
             MKL_INT* info );

void DSPEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, double* ap, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void DSPEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, double* ap, const double* vl, const double* vu,
              const MKL_INT* il, const MKL_INT* iu, const double* abstol,
              MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
              double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void dspevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, double* ap, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void dspevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, double* ap, const double* vl, const double* vu,
              const MKL_INT* il, const MKL_INT* iu, const double* abstol,
              MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
              double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void DSPGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             double* ap, const double* bp, MKL_INT* info );
void DSPGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              double* ap, const double* bp, MKL_INT* info );
void dspgst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             double* ap, const double* bp, MKL_INT* info );
void dspgst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              double* ap, const double* bp, MKL_INT* info );

void DSPGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* ap, double* bp, double* w, double* z,
             const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSPGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, double* ap, double* bp, double* w, double* z,
              const MKL_INT* ldz, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dspgvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* ap, double* bp, double* w, double* z,
             const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dspgvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, double* ap, double* bp, double* w, double* z,
              const MKL_INT* ldz, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void DSPGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, double* ap, double* bp, double* w, double* z,
            const MKL_INT* ldz, double* work, MKL_INT* info );
void DSPGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* ap, double* bp, double* w, double* z,
             const MKL_INT* ldz, double* work, MKL_INT* info );
void dspgv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, double* ap, double* bp, double* w, double* z,
            const MKL_INT* ldz, double* work, MKL_INT* info );
void dspgv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* ap, double* bp, double* w, double* z,
             const MKL_INT* ldz, double* work, MKL_INT* info );

void DSPGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, double* ap, double* bp,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void DSPGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, double* ap, double* bp,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void dspgvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, double* ap, double* bp,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void dspgvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, double* ap, double* bp,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void DSPOSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
             float* swork, MKL_INT* iter, MKL_INT* info );
void DSPOSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
              float* swork, MKL_INT* iter, MKL_INT* info );
void dsposv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
             float* swork, MKL_INT* iter, MKL_INT* info );
void dsposv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              double* a, const MKL_INT* lda, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* work,
              float* swork, MKL_INT* iter, MKL_INT* info );

void DSPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, const double* afp, const MKL_INT* ipiv,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* ferr, double* berr, double* work,
             MKL_INT* iwork, MKL_INT* info );
void DSPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, const double* afp, const MKL_INT* ipiv,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* ferr, double* berr, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dsprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, const double* afp, const MKL_INT* ipiv,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* ferr, double* berr, double* work,
             MKL_INT* iwork, MKL_INT* info );
void dsprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, const double* afp, const MKL_INT* ipiv,
              const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* ferr, double* berr, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DSPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            double* ap, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
            MKL_INT* info );
void DSPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* ap, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
             MKL_INT* info );
void dspsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            double* ap, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
            MKL_INT* info );
void dspsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* ap, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
             MKL_INT* info );

void DSPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const double* ap, double* afp, MKL_INT* ipiv,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DSPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const double* ap, double* afp,
              MKL_INT* ipiv, const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dspsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const double* ap, double* afp, MKL_INT* ipiv,
             const double* b, const MKL_INT* ldb, double* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dspsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const double* ap, double* afp,
              MKL_INT* ipiv, const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DSPTRD( const char* uplo, const MKL_INT* n, double* ap, double* d,
             double* e, double* tau, MKL_INT* info );
void DSPTRD_( const char* uplo, const MKL_INT* n, double* ap, double* d,
              double* e, double* tau, MKL_INT* info );
void dsptrd( const char* uplo, const MKL_INT* n, double* ap, double* d,
             double* e, double* tau, MKL_INT* info );
void dsptrd_( const char* uplo, const MKL_INT* n, double* ap, double* d,
              double* e, double* tau, MKL_INT* info );

void DSPTRF( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* ipiv,
             MKL_INT* info );
void DSPTRF_( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* ipiv,
              MKL_INT* info );
void dsptrf( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* ipiv,
             MKL_INT* info );
void dsptrf_( const char* uplo, const MKL_INT* n, double* ap, MKL_INT* ipiv,
              MKL_INT* info );

void DSPTRI( const char* uplo, const MKL_INT* n, double* ap,
             const MKL_INT* ipiv, double* work, MKL_INT* info );
void DSPTRI_( const char* uplo, const MKL_INT* n, double* ap,
              const MKL_INT* ipiv, double* work, MKL_INT* info );
void dsptri( const char* uplo, const MKL_INT* n, double* ap,
             const MKL_INT* ipiv, double* work, MKL_INT* info );
void dsptri_( const char* uplo, const MKL_INT* n, double* ap,
              const MKL_INT* ipiv, double* work, MKL_INT* info );

void DSPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DSPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dsptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* ap, const MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dsptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* ap, const MKL_INT* ipiv, double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DSTEBZ( const char* range, const char* order, const MKL_INT* n,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, const double* d,
             const double* e, MKL_INT* m, MKL_INT* nsplit, double* w,
             MKL_INT* iblock, MKL_INT* isplit, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DSTEBZ_( const char* range, const char* order, const MKL_INT* n,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, const double* d,
              const double* e, MKL_INT* m, MKL_INT* nsplit, double* w,
              MKL_INT* iblock, MKL_INT* isplit, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dstebz( const char* range, const char* order, const MKL_INT* n,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, const double* d,
             const double* e, MKL_INT* m, MKL_INT* nsplit, double* w,
             MKL_INT* iblock, MKL_INT* isplit, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dstebz_( const char* range, const char* order, const MKL_INT* n,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, const double* d,
              const double* e, MKL_INT* m, MKL_INT* nsplit, double* w,
              MKL_INT* iblock, MKL_INT* isplit, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DSTEDC( const char* compz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSTEDC_( const char* compz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dstedc( const char* compz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dstedc_( const char* compz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSTEGR( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void DSTEGR_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dstegr( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void dstegr_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSTEIN( const MKL_INT* n, const double* d, const double* e,
             const MKL_INT* m, const double* w, const MKL_INT* iblock,
             const MKL_INT* isplit, double* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void DSTEIN_( const MKL_INT* n, const double* d, const double* e,
              const MKL_INT* m, const double* w, const MKL_INT* iblock,
              const MKL_INT* isplit, double* z, const MKL_INT* ldz,
              double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void dstein( const MKL_INT* n, const double* d, const double* e,
             const MKL_INT* m, const double* w, const MKL_INT* iblock,
             const MKL_INT* isplit, double* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void dstein_( const MKL_INT* n, const double* d, const double* e,
              const MKL_INT* m, const double* w, const MKL_INT* iblock,
              const MKL_INT* isplit, double* z, const MKL_INT* ldz,
              double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void DSTEMR( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, double* w, double* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSTEMR_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, double* w, double* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dstemr( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, double* w, double* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dstemr_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, double* w, double* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void DSTEQR( const char* compz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void DSTEQR_( const char* compz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dsteqr( const char* compz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dsteqr_( const char* compz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* info );

void DSTERF( const MKL_INT* n, double* d, double* e, MKL_INT* info );
void DSTERF_( const MKL_INT* n, double* d, double* e, MKL_INT* info );
void dsterf( const MKL_INT* n, double* d, double* e, MKL_INT* info );
void dsterf_( const MKL_INT* n, double* d, double* e, MKL_INT* info );

void DSTEVD( const char* jobz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSTEVD_( const char* jobz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dstevd( const char* jobz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dstevd_( const char* jobz, const MKL_INT* n, double* d, double* e,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSTEV( const char* jobz, const MKL_INT* n, double* d, double* e,
            double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void DSTEV_( const char* jobz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dstev( const char* jobz, const MKL_INT* n, double* d, double* e,
            double* z, const MKL_INT* ldz, double* work, MKL_INT* info );
void dstev_( const char* jobz, const MKL_INT* n, double* d, double* e,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* info );

void DSTEVR( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void DSTEVR_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dstevr( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void dstevr_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSTEVX( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void DSTEVX_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void dstevx( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void dstevx_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void DSYCON( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
             double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void DSYCON_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
              double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dsycon( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
             double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dsycon_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
              double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );

void DSYEQUB( char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* s, double* scond, double* amax,
              double* work, MKL_INT* info );
void DSYEQUB_( char* uplo, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* s, double* scond, double* amax,
               double* work, MKL_INT* info );
void dsyequb( char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* s, double* scond, double* amax,
              double* work, MKL_INT* info );
void dsyequb_( char* uplo, const MKL_INT* n, const double* a,
               const MKL_INT* lda, double* s, double* scond, double* amax,
               double* work, MKL_INT* info );

void DSYEVD( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSYEVD_( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* w, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dsyevd( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dsyevd_( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* w, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSYEV( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
            MKL_INT* info );
void DSYEV_( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dsyev( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
            const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
            MKL_INT* info );
void dsyev_( const char* jobz, const char* uplo, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* info );

void DSYEVR( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
             const double* vu, const MKL_INT* il, const MKL_INT* iu,
             const double* abstol, MKL_INT* m, double* w, double* z,
             const MKL_INT* ldz, MKL_INT* isuppz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void DSYEVR_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, double* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dsyevr( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
             const double* vu, const MKL_INT* il, const MKL_INT* iu,
             const double* abstol, MKL_INT* m, double* w, double* z,
             const MKL_INT* ldz, MKL_INT* isuppz, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void dsyevr_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, double* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSYEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
             const double* vu, const MKL_INT* il, const MKL_INT* iu,
             const double* abstol, MKL_INT* m, double* w, double* z,
             const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void DSYEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, double* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );
void dsyevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, const double* vl,
             const double* vu, const MKL_INT* il, const MKL_INT* iu,
             const double* abstol, MKL_INT* m, double* w, double* z,
             const MKL_INT* ldz, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void dsyevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, double* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );

void DSYGS2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DSYGS2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              double* a, const MKL_INT* lda, const double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dsygs2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dsygs2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              double* a, const MKL_INT* lda, const double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DSYGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DSYGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              double* a, const MKL_INT* lda, const double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dsygst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             double* a, const MKL_INT* lda, const double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dsygst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              double* a, const MKL_INT* lda, const double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DSYGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void DSYGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* w, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dsygvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dsygvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
              const MKL_INT* ldb, double* w, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DSYGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
            const MKL_INT* ldb, double* w, double* work, const MKL_INT* lwork,
            MKL_INT* info );
void DSYGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dsygv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
            const MKL_INT* ldb, double* w, double* work, const MKL_INT* lwork,
            MKL_INT* info );
void dsygv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, double* a, const MKL_INT* lda, double* b,
             const MKL_INT* ldb, double* w, double* work, const MKL_INT* lwork,
             MKL_INT* info );

void DSYGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void DSYGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );
void dsygvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, double* z, const MKL_INT* ldz,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void dsygvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              double* z, const MKL_INT* ldz, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );

void DSYRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const double* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void DSYRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const double* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dsyrfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const double* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
             double* berr, double* work, MKL_INT* iwork, MKL_INT* info );
void dsyrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const double* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* ferr,
              double* berr, double* work, MKL_INT* iwork, MKL_INT* info );

void DSYRFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const double* s, const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DSYRFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
               const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const double* s, const double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dsyrfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const double* s, const double* b, const MKL_INT* ldb, double* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dsyrfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
               const double* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const double* s, const double* b, const MKL_INT* ldb, double* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DSYSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, double* a,
            const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
            double* work, const MKL_INT* lwork, MKL_INT* info );
void DSYSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dsysv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, double* a,
            const MKL_INT* lda, MKL_INT* ipiv, double* b, const MKL_INT* ldb,
            double* work, const MKL_INT* lwork, MKL_INT* info );
void dsysv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             double* a, const MKL_INT* lda, MKL_INT* ipiv, double* b,
             const MKL_INT* ldb, double* work, const MKL_INT* lwork,
             MKL_INT* info );

void DSYSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
             double* af, const MKL_INT* ldaf, MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
             double* ferr, double* berr, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void DSYSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              double* af, const MKL_INT* ldaf, MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void dsysvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
             double* af, const MKL_INT* ldaf, MKL_INT* ipiv, const double* b,
             const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
             double* ferr, double* berr, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void dsysvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const double* a, const MKL_INT* lda,
              double* af, const MKL_INT* ldaf, MKL_INT* ipiv, const double* b,
              const MKL_INT* ldb, double* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );

void DSYSVXX( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* s,
              double* b, const MKL_INT* ldb, double* x, const MKL_INT* ldx,
              double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void DSYSVXX_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* s,
               double* b, const MKL_INT* ldb, double* x, const MKL_INT* ldx,
               double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );
void dsysvxx( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* s,
              double* b, const MKL_INT* ldb, double* x, const MKL_INT* ldx,
              double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dsysvxx_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, double* a, const MKL_INT* lda, double* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, double* s,
               double* b, const MKL_INT* ldb, double* x, const MKL_INT* ldx,
               double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               double* work, MKL_INT* iwork, MKL_INT* info );

void DSYTD2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tau, MKL_INT* info );
void DSYTD2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tau,
              MKL_INT* info );
void dsytd2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tau, MKL_INT* info );
void dsytd2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tau,
              MKL_INT* info );

void DSYTF2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void DSYTF2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void dsytf2( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void dsytf2_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void DSYTRD( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void DSYTRD_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tau,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dsytrd( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* d, double* e, double* tau, double* work,
             const MKL_INT* lwork, MKL_INT* info );
void dsytrd_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* d, double* e, double* tau,
              double* work, const MKL_INT* lwork, MKL_INT* info );

void DSYTRF( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DSYTRF_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dsytrf( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* ipiv, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dsytrf_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* ipiv, double* work,
              const MKL_INT* lwork, MKL_INT* info );

void DSYTRI( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             const MKL_INT* ipiv, double* work, MKL_INT* info );
void DSYTRI_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, double* work,
              MKL_INT* info );
void dsytri( const char* uplo, const MKL_INT* n, double* a, const MKL_INT* lda,
             const MKL_INT* ipiv, double* work, MKL_INT* info );
void dsytri_( const char* uplo, const MKL_INT* n, double* a,
              const MKL_INT* lda, const MKL_INT* ipiv, double* work,
              MKL_INT* info );

void DSYTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void DSYTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
              double* b, const MKL_INT* ldb, MKL_INT* info );
void dsytrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void dsytrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* a, const MKL_INT* lda, const MKL_INT* ipiv,
              double* b, const MKL_INT* ldb, MKL_INT* info );

void DTBCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const double* ab,
             const MKL_INT* ldab, double* rcond, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DTBCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const double* ab,
              const MKL_INT* ldab, double* rcond, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dtbcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const double* ab,
             const MKL_INT* ldab, double* rcond, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dtbcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const double* ab,
              const MKL_INT* ldab, double* rcond, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DTBRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const double* ab, const MKL_INT* ldab, const double* b,
             const MKL_INT* ldb, const double* x, const MKL_INT* ldx,
             double* ferr, double* berr, double* work, MKL_INT* iwork,
             MKL_INT* info );
void DTBRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const double* ab, const MKL_INT* ldab, const double* b,
              const MKL_INT* ldb, const double* x, const MKL_INT* ldx,
              double* ferr, double* berr, double* work, MKL_INT* iwork,
              MKL_INT* info );
void dtbrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const double* ab, const MKL_INT* ldab, const double* b,
             const MKL_INT* ldb, const double* x, const MKL_INT* ldx,
             double* ferr, double* berr, double* work, MKL_INT* iwork,
             MKL_INT* info );
void dtbrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const double* ab, const MKL_INT* ldab, const double* b,
              const MKL_INT* ldb, const double* x, const MKL_INT* ldx,
              double* ferr, double* berr, double* work, MKL_INT* iwork,
              MKL_INT* info );

void DTBTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const double* ab, const MKL_INT* ldab, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void DTBTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const double* ab, const MKL_INT* ldab, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void dtbtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const double* ab, const MKL_INT* ldab, double* b,
             const MKL_INT* ldb, MKL_INT* info );
void dtbtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const double* ab, const MKL_INT* ldab, double* b,
              const MKL_INT* ldb, MKL_INT* info );

void DTFSM( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const double* alpha, const double* a, double* b,
            const MKL_INT* ldb );
void DTFSM_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const double* alpha, const double* a, double* b,
             const MKL_INT* ldb );
void dtfsm( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const double* alpha, const double* a, double* b,
            const MKL_INT* ldb );
void dtfsm_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const double* alpha, const double* a, double* b,
             const MKL_INT* ldb );

void DTFTRI( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, double* a, MKL_INT* info );
void DTFTRI_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, double* a, MKL_INT* info );
void dtftri( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, double* a, MKL_INT* info );
void dtftri_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, double* a, MKL_INT* info );

void DTFTTP( const char* transr, const char* uplo, const MKL_INT* n,
             const double* arf, double* ap, MKL_INT* info );
void DTFTTP_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* arf, double* ap, MKL_INT* info );
void dtfttp( const char* transr, const char* uplo, const MKL_INT* n,
             const double* arf, double* ap, MKL_INT* info );
void dtfttp_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* arf, double* ap, MKL_INT* info );

void DTFTTR( const char* transr, const char* uplo, const MKL_INT* n,
             const double* arf, double* a, const MKL_INT* lda, MKL_INT* info );
void DTFTTR_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* arf, double* a, const MKL_INT* lda,
              MKL_INT* info );
void dtfttr( const char* transr, const char* uplo, const MKL_INT* n,
             const double* arf, double* a, const MKL_INT* lda, MKL_INT* info );
void dtfttr_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* arf, double* a, const MKL_INT* lda,
              MKL_INT* info );

void DTGEVC( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const double* s, const MKL_INT* lds,
             const double* p, const MKL_INT* ldp, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );
void DTGEVC_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const double* s, const MKL_INT* lds,
              const double* p, const MKL_INT* ldp, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );
void dtgevc( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const double* s, const MKL_INT* lds,
             const double* p, const MKL_INT* ldp, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );
void dtgevc_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const double* s, const MKL_INT* lds,
              const double* p, const MKL_INT* ldp, double* vl,
              const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );

void DTGEX2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void DTGEX2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dtgex2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dtgex2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              double* work, const MKL_INT* lwork, MKL_INT* info );

void DTGEXC( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
             MKL_INT* ifst, MKL_INT* ilst, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void DTGEXC_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
              MKL_INT* ifst, MKL_INT* ilst, double* work, const MKL_INT* lwork,
              MKL_INT* info );
void dtgexc( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
             MKL_INT* ifst, MKL_INT* ilst, double* work, const MKL_INT* lwork,
             MKL_INT* info );
void dtgexc_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* q, const MKL_INT* ldq, double* z, const MKL_INT* ldz,
              MKL_INT* ifst, MKL_INT* ilst, double* work, const MKL_INT* lwork,
              MKL_INT* info );

void DTGSEN( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* q, const MKL_INT* ldq,
             double* z, const MKL_INT* ldz, MKL_INT* m, double* pl, double* pr,
             double* dif, double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void DTGSEN_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* alphar, double* alphai, double* beta, double* q,
              const MKL_INT* ldq, double* z, const MKL_INT* ldz, MKL_INT* m,
              double* pl, double* pr, double* dif, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void dtgsen( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb, double* alphar,
             double* alphai, double* beta, double* q, const MKL_INT* ldq,
             double* z, const MKL_INT* ldz, MKL_INT* m, double* pl, double* pr,
             double* dif, double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void dtgsen_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* alphar, double* alphai, double* beta, double* q,
              const MKL_INT* ldq, double* z, const MKL_INT* ldz, MKL_INT* m,
              double* pl, double* pr, double* dif, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void DTGSJA( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, const double* tola,
             const double* tolb, double* alpha, double* beta, double* u,
             const MKL_INT* ldu, double* v, const MKL_INT* ldv, double* q,
             const MKL_INT* ldq, double* work, MKL_INT* ncycle,
             MKL_INT* info );
void DTGSJA_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              const double* tola, const double* tolb, double* alpha,
              double* beta, double* u, const MKL_INT* ldu, double* v,
              const MKL_INT* ldv, double* q, const MKL_INT* ldq, double* work,
              MKL_INT* ncycle, MKL_INT* info );
void dtgsja( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, double* a, const MKL_INT* lda,
             double* b, const MKL_INT* ldb, const double* tola,
             const double* tolb, double* alpha, double* beta, double* u,
             const MKL_INT* ldu, double* v, const MKL_INT* ldv, double* q,
             const MKL_INT* ldq, double* work, MKL_INT* ncycle,
             MKL_INT* info );
void dtgsja_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              const double* tola, const double* tolb, double* alpha,
              double* beta, double* u, const MKL_INT* ldu, double* v,
              const MKL_INT* ldv, double* q, const MKL_INT* ldq, double* work,
              MKL_INT* ncycle, MKL_INT* info );

void DTGSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             const double* b, const MKL_INT* ldb, const double* vl,
             const MKL_INT* ldvl, const double* vr, const MKL_INT* ldvr,
             double* s, double* dif, const MKL_INT* mm, MKL_INT* m,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void DTGSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              const double* b, const MKL_INT* ldb, const double* vl,
              const MKL_INT* ldvl, const double* vr, const MKL_INT* ldvr,
              double* s, double* dif, const MKL_INT* mm, MKL_INT* m,
              double* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );
void dtgsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             const double* b, const MKL_INT* ldb, const double* vl,
             const MKL_INT* ldvl, const double* vr, const MKL_INT* ldvr,
             double* s, double* dif, const MKL_INT* mm, MKL_INT* m,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void dtgsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              const double* b, const MKL_INT* ldb, const double* vl,
              const MKL_INT* ldvl, const double* vr, const MKL_INT* ldvr,
              double* s, double* dif, const MKL_INT* mm, MKL_INT* m,
              double* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );

void DTGSY2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             const double* b, const MKL_INT* ldb, double* c,
             const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
             const double* e, const MKL_INT* lde, double* f,
             const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
             MKL_INT* iwork, MKL_INT* pq, MKL_INT* info );
void DTGSY2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              const double* b, const MKL_INT* ldb, double* c,
              const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
              const double* e, const MKL_INT* lde, double* f,
              const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
              MKL_INT* iwork, MKL_INT* pq, MKL_INT* info );
void dtgsy2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             const double* b, const MKL_INT* ldb, double* c,
             const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
             const double* e, const MKL_INT* lde, double* f,
             const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
             MKL_INT* iwork, MKL_INT* pq, MKL_INT* info );
void dtgsy2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              const double* b, const MKL_INT* ldb, double* c,
              const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
              const double* e, const MKL_INT* lde, double* f,
              const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
              MKL_INT* iwork, MKL_INT* pq, MKL_INT* info );

void DTGSYL( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             const double* b, const MKL_INT* ldb, double* c,
             const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
             const double* e, const MKL_INT* lde, double* f,
             const MKL_INT* ldf, double* scale, double* dif, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void DTGSYL_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              const double* b, const MKL_INT* ldb, double* c,
              const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
              const double* e, const MKL_INT* lde, double* f,
              const MKL_INT* ldf, double* scale, double* dif, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dtgsyl( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             const double* b, const MKL_INT* ldb, double* c,
             const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
             const double* e, const MKL_INT* lde, double* f,
             const MKL_INT* ldf, double* scale, double* dif, double* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void dtgsyl_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              const double* b, const MKL_INT* ldb, double* c,
              const MKL_INT* ldc, const double* d, const MKL_INT* ldd,
              const double* e, const MKL_INT* lde, double* f,
              const MKL_INT* ldf, double* scale, double* dif, double* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void DTPCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const double* ap, double* rcond, double* work,
             MKL_INT* iwork, MKL_INT* info );
void DTPCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const double* ap, double* rcond, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dtpcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const double* ap, double* rcond, double* work,
             MKL_INT* iwork, MKL_INT* info );
void dtpcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const double* ap, double* rcond, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DTPRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
             const double* b, const MKL_INT* ldb, const double* x,
             const MKL_INT* ldx, double* ferr, double* berr, double* work,
             MKL_INT* iwork, MKL_INT* info );
void DTPRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
              const double* b, const MKL_INT* ldb, const double* x,
              const MKL_INT* ldx, double* ferr, double* berr, double* work,
              MKL_INT* iwork, MKL_INT* info );
void dtprfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
             const double* b, const MKL_INT* ldb, const double* x,
             const MKL_INT* ldx, double* ferr, double* berr, double* work,
             MKL_INT* iwork, MKL_INT* info );
void dtprfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
              const double* b, const MKL_INT* ldb, const double* x,
              const MKL_INT* ldx, double* ferr, double* berr, double* work,
              MKL_INT* iwork, MKL_INT* info );

void DTPTRI( const char* uplo, const char* diag, const MKL_INT* n, double* ap,
             MKL_INT* info );
void DTPTRI_( const char* uplo, const char* diag, const MKL_INT* n, double* ap,
              MKL_INT* info );
void dtptri( const char* uplo, const char* diag, const MKL_INT* n, double* ap,
             MKL_INT* info );
void dtptri_( const char* uplo, const char* diag, const MKL_INT* n, double* ap,
              MKL_INT* info );

void DTPTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void DTPTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
              double* b, const MKL_INT* ldb, MKL_INT* info );
void dtptrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
             double* b, const MKL_INT* ldb, MKL_INT* info );
void dtptrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* ap,
              double* b, const MKL_INT* ldb, MKL_INT* info );

void DTPTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const double* ap, double* arf, MKL_INT* info );
void DTPTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* ap, double* arf, MKL_INT* info );
void dtpttf( const char* transr, const char* uplo, const MKL_INT* n,
             const double* ap, double* arf, MKL_INT* info );
void dtpttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* ap, double* arf, MKL_INT* info );

void DTPTTR( const char* uplo, const MKL_INT* n, const double* ap, double* a,
             const MKL_INT* lda, MKL_INT* info );
void DTPTTR_( const char* uplo, const MKL_INT* n, const double* ap, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dtpttr( const char* uplo, const MKL_INT* n, const double* ap, double* a,
             const MKL_INT* lda, MKL_INT* info );
void dtpttr_( const char* uplo, const MKL_INT* n, const double* ap, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DTRCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void DTRCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dtrcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const double* a, const MKL_INT* lda,
             double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );
void dtrcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const double* a, const MKL_INT* lda,
              double* rcond, double* work, MKL_INT* iwork, MKL_INT* info );

void DTREVC( const char* side, const char* howmny, MKL_INT* select,
             const MKL_INT* n, const double* t, const MKL_INT* ldt, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );
void DTREVC_( const char* side, const char* howmny, MKL_INT* select,
              const MKL_INT* n, const double* t, const MKL_INT* ldt,
              double* vl, const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );
void dtrevc( const char* side, const char* howmny, MKL_INT* select,
             const MKL_INT* n, const double* t, const MKL_INT* ldt, double* vl,
             const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );
void dtrevc_( const char* side, const char* howmny, MKL_INT* select,
              const MKL_INT* n, const double* t, const MKL_INT* ldt,
              double* vl, const MKL_INT* ldvl, double* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, double* work, MKL_INT* info );

void DTREXC( const char* compq, const MKL_INT* n, double* t,
             const MKL_INT* ldt, double* q, const MKL_INT* ldq, MKL_INT* ifst,
             MKL_INT* ilst, double* work, MKL_INT* info );
void DTREXC_( const char* compq, const MKL_INT* n, double* t,
              const MKL_INT* ldt, double* q, const MKL_INT* ldq, MKL_INT* ifst,
              MKL_INT* ilst, double* work, MKL_INT* info );
void dtrexc( const char* compq, const MKL_INT* n, double* t,
             const MKL_INT* ldt, double* q, const MKL_INT* ldq, MKL_INT* ifst,
             MKL_INT* ilst, double* work, MKL_INT* info );
void dtrexc_( const char* compq, const MKL_INT* n, double* t,
              const MKL_INT* ldt, double* q, const MKL_INT* ldq, MKL_INT* ifst,
              MKL_INT* ilst, double* work, MKL_INT* info );

void DTRRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* a,
             const MKL_INT* lda, const double* b, const MKL_INT* ldb,
             const double* x, const MKL_INT* ldx, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void DTRRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* a,
              const MKL_INT* lda, const double* b, const MKL_INT* ldb,
              const double* x, const MKL_INT* ldx, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );
void dtrrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* a,
             const MKL_INT* lda, const double* b, const MKL_INT* ldb,
             const double* x, const MKL_INT* ldx, double* ferr, double* berr,
             double* work, MKL_INT* iwork, MKL_INT* info );
void dtrrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* a,
              const MKL_INT* lda, const double* b, const MKL_INT* ldb,
              const double* x, const MKL_INT* ldx, double* ferr, double* berr,
              double* work, MKL_INT* iwork, MKL_INT* info );

void DTRSEN( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, double* t, const MKL_INT* ldt, double* q,
             const MKL_INT* ldq, double* wr, double* wi, MKL_INT* m, double* s,
             double* sep, double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void DTRSEN_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, double* t, const MKL_INT* ldt, double* q,
              const MKL_INT* ldq, double* wr, double* wi, MKL_INT* m,
              double* s, double* sep, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void dtrsen( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, double* t, const MKL_INT* ldt, double* q,
             const MKL_INT* ldq, double* wr, double* wi, MKL_INT* m, double* s,
             double* sep, double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void dtrsen_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, double* t, const MKL_INT* ldt, double* q,
              const MKL_INT* ldq, double* wr, double* wi, MKL_INT* m,
              double* s, double* sep, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void DTRSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const double* t, const MKL_INT* ldt,
             const double* vl, const MKL_INT* ldvl, const double* vr,
             const MKL_INT* ldvr, double* s, double* sep, const MKL_INT* mm,
             MKL_INT* m, double* work, const MKL_INT* ldwork, MKL_INT* iwork,
             MKL_INT* info );
void DTRSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const double* t, const MKL_INT* ldt,
              const double* vl, const MKL_INT* ldvl, const double* vr,
              const MKL_INT* ldvr, double* s, double* sep, const MKL_INT* mm,
              MKL_INT* m, double* work, const MKL_INT* ldwork, MKL_INT* iwork,
              MKL_INT* info );
void dtrsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const double* t, const MKL_INT* ldt,
             const double* vl, const MKL_INT* ldvl, const double* vr,
             const MKL_INT* ldvr, double* s, double* sep, const MKL_INT* mm,
             MKL_INT* m, double* work, const MKL_INT* ldwork, MKL_INT* iwork,
             MKL_INT* info );
void dtrsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const double* t, const MKL_INT* ldt,
              const double* vl, const MKL_INT* ldvl, const double* vr,
              const MKL_INT* ldvr, double* s, double* sep, const MKL_INT* mm,
              MKL_INT* m, double* work, const MKL_INT* ldwork, MKL_INT* iwork,
              MKL_INT* info );

void DTRSYL( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* b, const MKL_INT* ldb,
             double* c, const MKL_INT* ldc, double* scale, MKL_INT* info );
void DTRSYL_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* b, const MKL_INT* ldb,
              double* c, const MKL_INT* ldc, double* scale, MKL_INT* info );
void dtrsyl( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* b, const MKL_INT* ldb,
             double* c, const MKL_INT* ldc, double* scale, MKL_INT* info );
void dtrsyl_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* b, const MKL_INT* ldb,
              double* c, const MKL_INT* ldc, double* scale, MKL_INT* info );

void DTRTI2( const char* uplo, const char* diag, const MKL_INT* n, double* a,
             const MKL_INT* lda, MKL_INT* info );
void DTRTI2_( const char* uplo, const char* diag, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dtrti2( const char* uplo, const char* diag, const MKL_INT* n, double* a,
             const MKL_INT* lda, MKL_INT* info );
void dtrti2_( const char* uplo, const char* diag, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DTRTRI( const char* uplo, const char* diag, const MKL_INT* n, double* a,
             const MKL_INT* lda, MKL_INT* info );
void DTRTRI_( const char* uplo, const char* diag, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );
void dtrtri( const char* uplo, const char* diag, const MKL_INT* n, double* a,
             const MKL_INT* lda, MKL_INT* info );
void dtrtri_( const char* uplo, const char* diag, const MKL_INT* n, double* a,
              const MKL_INT* lda, MKL_INT* info );

void DTRTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* info );
void DTRTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* info );
void dtrtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const double* a,
             const MKL_INT* lda, double* b, const MKL_INT* ldb,
             MKL_INT* info );
void dtrtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const double* a,
              const MKL_INT* lda, double* b, const MKL_INT* ldb,
              MKL_INT* info );

void DTRTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const double* a, const MKL_INT* lda, double* arf, MKL_INT* info );
void DTRTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* a, const MKL_INT* lda, double* arf,
              MKL_INT* info );
void dtrttf( const char* transr, const char* uplo, const MKL_INT* n,
             const double* a, const MKL_INT* lda, double* arf, MKL_INT* info );
void dtrttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const double* a, const MKL_INT* lda, double* arf,
              MKL_INT* info );

void DTRTTP( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, double* ap, MKL_INT* info );
void DTRTTP_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* ap, MKL_INT* info );
void dtrttp( const char* uplo, const MKL_INT* n, const double* a,
             const MKL_INT* lda, double* ap, MKL_INT* info );
void dtrttp_( const char* uplo, const MKL_INT* n, const double* a,
              const MKL_INT* lda, double* ap, MKL_INT* info );

void DTZRQF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, MKL_INT* info );
void DTZRQF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, MKL_INT* info );
void dtzrqf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, MKL_INT* info );
void dtzrqf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, MKL_INT* info );

void DTZRZF( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void DTZRZF_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );
void dtzrzf( const MKL_INT* m, const MKL_INT* n, double* a, const MKL_INT* lda,
             double* tau, double* work, const MKL_INT* lwork, MKL_INT* info );
void dtzrzf_( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* tau, double* work,
              const MKL_INT* lwork, MKL_INT* info );

double DZSUM1( const MKL_INT* n, const MKL_Complex16* cx,
               const MKL_INT* incx );
double DZSUM1_( const MKL_INT* n, const MKL_Complex16* cx,
                const MKL_INT* incx );
double dzsum1( const MKL_INT* n, const MKL_Complex16* cx,
               const MKL_INT* incx );
double dzsum1_( const MKL_INT* n, const MKL_Complex16* cx,
                const MKL_INT* incx );

MKL_INT ICMAX1( const MKL_INT* n, const MKL_Complex8* cx,
                const MKL_INT* incx );
MKL_INT ICMAX1_( const MKL_INT* n, const MKL_Complex8* cx,
                 const MKL_INT* incx );
MKL_INT icmax1( const MKL_INT* n, const MKL_Complex8* cx,
                const MKL_INT* incx );
MKL_INT icmax1_( const MKL_INT* n, const MKL_Complex8* cx,
                 const MKL_INT* incx );

MKL_INT IEEECK( const MKL_INT* ispec, const float* zero, const float* one );
MKL_INT IEEECK_( const MKL_INT* ispec, const float* zero, const float* one );
MKL_INT ieeeck( const MKL_INT* ispec, const float* zero, const float* one );
MKL_INT ieeeck_( const MKL_INT* ispec, const float* zero, const float* one );

MKL_INT ILACLC( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda );
MKL_INT ILACLC_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                 const MKL_INT* lda );
MKL_INT ilaclc( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda );
MKL_INT ilaclc_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                 const MKL_INT* lda );

MKL_INT ILACLR( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda );
MKL_INT ILACLR_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                 const MKL_INT* lda );
MKL_INT ilaclr( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                const MKL_INT* lda );
MKL_INT ilaclr_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
                 const MKL_INT* lda );

MKL_INT ILADIAG( const char* diag );
MKL_INT ILADIAG_( const char* diag );
MKL_INT iladiag( const char* diag );
MKL_INT iladiag_( const char* diag );

MKL_INT ILADLC( const MKL_INT* m, const MKL_INT* n, const double* a,
                const MKL_INT* lda );
MKL_INT ILADLC_( const MKL_INT* m, const MKL_INT* n, const double* a,
                 const MKL_INT* lda );
MKL_INT iladlc( const MKL_INT* m, const MKL_INT* n, const double* a,
                const MKL_INT* lda );
MKL_INT iladlc_( const MKL_INT* m, const MKL_INT* n, const double* a,
                 const MKL_INT* lda );

MKL_INT ILADLR( const MKL_INT* m, const MKL_INT* n, const double* a,
                const MKL_INT* lda );
MKL_INT ILADLR_( const MKL_INT* m, const MKL_INT* n, const double* a,
                 const MKL_INT* lda );
MKL_INT iladlr( const MKL_INT* m, const MKL_INT* n, const double* a,
                const MKL_INT* lda );
MKL_INT iladlr_( const MKL_INT* m, const MKL_INT* n, const double* a,
                 const MKL_INT* lda );

MKL_INT ILAENV( const MKL_INT* ispec, const char* name, const char* opts,
                const MKL_INT* n1, const MKL_INT* n2, const MKL_INT* n3,
                const MKL_INT* n4 );
MKL_INT ILAENV_( const MKL_INT* ispec, const char* name, const char* opts,
                 const MKL_INT* n1, const MKL_INT* n2, const MKL_INT* n3,
                 const MKL_INT* n4 );
MKL_INT ilaenv( const MKL_INT* ispec, const char* name, const char* opts,
                const MKL_INT* n1, const MKL_INT* n2, const MKL_INT* n3,
                const MKL_INT* n4 );
MKL_INT ilaenv_( const MKL_INT* ispec, const char* name, const char* opts,
                 const MKL_INT* n1, const MKL_INT* n2, const MKL_INT* n3,
                 const MKL_INT* n4 );

MKL_INT ILAPREC( const char* prec );
MKL_INT ILAPREC_( const char* prec );
MKL_INT ilaprec( const char* prec );
MKL_INT ilaprec_( const char* prec );

MKL_INT ILASLC( const MKL_INT* m, const MKL_INT* n, const float* a,
                const MKL_INT* lda );
MKL_INT ILASLC_( const MKL_INT* m, const MKL_INT* n, const float* a,
                 const MKL_INT* lda );
MKL_INT ilaslc( const MKL_INT* m, const MKL_INT* n, const float* a,
                const MKL_INT* lda );
MKL_INT ilaslc_( const MKL_INT* m, const MKL_INT* n, const float* a,
                 const MKL_INT* lda );

MKL_INT ILASLR( const MKL_INT* m, const MKL_INT* n, const float* a,
                const MKL_INT* lda );
MKL_INT ILASLR_( const MKL_INT* m, const MKL_INT* n, const float* a,
                 const MKL_INT* lda );
MKL_INT ilaslr( const MKL_INT* m, const MKL_INT* n, const float* a,
                const MKL_INT* lda );
MKL_INT ilaslr_( const MKL_INT* m, const MKL_INT* n, const float* a,
                 const MKL_INT* lda );

MKL_INT ILATRANS( const char* trans );
MKL_INT ILATRANS_( const char* trans );
MKL_INT ilatrans( const char* trans );
MKL_INT ilatrans_( const char* trans );

MKL_INT ILAUPLO( const char* uplo );
MKL_INT ILAUPLO_( const char* uplo );
MKL_INT ilauplo( const char* uplo );
MKL_INT ilauplo_( const char* uplo );

void ILAVER( MKL_INT* vers_major, MKL_INT* vers_minor, MKL_INT* vers_patch );
void ILAVER_( MKL_INT* vers_major, MKL_INT* vers_minor, MKL_INT* vers_patch );
void ilaver( MKL_INT* vers_major, MKL_INT* vers_minor, MKL_INT* vers_patch );
void ilaver_( MKL_INT* vers_major, MKL_INT* vers_minor, MKL_INT* vers_patch );

MKL_INT ILAZLC( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda );
MKL_INT ILAZLC_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                 const MKL_INT* lda );
MKL_INT ilazlc( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda );
MKL_INT ilazlc_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                 const MKL_INT* lda );

MKL_INT ILAZLR( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda );
MKL_INT ILAZLR_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                 const MKL_INT* lda );
MKL_INT ilazlr( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda );
MKL_INT ilazlr_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                 const MKL_INT* lda );

MKL_INT IPARMQ( const MKL_INT* ispec, const char* name, const char* opts,
                const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
                const MKL_INT* lwork );
MKL_INT IPARMQ_( const MKL_INT* ispec, const char* name, const char* opts,
                 const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
                 const MKL_INT* lwork );
MKL_INT iparmq( const MKL_INT* ispec, const char* name, const char* opts,
                const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
                const MKL_INT* lwork );
MKL_INT iparmq_( const MKL_INT* ispec, const char* name, const char* opts,
                 const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
                 const MKL_INT* lwork );

MKL_INT IZMAX1( const MKL_INT* n, const MKL_Complex16* cx,
                const MKL_INT* incx );
MKL_INT IZMAX1_( const MKL_INT* n, const MKL_Complex16* cx,
                 const MKL_INT* incx );
MKL_INT izmax1( const MKL_INT* n, const MKL_Complex16* cx,
                const MKL_INT* incx );
MKL_INT izmax1_( const MKL_INT* n, const MKL_Complex16* cx,
                 const MKL_INT* incx );

MKL_INT LSAMEN( const MKL_INT* n, const char* ca, const char* cb );
MKL_INT LSAMEN_( const MKL_INT* n, const char* ca, const char* cb );
MKL_INT lsamen( const MKL_INT* n, const char* ca, const char* cb );
MKL_INT lsamen_( const MKL_INT* n, const char* ca, const char* cb );

void SBDSDC( const char* uplo, const char* compq, const MKL_INT* n, float* d,
             float* e, float* u, const MKL_INT* ldu, float* vt,
             const MKL_INT* ldvt, float* q, MKL_INT* iq, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SBDSDC_( const char* uplo, const char* compq, const MKL_INT* n, float* d,
              float* e, float* u, const MKL_INT* ldu, float* vt,
              const MKL_INT* ldvt, float* q, MKL_INT* iq, float* work,
              MKL_INT* iwork, MKL_INT* info );
void sbdsdc( const char* uplo, const char* compq, const MKL_INT* n, float* d,
             float* e, float* u, const MKL_INT* ldu, float* vt,
             const MKL_INT* ldvt, float* q, MKL_INT* iq, float* work,
             MKL_INT* iwork, MKL_INT* info );
void sbdsdc_( const char* uplo, const char* compq, const MKL_INT* n, float* d,
              float* e, float* u, const MKL_INT* ldu, float* vt,
              const MKL_INT* ldvt, float* q, MKL_INT* iq, float* work,
              MKL_INT* iwork, MKL_INT* info );

void SBDSQR( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
             float* vt, const MKL_INT* ldvt, float* u, const MKL_INT* ldu,
             float* c, const MKL_INT* ldc, float* work, MKL_INT* info );
void SBDSQR_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
              float* vt, const MKL_INT* ldvt, float* u, const MKL_INT* ldu,
              float* c, const MKL_INT* ldc, float* work, MKL_INT* info );
void sbdsqr( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
             float* vt, const MKL_INT* ldvt, float* u, const MKL_INT* ldu,
             float* c, const MKL_INT* ldc, float* work, MKL_INT* info );
void sbdsqr_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, float* d, float* e,
              float* vt, const MKL_INT* ldvt, float* u, const MKL_INT* ldu,
              float* c, const MKL_INT* ldc, float* work, MKL_INT* info );

float SCSUM1( const MKL_INT* n, const MKL_Complex8* cx, const MKL_INT* incx );
float SCSUM1_( const MKL_INT* n, const MKL_Complex8* cx, const MKL_INT* incx );
float scsum1( const MKL_INT* n, const MKL_Complex8* cx, const MKL_INT* incx );
float scsum1_( const MKL_INT* n, const MKL_Complex8* cx, const MKL_INT* incx );

void SDISNA( const char* job, const MKL_INT* m, const MKL_INT* n,
             const float* d, float* sep, MKL_INT* info );
void SDISNA_( const char* job, const MKL_INT* m, const MKL_INT* n,
              const float* d, float* sep, MKL_INT* info );
void sdisna( const char* job, const MKL_INT* m, const MKL_INT* n,
             const float* d, float* sep, MKL_INT* info );
void sdisna_( const char* job, const MKL_INT* m, const MKL_INT* n,
              const float* d, float* sep, MKL_INT* info );

float SECOND( void );
float SECOND_( void );
float second( void );
float second_( void );

void SGBBRD( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             float* ab, const MKL_INT* ldab, float* d, float* e, float* q,
             const MKL_INT* ldq, float* pt, const MKL_INT* ldpt, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void SGBBRD_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              float* ab, const MKL_INT* ldab, float* d, float* e, float* q,
              const MKL_INT* ldq, float* pt, const MKL_INT* ldpt, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );
void sgbbrd( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             float* ab, const MKL_INT* ldab, float* d, float* e, float* q,
             const MKL_INT* ldq, float* pt, const MKL_INT* ldpt, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void sgbbrd_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              float* ab, const MKL_INT* ldab, float* d, float* e, float* q,
              const MKL_INT* ldq, float* pt, const MKL_INT* ldpt, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );

void SGBCON( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SGBCON_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgbcon( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             float* work, MKL_INT* iwork, MKL_INT* info );
void sgbcon_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SGBEQUB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );
void SGBEQUB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
               float* r, float* c, float* rowcnd, float* colcnd, float* amax,
               MKL_INT* info );
void sgbequb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );
void sgbequb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
               float* r, float* c, float* rowcnd, float* colcnd, float* amax,
               MKL_INT* info );

void SGBEQU( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* ab, const MKL_INT* ldab, float* r,
             float* c, float* rowcnd, float* colcnd, float* amax,
             MKL_INT* info );
void SGBEQU_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );
void sgbequ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* ab, const MKL_INT* ldab, float* r,
             float* c, float* rowcnd, float* colcnd, float* amax,
             MKL_INT* info );
void sgbequ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              float* r, float* c, float* rowcnd, float* colcnd, float* amax,
              MKL_INT* info );

void SGBRFS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
             const MKL_INT* ldab, const float* afb, const MKL_INT* ldafb,
             const MKL_INT* ipiv, const float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SGBRFS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
              const MKL_INT* ldab, const float* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const float* b, const MKL_INT* ldb,
              float* x, const MKL_INT* ldx, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgbrfs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
             const MKL_INT* ldab, const float* afb, const MKL_INT* ldafb,
             const MKL_INT* ipiv, const float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void sgbrfs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
              const MKL_INT* ldab, const float* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const float* b, const MKL_INT* ldb,
              float* x, const MKL_INT* ldx, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SGBRFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const float* ab, const MKL_INT* ldab, const float* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv, const float* r,
              const float* c, const float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void SGBRFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const float* ab, const MKL_INT* ldab, const float* afb,
               const MKL_INT* ldafb, const MKL_INT* ipiv, const float* r,
               const float* c, const float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void sgbrfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const float* ab, const MKL_INT* ldab, const float* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv, const float* r,
              const float* c, const float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgbrfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const float* ab, const MKL_INT* ldab, const float* afb,
               const MKL_INT* ldafb, const MKL_INT* ipiv, const float* r,
               const float* c, const float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SGBSV( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
            float* b, const MKL_INT* ldb, MKL_INT* info );
void SGBSV_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, float* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, float* b, const MKL_INT* ldb, MKL_INT* info );
void sgbsv( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
            float* b, const MKL_INT* ldb, MKL_INT* info );
void sgbsv_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, float* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, float* b, const MKL_INT* ldb, MKL_INT* info );

void SGBSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             float* ab, const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
             MKL_INT* ipiv, char* equed, float* r, float* c, float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SGBSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              float* ab, const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
              MKL_INT* ipiv, char* equed, float* r, float* c, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );
void sgbsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             float* ab, const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
             MKL_INT* ipiv, char* equed, float* r, float* c, float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void sgbsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              float* ab, const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
              MKL_INT* ipiv, char* equed, float* r, float* c, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SGBSVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              float* ab, const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
              MKL_INT* ipiv, char* equed, float* r, float* c, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, float* work,
              MKL_INT* iwork, MKL_INT* info );
void SGBSVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               float* ab, const MKL_INT* ldab, float* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
               float* c, float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void sgbsvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              float* ab, const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
              MKL_INT* ipiv, char* equed, float* r, float* c, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, float* work,
              MKL_INT* iwork, MKL_INT* info );
void sgbsvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               float* ab, const MKL_INT* ldab, float* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, float* r,
               float* c, float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SGBTF2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void SGBTF2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
              MKL_INT* info );
void sgbtf2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void sgbtf2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
              MKL_INT* info );

void SGBTRF( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void SGBTRF_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
              MKL_INT* info );
void sgbtrf( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
             MKL_INT* info );
void sgbtrf_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, float* ab, const MKL_INT* ldab, MKL_INT* ipiv,
              MKL_INT* info );

void SGBTRS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void SGBTRS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void sgbtrs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void sgbtrs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const float* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb, MKL_INT* info );

void SGEBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
             const MKL_INT* m, float* v, const MKL_INT* ldv, MKL_INT* info );
void SGEBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
              const MKL_INT* m, float* v, const MKL_INT* ldv, MKL_INT* info );
void sgebak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
             const MKL_INT* m, float* v, const MKL_INT* ldv, MKL_INT* info );
void sgebak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* scale,
              const MKL_INT* m, float* v, const MKL_INT* ldv, MKL_INT* info );

void SGEBAL( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ilo, MKL_INT* ihi, float* scale, MKL_INT* info );
void SGEBAL_( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ilo, MKL_INT* ihi, float* scale, MKL_INT* info );
void sgebal( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ilo, MKL_INT* ihi, float* scale, MKL_INT* info );
void sgebal_( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ilo, MKL_INT* ihi, float* scale, MKL_INT* info );

void SGEBD2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tauq, float* taup, float* work,
             MKL_INT* info );
void SGEBD2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tauq, float* taup, float* work,
              MKL_INT* info );
void sgebd2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tauq, float* taup, float* work,
             MKL_INT* info );
void sgebd2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tauq, float* taup, float* work,
              MKL_INT* info );

void SGEBRD( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tauq, float* taup, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SGEBRD_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tauq, float* taup, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sgebrd( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tauq, float* taup, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgebrd_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tauq, float* taup, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGECON( const char* norm, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* anorm, float* rcond, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SGECON_( const char* norm, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgecon( const char* norm, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* anorm, float* rcond, float* work,
             MKL_INT* iwork, MKL_INT* info );
void sgecon_( const char* norm, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SGEEQUB( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );
void SGEEQUB_( const MKL_INT* m, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* r, float* c, float* rowcnd,
               float* colcnd, float* amax, MKL_INT* info );
void sgeequb( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );
void sgeequb_( const MKL_INT* m, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* r, float* c, float* rowcnd,
               float* colcnd, float* amax, MKL_INT* info );

void SGEEQU( const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, float* r, float* c, float* rowcnd,
             float* colcnd, float* amax, MKL_INT* info );
void SGEEQU_( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );
void sgeequ( const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, float* r, float* c, float* rowcnd,
             float* colcnd, float* amax, MKL_INT* info );
void sgeequ_( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* r, float* c, float* rowcnd,
              float* colcnd, float* amax, MKL_INT* info );

void SGEES( const char* jobvs, const char* sort,
            MKL_S_SELECT_FUNCTION_2 select, const MKL_INT* n, float* a,
            const MKL_INT* lda, MKL_INT* sdim, float* wr, float* wi, float* vs,
            const MKL_INT* ldvs, float* work, const MKL_INT* lwork,
            MKL_INT* bwork, MKL_INT* info );
void SGEES_( const char* jobvs, const char* sort,
             MKL_S_SELECT_FUNCTION_2 select, const MKL_INT* n, float* a,
             const MKL_INT* lda, MKL_INT* sdim, float* wr, float* wi,
             float* vs, const MKL_INT* ldvs, float* work, const MKL_INT* lwork,
             MKL_INT* bwork, MKL_INT* info );
void sgees( const char* jobvs, const char* sort,
            MKL_S_SELECT_FUNCTION_2 select, const MKL_INT* n, float* a,
            const MKL_INT* lda, MKL_INT* sdim, float* wr, float* wi, float* vs,
            const MKL_INT* ldvs, float* work, const MKL_INT* lwork,
            MKL_INT* bwork, MKL_INT* info );
void sgees_( const char* jobvs, const char* sort,
             MKL_S_SELECT_FUNCTION_2 select, const MKL_INT* n, float* a,
             const MKL_INT* lda, MKL_INT* sdim, float* wr, float* wi,
             float* vs, const MKL_INT* ldvs, float* work, const MKL_INT* lwork,
             MKL_INT* bwork, MKL_INT* info );

void SGEESX( const char* jobvs, const char* sort,
             MKL_S_SELECT_FUNCTION_2 select, const char* sense,
             const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* sdim,
             float* wr, float* wi, float* vs, const MKL_INT* ldvs,
             float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* bwork,
             MKL_INT* info );
void SGEESX_( const char* jobvs, const char* sort,
              MKL_S_SELECT_FUNCTION_2 select, const char* sense,
              const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* sdim,
              float* wr, float* wi, float* vs, const MKL_INT* ldvs,
              float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* bwork,
              MKL_INT* info );
void sgeesx( const char* jobvs, const char* sort,
             MKL_S_SELECT_FUNCTION_2 select, const char* sense,
             const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* sdim,
             float* wr, float* wi, float* vs, const MKL_INT* ldvs,
             float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* bwork,
             MKL_INT* info );
void sgeesx_( const char* jobvs, const char* sort,
              MKL_S_SELECT_FUNCTION_2 select, const char* sense,
              const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* sdim,
              float* wr, float* wi, float* vs, const MKL_INT* ldvs,
              float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* bwork,
              MKL_INT* info );

void SGEEV( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* wr, float* wi, float* vl,
            const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void SGEEV_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* wr, float* wi, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgeev( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* wr, float* wi, float* vl,
            const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void sgeev_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* wr, float* wi, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr, float* work,
             const MKL_INT* lwork, MKL_INT* info );

void SGEEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* wr, float* wi, float* vl, const MKL_INT* ldvl, float* vr,
             const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi, float* scale,
             float* abnrm, float* rconde, float* rcondv, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void SGEEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* wr, float* wi, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, float* scale, float* abnrm,
              float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void sgeevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* wr, float* wi, float* vl, const MKL_INT* ldvl, float* vr,
             const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi, float* scale,
             float* abnrm, float* rconde, float* rcondv, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sgeevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* wr, float* wi, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, float* scale, float* abnrm,
              float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );

void SGEGS( const char* jobvsl, const char* jobvsr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
            float* alphai, float* beta, float* vsl, const MKL_INT* ldvsl,
            float* vsr, const MKL_INT* ldvsr, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void SGEGS_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* alphar, float* alphai, float* beta, float* vsl,
             const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void sgegs( const char* jobvsl, const char* jobvsr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
            float* alphai, float* beta, float* vsl, const MKL_INT* ldvsl,
            float* vsr, const MKL_INT* ldvsr, float* work,
            const MKL_INT* lwork, MKL_INT* info );
void sgegs_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* alphar, float* alphai, float* beta, float* vsl,
             const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr,
             float* work, const MKL_INT* lwork, MKL_INT* info );

void SGEGV( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
            float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
            float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void SGEGV_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
             float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
             float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgegv( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
            float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
            float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void sgegv_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
             float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
             float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
             MKL_INT* info );

void SGEHD2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* a, const MKL_INT* lda, float* tau, float* work,
             MKL_INT* info );
void SGEHD2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* a, const MKL_INT* lda, float* tau, float* work,
              MKL_INT* info );
void sgehd2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* a, const MKL_INT* lda, float* tau, float* work,
             MKL_INT* info );
void sgehd2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* a, const MKL_INT* lda, float* tau, float* work,
              MKL_INT* info );

void SGEHRD( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* a, const MKL_INT* lda, float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SGEHRD_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* a, const MKL_INT* lda, float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sgehrd( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* a, const MKL_INT* lda, float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgehrd_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* a, const MKL_INT* lda, float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGEJSV( const char* joba, char* jobu, const char* jobv, const char* jobr, const char* jobt,
             const char* jobp, const MKL_INT* m, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* sva, float* u, const MKL_INT* ldu,
             float* v, const MKL_INT* ldv, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void SGEJSV_( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
              const char* jobp, const MKL_INT* m, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* sva, float* u, const MKL_INT* ldu,
              float* v, const MKL_INT* ldv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void sgejsv( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
             const char* jobp, const MKL_INT* m, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* sva, float* u, const MKL_INT* ldu,
             float* v, const MKL_INT* ldv, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void sgejsv_( const char* joba, const char* jobu, const char* jobv, const char* jobr, const char* jobt,
              const char* jobp, const MKL_INT* m, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* sva, float* u, const MKL_INT* ldu,
              float* v, const MKL_INT* ldv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );

void SGELQ2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void SGELQ2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );
void sgelq2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void sgelq2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );

void SGELQF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGELQF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgelqf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgelqf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGELSD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* s, const float* rcond, MKL_INT* rank, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void SGELSD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* s, const float* rcond, MKL_INT* rank, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sgelsd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* s, const float* rcond, MKL_INT* rank, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sgelsd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* s, const float* rcond, MKL_INT* rank, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void SGELS( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
            const MKL_INT* ldb, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void SGELS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgels( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
            const MKL_INT* ldb, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void sgels_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* work, const MKL_INT* lwork,
             MKL_INT* info );

void SGELSS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* s,
             const float* rcond, MKL_INT* rank, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SGELSS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* s, const float* rcond, MKL_INT* rank, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sgelss( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* s,
             const float* rcond, MKL_INT* rank, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgelss_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* s, const float* rcond, MKL_INT* rank, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGELSX( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* jpvt,
             const float* rcond, MKL_INT* rank, float* work, MKL_INT* info );
void SGELSX_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const float* rcond, MKL_INT* rank, float* work,
              MKL_INT* info );
void sgelsx( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* jpvt,
             const float* rcond, MKL_INT* rank, float* work, MKL_INT* info );
void sgelsx_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const float* rcond, MKL_INT* rank, float* work,
              MKL_INT* info );

void SGELSY( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* jpvt,
             const float* rcond, MKL_INT* rank, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SGELSY_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const float* rcond, MKL_INT* rank, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sgelsy( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* jpvt,
             const float* rcond, MKL_INT* rank, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sgelsy_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* jpvt, const float* rcond, MKL_INT* rank, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SGEQL2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void SGEQL2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );
void sgeql2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void sgeql2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );

void SGEQLF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGEQLF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgeqlf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgeqlf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGEQP3( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* jpvt, float* tau, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGEQP3_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* jpvt, float* tau, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sgeqp3( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* jpvt, float* tau, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgeqp3_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* jpvt, float* tau, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SGEQPF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* jpvt, float* tau, float* work, MKL_INT* info );
void SGEQPF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* jpvt, float* tau, float* work, MKL_INT* info );
void sgeqpf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* jpvt, float* tau, float* work, MKL_INT* info );
void sgeqpf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* jpvt, float* tau, float* work, MKL_INT* info );

void SGEQR2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void SGEQR2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );
void sgeqr2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void sgeqr2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );

void SGEQR2P( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );
void SGEQR2P_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
               float* tau, float* work, MKL_INT* info );
void sgeqr2p( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );
void sgeqr2p_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
               float* tau, float* work, MKL_INT* info );

void SGEQRF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGEQRF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgeqrf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgeqrf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGEQRFP( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGEQRFP_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
               float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgeqrfp( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgeqrfp_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
               float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGERFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const float* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void SGERFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const float* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void sgerfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const float* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void sgerfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const float* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );

void SGERFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* r, const float* c, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void SGERFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
               const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const float* r, const float* c, const float* b,
               const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
               float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void sgerfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* r, const float* c, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgerfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
               const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const float* r, const float* c, const float* b,
               const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
               float* berr, const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SGERQ2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void SGERQ2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );
void sgerq2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, MKL_INT* info );
void sgerq2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, MKL_INT* info );

void SGERQF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGERQF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgerqf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void sgerqf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGESC2( const MKL_INT* n, const float* a, const MKL_INT* lda, float* rhs,
             const MKL_INT* ipiv, const MKL_INT* jpiv, float* scale );
void SGESC2_( const MKL_INT* n, const float* a, const MKL_INT* lda, float* rhs,
              const MKL_INT* ipiv, const MKL_INT* jpiv, float* scale );
void sgesc2( const MKL_INT* n, const float* a, const MKL_INT* lda, float* rhs,
             const MKL_INT* ipiv, const MKL_INT* jpiv, float* scale );
void sgesc2_( const MKL_INT* n, const float* a, const MKL_INT* lda, float* rhs,
              const MKL_INT* ipiv, const MKL_INT* jpiv, float* scale );

void SGESDD( const char* jobz, const MKL_INT* m, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* s, float* u, const MKL_INT* ldu,
             float* vt, const MKL_INT* ldvt, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void SGESDD_( const char* jobz, const MKL_INT* m, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* s, float* u, const MKL_INT* ldu,
              float* vt, const MKL_INT* ldvt, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void sgesdd( const char* jobz, const MKL_INT* m, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* s, float* u, const MKL_INT* ldu,
             float* vt, const MKL_INT* ldvt, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void sgesdd_( const char* jobz, const MKL_INT* m, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* s, float* u, const MKL_INT* ldu,
              float* vt, const MKL_INT* ldvt, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void SGESVD( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* s,
             float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void SGESVD_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* s,
              float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sgesvd( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* s,
             float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void sgesvd_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* s,
              float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
              float* work, const MKL_INT* lwork, MKL_INT* info );

void SGESV( const MKL_INT* n, const MKL_INT* nrhs, float* a,
            const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
            MKL_INT* info );
void SGESV_( const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
             MKL_INT* info );
void sgesv( const MKL_INT* n, const MKL_INT* nrhs, float* a,
            const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
            MKL_INT* info );
void sgesv_( const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
             MKL_INT* info );

void SGESVJ( const char* joba, const char* jobu, const char* jobv,
             const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void SGESVJ_( const char* joba, const char* jobu, const char* jobv,
              const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sgesvj( const char* joba, const char* jobu, const char* jobv,
             const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void sgesvj_( const char* joba, const char* jobu, const char* jobv,
              const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
              float* work, const MKL_INT* lwork, MKL_INT* info );

void SGESVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
             const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
             float* c, float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SGESVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
              float* c, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgesvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
             const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
             float* c, float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void sgesvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
              float* c, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SGESVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
              float* c, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void SGESVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
               float* c, float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void sgesvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
              float* c, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgesvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* r,
               float* c, float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SGETC2( const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_INT* jpiv, MKL_INT* info );
void SGETC2_( const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_INT* jpiv, MKL_INT* info );
void sgetc2( const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_INT* jpiv, MKL_INT* info );
void sgetc2_( const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_INT* jpiv, MKL_INT* info );

void SGETF2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void SGETF2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void sgetf2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void sgetf2_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );

void SGETRF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void SGETRF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void sgetrf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void sgetrf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );

void MKL_SGETRFNPI( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    float* a, const MKL_INT* lda, MKL_INT* info );
void MKL_SGETRFNPI_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     float* a, const MKL_INT* lda, MKL_INT* info );
void mkl_sgetrfnpi( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    float* a, const MKL_INT* lda, MKL_INT* info );
void mkl_sgetrfnpi_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     float* a, const MKL_INT* lda, MKL_INT* info );

void SGETRI( const MKL_INT* n, float* a, const MKL_INT* lda,
             const MKL_INT* ipiv, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGETRI_( const MKL_INT* n, float* a, const MKL_INT* lda,
              const MKL_INT* ipiv, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sgetri( const MKL_INT* n, float* a, const MKL_INT* lda,
             const MKL_INT* ipiv, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgetri_( const MKL_INT* n, float* a, const MKL_INT* lda,
              const MKL_INT* ipiv, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SGETRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void SGETRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
              float* b, const MKL_INT* ldb, MKL_INT* info );
void sgetrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void sgetrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
              float* b, const MKL_INT* ldb, MKL_INT* info );

void SGGBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
             const float* rscale, const MKL_INT* m, float* v,
             const MKL_INT* ldv, MKL_INT* info );
void SGGBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
              const float* rscale, const MKL_INT* m, float* v,
              const MKL_INT* ldv, MKL_INT* info );
void sggbak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
             const float* rscale, const MKL_INT* m, float* v,
             const MKL_INT* ldv, MKL_INT* info );
void sggbak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const float* lscale,
              const float* rscale, const MKL_INT* m, float* v,
              const MKL_INT* ldv, MKL_INT* info );

void SGGBAL( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
             float* lscale, float* rscale, float* work, MKL_INT* info );
void SGGBAL_( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
              float* lscale, float* rscale, float* work, MKL_INT* info );
void sggbal( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
             float* lscale, float* rscale, float* work, MKL_INT* info );
void sggbal_( const char* job, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, MKL_INT* ilo, MKL_INT* ihi,
              float* lscale, float* rscale, float* work, MKL_INT* info );

void SGGES( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_S_SELECT_FUNCTION_3 selctg, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* sdim,
            float* alphar, float* alphai, float* beta, float* vsl,
            const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr,
            float* work, const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void SGGES_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_S_SELECT_FUNCTION_3 selctg, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* sdim,
             float* alphar, float* alphai, float* beta, float* vsl,
             const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr,
             float* work, const MKL_INT* lwork, MKL_INT* bwork,
             MKL_INT* info );
void sgges( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_S_SELECT_FUNCTION_3 selctg, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* sdim,
            float* alphar, float* alphai, float* beta, float* vsl,
            const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr,
            float* work, const MKL_INT* lwork, MKL_INT* bwork, MKL_INT* info );
void sgges_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_S_SELECT_FUNCTION_3 selctg, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* sdim,
             float* alphar, float* alphai, float* beta, float* vsl,
             const MKL_INT* ldvsl, float* vsr, const MKL_INT* ldvsr,
             float* work, const MKL_INT* lwork, MKL_INT* bwork,
             MKL_INT* info );

void SGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_S_SELECT_FUNCTION_3 selctg, const char* sense,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, MKL_INT* sdim, float* alphar, float* alphai,
             float* beta, float* vsl, const MKL_INT* ldvsl, float* vsr,
             const MKL_INT* ldvsr, float* rconde, float* rcondv, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* bwork, MKL_INT* info );
void SGGESX_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_S_SELECT_FUNCTION_3 selctg, const char* sense,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, MKL_INT* sdim, float* alphar, float* alphai,
              float* beta, float* vsl, const MKL_INT* ldvsl, float* vsr,
              const MKL_INT* ldvsr, float* rconde, float* rcondv, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* bwork, MKL_INT* info );
void sggesx( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_S_SELECT_FUNCTION_3 selctg, const char* sense,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, MKL_INT* sdim, float* alphar, float* alphai,
             float* beta, float* vsl, const MKL_INT* ldvsl, float* vsr,
             const MKL_INT* ldvsr, float* rconde, float* rcondv, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* bwork, MKL_INT* info );
void sggesx_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_S_SELECT_FUNCTION_3 selctg, const char* sense,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, MKL_INT* sdim, float* alphar, float* alphai,
              float* beta, float* vsl, const MKL_INT* ldvsl, float* vsr,
              const MKL_INT* ldvsr, float* rconde, float* rcondv, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* bwork, MKL_INT* info );

void SGGEV( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
            float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
            float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void SGGEV_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
             float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
             float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sggev( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
            float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
            float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void sggev_( const char* jobvl, const char* jobvr, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
             float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
             float* vr, const MKL_INT* ldvr, float* work, const MKL_INT* lwork,
             MKL_INT* info );

void SGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, float* alphar, float* alphai,
             float* beta, float* vl, const MKL_INT* ldvl, float* vr,
             const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi, float* lscale,
             float* rscale, float* abnrm, float* bbnrm, float* rconde,
             float* rcondv, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* bwork, MKL_INT* info );
void SGGEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
              float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
              float* vr, const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi,
              float* lscale, float* rscale, float* abnrm, float* bbnrm,
              float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void sggevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, float* alphar, float* alphai,
             float* beta, float* vl, const MKL_INT* ldvl, float* vr,
             const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi, float* lscale,
             float* rscale, float* abnrm, float* bbnrm, float* rconde,
             float* rcondv, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* bwork, MKL_INT* info );
void sggevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
              float* alphai, float* beta, float* vl, const MKL_INT* ldvl,
              float* vr, const MKL_INT* ldvr, MKL_INT* ilo, MKL_INT* ihi,
              float* lscale, float* rscale, float* abnrm, float* bbnrm,
              float* rconde, float* rcondv, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );

void SGGGLM( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* d,
             float* x, float* y, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGGGLM_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* d,
              float* x, float* y, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sggglm( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* d,
             float* x, float* y, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sggglm_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* d,
              float* x, float* y, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SGGHRD( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* q,
             const MKL_INT* ldq, float* z, const MKL_INT* ldz, MKL_INT* info );
void SGGHRD_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* q,
              const MKL_INT* ldq, float* z, const MKL_INT* ldz,
              MKL_INT* info );
void sgghrd( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* q,
             const MKL_INT* ldq, float* z, const MKL_INT* ldz, MKL_INT* info );
void sgghrd_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* q,
              const MKL_INT* ldq, float* z, const MKL_INT* ldz,
              MKL_INT* info );

void SGGLSE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* c,
             float* d, float* x, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGGLSE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* c,
              float* d, float* x, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sgglse( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* c,
             float* d, float* x, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgglse_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* c,
              float* d, float* x, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SGGQRF( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
             const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
             float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGGQRF_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
              const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
              float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );
void sggqrf( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
             const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
             float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );
void sggqrf_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p, float* a,
              const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
              float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGGRQF( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
             float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );
void SGGRQF_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
              float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );
void sggrqf( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
             float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );
void sggrqf_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* taua, float* b, const MKL_INT* ldb,
              float* taub, float* work, const MKL_INT* lwork, MKL_INT* info );

void SGGSVD( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* alpha, float* beta, float* u,
             const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
             const MKL_INT* ldq, float* work, MKL_INT* iwork, MKL_INT* info );
void SGGSVD_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* alpha, float* beta, float* u,
              const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
              const MKL_INT* ldq, float* work, MKL_INT* iwork, MKL_INT* info );
void sggsvd( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* alpha, float* beta, float* u,
             const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
             const MKL_INT* ldq, float* work, MKL_INT* iwork, MKL_INT* info );
void sggsvd_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* alpha, float* beta, float* u,
              const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
              const MKL_INT* ldq, float* work, MKL_INT* iwork, MKL_INT* info );

void SGGSVP( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb,
             const float* tola, const float* tolb, MKL_INT* k, MKL_INT* l,
             float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
             float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau,
             float* work, MKL_INT* info );
void SGGSVP_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb,
              const float* tola, const float* tolb, MKL_INT* k, MKL_INT* l,
              float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
              float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau,
              float* work, MKL_INT* info );
void sggsvp( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb,
             const float* tola, const float* tolb, MKL_INT* k, MKL_INT* l,
             float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
             float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau,
             float* work, MKL_INT* info );
void sggsvp_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb,
              const float* tola, const float* tolb, MKL_INT* k, MKL_INT* l,
              float* u, const MKL_INT* ldu, float* v, const MKL_INT* ldv,
              float* q, const MKL_INT* ldq, MKL_INT* iwork, float* tau,
              float* work, MKL_INT* info );

void SGSVJ0( const char* jobv, const MKL_INT* m, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* d, float* sva, const MKL_INT* mv,
             float* v, const MKL_INT* ldv, const float* eps,
             const float* sfmin, const float* tol, const MKL_INT* nsweep,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void SGSVJ0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* d, float* sva, const MKL_INT* mv,
              float* v, const MKL_INT* ldv, const float* eps,
              const float* sfmin, const float* tol, const MKL_INT* nsweep,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sgsvj0( const char* jobv, const MKL_INT* m, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* d, float* sva, const MKL_INT* mv,
             float* v, const MKL_INT* ldv, const float* eps,
             const float* sfmin, const float* tol, const MKL_INT* nsweep,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void sgsvj0_( const char* jobv, const MKL_INT* m, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* d, float* sva, const MKL_INT* mv,
              float* v, const MKL_INT* ldv, const float* eps,
              const float* sfmin, const float* tol, const MKL_INT* nsweep,
              float* work, const MKL_INT* lwork, MKL_INT* info );

void SGSVJ1( const char* jobv, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, float* a, const MKL_INT* lda, float* d,
             float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
             const float* eps, const float* sfmin, const float* tol,
             const MKL_INT* nsweep, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SGSVJ1_( const char* jobv, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, float* a, const MKL_INT* lda, float* d,
              float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
              const float* eps, const float* sfmin, const float* tol,
              const MKL_INT* nsweep, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sgsvj1( const char* jobv, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* n1, float* a, const MKL_INT* lda, float* d,
             float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
             const float* eps, const float* sfmin, const float* tol,
             const MKL_INT* nsweep, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sgsvj1_( const char* jobv, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* n1, float* a, const MKL_INT* lda, float* d,
              float* sva, const MKL_INT* mv, float* v, const MKL_INT* ldv,
              const float* eps, const float* sfmin, const float* tol,
              const MKL_INT* nsweep, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SGTCON( const char* norm, const MKL_INT* n, const float* dl,
             const float* d, const float* du, const float* du2,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SGTCON_( const char* norm, const MKL_INT* n, const float* dl,
              const float* d, const float* du, const float* du2,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgtcon( const char* norm, const MKL_INT* n, const float* dl,
             const float* d, const float* du, const float* du2,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             float* work, MKL_INT* iwork, MKL_INT* info );
void sgtcon_( const char* norm, const MKL_INT* n, const float* dl,
              const float* d, const float* du, const float* du2,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SGTRFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* dl, const float* d, const float* du,
             const float* dlf, const float* df, const float* duf,
             const float* du2, const MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void SGTRFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du,
              const float* dlf, const float* df, const float* duf,
              const float* du2, const MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void sgtrfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* dl, const float* d, const float* du,
             const float* dlf, const float* df, const float* duf,
             const float* du2, const MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void sgtrfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du,
              const float* dlf, const float* df, const float* duf,
              const float* du2, const MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );

void SGTSV( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
            float* du, float* b, const MKL_INT* ldb, MKL_INT* info );
void SGTSV_( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
             float* du, float* b, const MKL_INT* ldb, MKL_INT* info );
void sgtsv( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
            float* du, float* b, const MKL_INT* ldb, MKL_INT* info );
void sgtsv_( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
             float* du, float* b, const MKL_INT* ldb, MKL_INT* info );

void SGTSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const float* dl, const float* d,
             const float* du, float* dlf, float* df, float* duf, float* du2,
             MKL_INT* ipiv, const float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SGTSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const float* dl, const float* d,
              const float* du, float* dlf, float* df, float* duf, float* du2,
              MKL_INT* ipiv, const float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sgtsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const float* dl, const float* d,
             const float* du, float* dlf, float* df, float* duf, float* du2,
             MKL_INT* ipiv, const float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void sgtsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const float* dl, const float* d,
              const float* du, float* dlf, float* df, float* duf, float* du2,
              MKL_INT* ipiv, const float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SGTTRF( const MKL_INT* n, float* dl, float* d, float* du, float* du2,
             MKL_INT* ipiv, MKL_INT* info );
void SGTTRF_( const MKL_INT* n, float* dl, float* d, float* du, float* du2,
              MKL_INT* ipiv, MKL_INT* info );
void sgttrf( const MKL_INT* n, float* dl, float* d, float* du, float* du2,
             MKL_INT* ipiv, MKL_INT* info );
void sgttrf_( const MKL_INT* n, float* dl, float* d, float* du, float* du2,
              MKL_INT* ipiv, MKL_INT* info );

void SGTTRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* dl, const float* d, const float* du,
             const float* du2, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void SGTTRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du,
              const float* du2, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void sgttrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* dl, const float* d, const float* du,
             const float* du2, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void sgttrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du,
              const float* du2, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb, MKL_INT* info );

void SGTTS2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* dl, const float* d, const float* du,
             const float* du2, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb );
void SGTTS2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du,
              const float* du2, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb );
void sgtts2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* dl, const float* d, const float* du,
             const float* du2, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb );
void sgtts2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du,
              const float* du2, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb );

void SHGEQZ( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* h, const MKL_INT* ldh, float* t, const MKL_INT* ldt,
             float* alphar, float* alphai, float* beta, float* q,
             const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SHGEQZ_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* h, const MKL_INT* ldh, float* t, const MKL_INT* ldt,
              float* alphar, float* alphai, float* beta, float* q,
              const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void shgeqz( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* h, const MKL_INT* ldh, float* t, const MKL_INT* ldt,
             float* alphar, float* alphai, float* beta, float* q,
             const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void shgeqz_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* h, const MKL_INT* ldh, float* t, const MKL_INT* ldt,
              float* alphar, float* alphai, float* beta, float* q,
              const MKL_INT* ldq, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SHSEIN( const char* side, const char* eigsrc, const char* initv,
             MKL_INT* select, const MKL_INT* n, const float* h,
             const MKL_INT* ldh, float* wr, const float* wi, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* ifaill,
             MKL_INT* ifailr, MKL_INT* info );
void SHSEIN_( const char* side, const char* eigsrc, const char* initv,
              MKL_INT* select, const MKL_INT* n, const float* h,
              const MKL_INT* ldh, float* wr, const float* wi, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* ifaill,
              MKL_INT* ifailr, MKL_INT* info );
void shsein( const char* side, const char* eigsrc, const char* initv,
             MKL_INT* select, const MKL_INT* n, const float* h,
             const MKL_INT* ldh, float* wr, const float* wi, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* ifaill,
             MKL_INT* ifailr, MKL_INT* info );
void shsein_( const char* side, const char* eigsrc, const char* initv,
              MKL_INT* select, const MKL_INT* n, const float* h,
              const MKL_INT* ldh, float* wr, const float* wi, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* ifaill,
              MKL_INT* ifailr, MKL_INT* info );

void SHSEQR( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SHSEQR_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void shseqr( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void shseqr_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* info );

MKL_INT SISNAN( const float* sin );
MKL_INT SISNAN_( const float* sin );
MKL_INT sisnan( const float* sin );
MKL_INT sisnan_( const float* sin );

void SLABAD( float* smallx, float* large );
void SLABAD_( float* smallx, float* large );
void slabad( float* smallx, float* large );
void slabad_( float* smallx, float* large );

void SLABRD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* d, float* e, float* tauq, float* taup,
             float* x, const MKL_INT* ldx, float* y, const MKL_INT* ldy );
void SLABRD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* d, float* e, float* tauq, float* taup,
              float* x, const MKL_INT* ldx, float* y, const MKL_INT* ldy );
void slabrd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* d, float* e, float* tauq, float* taup,
             float* x, const MKL_INT* ldx, float* y, const MKL_INT* ldy );
void slabrd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* d, float* e, float* tauq, float* taup,
              float* x, const MKL_INT* ldx, float* y, const MKL_INT* ldy );

void SLACN2( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
             MKL_INT* kase, MKL_INT* isave );
void SLACN2_( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
              MKL_INT* kase, MKL_INT* isave );
void slacn2( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
             MKL_INT* kase, MKL_INT* isave );
void slacn2_( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
              MKL_INT* kase, MKL_INT* isave );

void SLACON( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
             MKL_INT* kase );
void SLACON_( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
              MKL_INT* kase );
void slacon( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
             MKL_INT* kase );
void slacon_( const MKL_INT* n, float* v, float* x, MKL_INT* isgn, float* est,
              MKL_INT* kase );

void SLACPY( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb );
void SLACPY_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb );
void slacpy( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb );
void slacpy_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb );

void SLADIV( const float* a, const float* b, const float* c, const float* d,
             float* p, float* q );
void SLADIV_( const float* a, const float* b, const float* c, const float* d,
              float* p, float* q );
void sladiv( const float* a, const float* b, const float* c, const float* d,
             float* p, float* q );
void sladiv_( const float* a, const float* b, const float* c, const float* d,
              float* p, float* q );

void SLAE2( const float* a, const float* b, const float* c, float* rt1,
            float* rt2 );
void SLAE2_( const float* a, const float* b, const float* c, float* rt1,
             float* rt2 );
void slae2( const float* a, const float* b, const float* c, float* rt1,
            float* rt2 );
void slae2_( const float* a, const float* b, const float* c, float* rt1,
             float* rt2 );

void SLAEBZ( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
             const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
             const float* abstol, const float* reltol, const float* pivmin,
             const float* d, const float* e, const float* e2, MKL_INT* nval,
             float* ab, float* c, MKL_INT* mout, MKL_INT* nab, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SLAEBZ_( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
              const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
              const float* abstol, const float* reltol, const float* pivmin,
              const float* d, const float* e, const float* e2, MKL_INT* nval,
              float* ab, float* c, MKL_INT* mout, MKL_INT* nab, float* work,
              MKL_INT* iwork, MKL_INT* info );
void slaebz( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
             const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
             const float* abstol, const float* reltol, const float* pivmin,
             const float* d, const float* e, const float* e2, MKL_INT* nval,
             float* ab, float* c, MKL_INT* mout, MKL_INT* nab, float* work,
             MKL_INT* iwork, MKL_INT* info );
void slaebz_( const MKL_INT* ijob, const MKL_INT* nitmax, const MKL_INT* n,
              const MKL_INT* mmax, const MKL_INT* minp, const MKL_INT* nbmin,
              const float* abstol, const float* reltol, const float* pivmin,
              const float* d, const float* e, const float* e2, MKL_INT* nval,
              float* ab, float* c, MKL_INT* mout, MKL_INT* nab, float* work,
              MKL_INT* iwork, MKL_INT* info );

void SLAED0( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
             float* d, const float* e, float* q, const MKL_INT* ldq,
             float* qstore, const MKL_INT* ldqs, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SLAED0_( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
              float* d, const float* e, float* q, const MKL_INT* ldq,
              float* qstore, const MKL_INT* ldqs, float* work, MKL_INT* iwork,
              MKL_INT* info );
void slaed0( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
             float* d, const float* e, float* q, const MKL_INT* ldq,
             float* qstore, const MKL_INT* ldqs, float* work, MKL_INT* iwork,
             MKL_INT* info );
void slaed0_( const MKL_INT* icompq, const MKL_INT* qsiz, const MKL_INT* n,
              float* d, const float* e, float* q, const MKL_INT* ldq,
              float* qstore, const MKL_INT* ldqs, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SLAED1( const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
             MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SLAED1_( const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
              MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
              float* work, MKL_INT* iwork, MKL_INT* info );
void slaed1( const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
             MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
             float* work, MKL_INT* iwork, MKL_INT* info );
void slaed1_( const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
              MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SLAED2( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
             float* q, const MKL_INT* ldq, MKL_INT* indxq, float* rho,
             const float* z, float* dlamda, float* w, float* q2, MKL_INT* indx,
             MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp, MKL_INT* info );
void SLAED2_( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
              float* q, const MKL_INT* ldq, MKL_INT* indxq, float* rho,
              const float* z, float* dlamda, float* w, float* q2,
              MKL_INT* indx, MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp,
              MKL_INT* info );
void slaed2( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
             float* q, const MKL_INT* ldq, MKL_INT* indxq, float* rho,
             const float* z, float* dlamda, float* w, float* q2, MKL_INT* indx,
             MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp, MKL_INT* info );
void slaed2_( MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
              float* q, const MKL_INT* ldq, MKL_INT* indxq, float* rho,
              const float* z, float* dlamda, float* w, float* q2,
              MKL_INT* indx, MKL_INT* indxc, MKL_INT* indxp, MKL_INT* coltyp,
              MKL_INT* info );

void SLAED3( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
             float* q, const MKL_INT* ldq, const float* rho, float* dlamda,
             const float* q2, const MKL_INT* indx, const MKL_INT* ctot,
             float* w, float* s, MKL_INT* info );
void SLAED3_( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
              float* q, const MKL_INT* ldq, const float* rho, float* dlamda,
              const float* q2, const MKL_INT* indx, const MKL_INT* ctot,
              float* w, float* s, MKL_INT* info );
void slaed3( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
             float* q, const MKL_INT* ldq, const float* rho, float* dlamda,
             const float* q2, const MKL_INT* indx, const MKL_INT* ctot,
             float* w, float* s, MKL_INT* info );
void slaed3_( const MKL_INT* k, const MKL_INT* n, const MKL_INT* n1, float* d,
              float* q, const MKL_INT* ldq, const float* rho, float* dlamda,
              const float* q2, const MKL_INT* indx, const MKL_INT* ctot,
              float* w, float* s, MKL_INT* info );

void SLAED4( const MKL_INT* n, const MKL_INT* i, const float* d,
             const float* z, float* delta, const float* rho, float* dlam,
             MKL_INT* info );
void SLAED4_( const MKL_INT* n, const MKL_INT* i, const float* d,
              const float* z, float* delta, const float* rho, float* dlam,
              MKL_INT* info );
void slaed4( const MKL_INT* n, const MKL_INT* i, const float* d,
             const float* z, float* delta, const float* rho, float* dlam,
             MKL_INT* info );
void slaed4_( const MKL_INT* n, const MKL_INT* i, const float* d,
              const float* z, float* delta, const float* rho, float* dlam,
              MKL_INT* info );

void SLAED5( const MKL_INT* i, const float* d, const float* z, float* delta,
             const float* rho, float* dlam );
void SLAED5_( const MKL_INT* i, const float* d, const float* z, float* delta,
              const float* rho, float* dlam );
void slaed5( const MKL_INT* i, const float* d, const float* z, float* delta,
             const float* rho, float* dlam );
void slaed5_( const MKL_INT* i, const float* d, const float* z, float* delta,
              const float* rho, float* dlam );

void SLAED6( const MKL_INT* kniter, const MKL_INT* orgati, const float* rho,
             const float* d, const float* z, const float* finit, float* tau,
             MKL_INT* info );
void SLAED6_( const MKL_INT* kniter, const MKL_INT* orgati, const float* rho,
              const float* d, const float* z, const float* finit, float* tau,
              MKL_INT* info );
void slaed6( const MKL_INT* kniter, const MKL_INT* orgati, const float* rho,
             const float* d, const float* z, const float* finit, float* tau,
             MKL_INT* info );
void slaed6_( const MKL_INT* kniter, const MKL_INT* orgati, const float* rho,
              const float* d, const float* z, const float* finit, float* tau,
              MKL_INT* info );

void SLAED7( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, float* d, float* q, const MKL_INT* ldq,
             MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
             float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const float* givnum, float* work, MKL_INT* iwork, MKL_INT* info );
void SLAED7_( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, float* d, float* q, const MKL_INT* ldq,
              MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
              float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const float* givnum, float* work,
              MKL_INT* iwork, MKL_INT* info );
void slaed7( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, float* d, float* q, const MKL_INT* ldq,
             MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
             float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const float* givnum, float* work, MKL_INT* iwork, MKL_INT* info );
void slaed7_( const MKL_INT* icompq, const MKL_INT* n, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, float* d, float* q, const MKL_INT* ldq,
              MKL_INT* indxq, const float* rho, const MKL_INT* cutpnt,
              float* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const float* givnum, float* work,
              MKL_INT* iwork, MKL_INT* info );

void SLAED8( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
             const MKL_INT* qsiz, float* d, float* q, const MKL_INT* ldq,
             const MKL_INT* indxq, float* rho, const MKL_INT* cutpnt,
             const float* z, float* dlamda, float* q2, const MKL_INT* ldq2,
             float* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
             float* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );
void SLAED8_( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
              const MKL_INT* qsiz, float* d, float* q, const MKL_INT* ldq,
              const MKL_INT* indxq, float* rho, const MKL_INT* cutpnt,
              const float* z, float* dlamda, float* q2, const MKL_INT* ldq2,
              float* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
              float* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );
void slaed8( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
             const MKL_INT* qsiz, float* d, float* q, const MKL_INT* ldq,
             const MKL_INT* indxq, float* rho, const MKL_INT* cutpnt,
             const float* z, float* dlamda, float* q2, const MKL_INT* ldq2,
             float* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
             float* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );
void slaed8_( const MKL_INT* icompq, MKL_INT* k, const MKL_INT* n,
              const MKL_INT* qsiz, float* d, float* q, const MKL_INT* ldq,
              const MKL_INT* indxq, float* rho, const MKL_INT* cutpnt,
              const float* z, float* dlamda, float* q2, const MKL_INT* ldq2,
              float* w, MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol,
              float* givnum, MKL_INT* indxp, MKL_INT* indx, MKL_INT* info );

void SLAED9( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
             const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
             const float* rho, const float* dlamda, const float* w, float* s,
             const MKL_INT* lds, MKL_INT* info );
void SLAED9_( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
              const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
              const float* rho, const float* dlamda, const float* w, float* s,
              const MKL_INT* lds, MKL_INT* info );
void slaed9( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
             const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
             const float* rho, const float* dlamda, const float* w, float* s,
             const MKL_INT* lds, MKL_INT* info );
void slaed9_( const MKL_INT* k, const MKL_INT* kstart, const MKL_INT* kstop,
              const MKL_INT* n, float* d, float* q, const MKL_INT* ldq,
              const float* rho, const float* dlamda, const float* w, float* s,
              const MKL_INT* lds, MKL_INT* info );

void SLAEDA( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, const MKL_INT* prmptr, const MKL_INT* perm,
             const MKL_INT* givptr, const MKL_INT* givcol, const float* givnum,
             const float* q, const MKL_INT* qptr, float* z, float* ztemp,
             MKL_INT* info );
void SLAEDA_( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const float* givnum, const float* q,
              const MKL_INT* qptr, float* z, float* ztemp, MKL_INT* info );
void slaeda( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, const MKL_INT* prmptr, const MKL_INT* perm,
             const MKL_INT* givptr, const MKL_INT* givcol, const float* givnum,
             const float* q, const MKL_INT* qptr, float* z, float* ztemp,
             MKL_INT* info );
void slaeda_( const MKL_INT* n, const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const float* givnum, const float* q,
              const MKL_INT* qptr, float* z, float* ztemp, MKL_INT* info );

void SLAEIN( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const float* h, const MKL_INT* ldh, const float* wr,
             const float* wi, float* vr, float* vi, float* b,
             const MKL_INT* ldb, float* work, const float* eps3,
             const float* smlnum, const float* bignum, MKL_INT* info );
void SLAEIN_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const float* h, const MKL_INT* ldh, const float* wr,
              const float* wi, float* vr, float* vi, float* b,
              const MKL_INT* ldb, float* work, const float* eps3,
              const float* smlnum, const float* bignum, MKL_INT* info );
void slaein( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const float* h, const MKL_INT* ldh, const float* wr,
             const float* wi, float* vr, float* vi, float* b,
             const MKL_INT* ldb, float* work, const float* eps3,
             const float* smlnum, const float* bignum, MKL_INT* info );
void slaein_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const float* h, const MKL_INT* ldh, const float* wr,
              const float* wi, float* vr, float* vi, float* b,
              const MKL_INT* ldb, float* work, const float* eps3,
              const float* smlnum, const float* bignum, MKL_INT* info );

void SLAEV2( const float* a, const float* b, const float* c, float* rt1,
             float* rt2, float* cs1, float* sn1 );
void SLAEV2_( const float* a, const float* b, const float* c, float* rt1,
              float* rt2, float* cs1, float* sn1 );
void slaev2( const float* a, const float* b, const float* c, float* rt1,
             float* rt2, float* cs1, float* sn1 );
void slaev2_( const float* a, const float* b, const float* c, float* rt1,
              float* rt2, float* cs1, float* sn1 );

void SLAEXC( const MKL_INT* wantq, const MKL_INT* n, float* t,
             const MKL_INT* ldt, float* q, const MKL_INT* ldq,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             float* work, MKL_INT* info );
void SLAEXC_( const MKL_INT* wantq, const MKL_INT* n, float* t,
              const MKL_INT* ldt, float* q, const MKL_INT* ldq,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              float* work, MKL_INT* info );
void slaexc( const MKL_INT* wantq, const MKL_INT* n, float* t,
             const MKL_INT* ldt, float* q, const MKL_INT* ldq,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             float* work, MKL_INT* info );
void slaexc_( const MKL_INT* wantq, const MKL_INT* n, float* t,
              const MKL_INT* ldt, float* q, const MKL_INT* ldq,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              float* work, MKL_INT* info );

void SLAG2D( const MKL_INT* m, const MKL_INT* n, const float* sa,
             const MKL_INT* ldsa, double* a, const MKL_INT* lda,
             MKL_INT* info );
void SLAG2D_( const MKL_INT* m, const MKL_INT* n, const float* sa,
              const MKL_INT* ldsa, double* a, const MKL_INT* lda,
              MKL_INT* info );
void slag2d( const MKL_INT* m, const MKL_INT* n, const float* sa,
             const MKL_INT* ldsa, double* a, const MKL_INT* lda,
             MKL_INT* info );
void slag2d_( const MKL_INT* m, const MKL_INT* n, const float* sa,
              const MKL_INT* ldsa, double* a, const MKL_INT* lda,
              MKL_INT* info );

void SLAG2( const float* a, const MKL_INT* lda, const float* b,
            const MKL_INT* ldb, const float* safmin, float* scale1,
            float* scale2, float* wr1, float* wr2, float* wi );
void SLAG2_( const float* a, const MKL_INT* lda, const float* b,
             const MKL_INT* ldb, const float* safmin, float* scale1,
             float* scale2, float* wr1, float* wr2, float* wi );
void slag2( const float* a, const MKL_INT* lda, const float* b,
            const MKL_INT* ldb, const float* safmin, float* scale1,
            float* scale2, float* wr1, float* wr2, float* wi );
void slag2_( const float* a, const MKL_INT* lda, const float* b,
             const MKL_INT* ldb, const float* safmin, float* scale1,
             float* scale2, float* wr1, float* wr2, float* wi );

void SLAGS2( const MKL_INT* upper, const float* a1, const float* a2,
             const float* a3, const float* b1, const float* b2,
             const float* b3, float* csu, float* snu, float* csv, float* snv,
             float* csq, float* snq );
void SLAGS2_( const MKL_INT* upper, const float* a1, const float* a2,
              const float* a3, const float* b1, const float* b2,
              const float* b3, float* csu, float* snu, float* csv, float* snv,
              float* csq, float* snq );
void slags2( const MKL_INT* upper, const float* a1, const float* a2,
             const float* a3, const float* b1, const float* b2,
             const float* b3, float* csu, float* snu, float* csv, float* snv,
             float* csq, float* snq );
void slags2_( const MKL_INT* upper, const float* a1, const float* a2,
              const float* a3, const float* b1, const float* b2,
              const float* b3, float* csu, float* snu, float* csv, float* snv,
              float* csq, float* snq );

void SLAGTF( const MKL_INT* n, float* a, const float* lambda, float* b,
             float* c, const float* tol, float* d, MKL_INT* in,
             MKL_INT* info );
void SLAGTF_( const MKL_INT* n, float* a, const float* lambda, float* b,
              float* c, const float* tol, float* d, MKL_INT* in,
              MKL_INT* info );
void slagtf( const MKL_INT* n, float* a, const float* lambda, float* b,
             float* c, const float* tol, float* d, MKL_INT* in,
             MKL_INT* info );
void slagtf_( const MKL_INT* n, float* a, const float* lambda, float* b,
              float* c, const float* tol, float* d, MKL_INT* in,
              MKL_INT* info );

void SLAGTM( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* alpha, const float* dl, const float* d,
             const float* du, const float* x, const MKL_INT* ldx,
             const float* beta, float* b, const MKL_INT* ldb );
void SLAGTM_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* alpha, const float* dl, const float* d,
              const float* du, const float* x, const MKL_INT* ldx,
              const float* beta, float* b, const MKL_INT* ldb );
void slagtm( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const float* alpha, const float* dl, const float* d,
             const float* du, const float* x, const MKL_INT* ldx,
             const float* beta, float* b, const MKL_INT* ldb );
void slagtm_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* alpha, const float* dl, const float* d,
              const float* du, const float* x, const MKL_INT* ldx,
              const float* beta, float* b, const MKL_INT* ldb );

void SLAGTS( const MKL_INT* job, const MKL_INT* n, const float* a,
             const float* b, const float* c, const float* d, const MKL_INT* in,
             float* y, float* tol, MKL_INT* info );
void SLAGTS_( const MKL_INT* job, const MKL_INT* n, const float* a,
              const float* b, const float* c, const float* d,
              const MKL_INT* in, float* y, float* tol, MKL_INT* info );
void slagts( const MKL_INT* job, const MKL_INT* n, const float* a,
             const float* b, const float* c, const float* d, const MKL_INT* in,
             float* y, float* tol, MKL_INT* info );
void slagts_( const MKL_INT* job, const MKL_INT* n, const float* a,
              const float* b, const float* c, const float* d,
              const MKL_INT* in, float* y, float* tol, MKL_INT* info );

void SLAGV2( float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* alphar, float* alphai, float* beta, float* csl, float* snl,
             float* csr, float* snr );
void SLAGV2_( float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* alphar, float* alphai, float* beta, float* csl,
              float* snl, float* csr, float* snr );
void slagv2( float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* alphar, float* alphai, float* beta, float* csl, float* snl,
             float* csr, float* snr );
void slagv2_( float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* alphar, float* alphai, float* beta, float* csl,
              float* snl, float* csr, float* snr );

void SLAHQR( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz,
             MKL_INT* info );
void SLAHQR_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz,
              MKL_INT* info );
void slahqr( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz,
             MKL_INT* info );
void slahqr_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz,
              MKL_INT* info );

void SLAHR2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
             float* y, const MKL_INT* ldy );
void SLAHR2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
              float* y, const MKL_INT* ldy );
void slahr2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
             float* y, const MKL_INT* ldy );
void slahr2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
              float* y, const MKL_INT* ldy );

void SLAHRD( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
             float* y, const MKL_INT* ldy );
void SLAHRD_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
              float* y, const MKL_INT* ldy );
void slahrd( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
             float* y, const MKL_INT* ldy );
void slahrd_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* tau, float* t, const MKL_INT* ldt,
              float* y, const MKL_INT* ldy );

void SLAIC1( const MKL_INT* job, const MKL_INT* j, const float* x,
             const float* sest, const float* w, const float* gamma,
             float* sestpr, float* s, float* c );
void SLAIC1_( const MKL_INT* job, const MKL_INT* j, const float* x,
              const float* sest, const float* w, const float* gamma,
              float* sestpr, float* s, float* c );
void slaic1( const MKL_INT* job, const MKL_INT* j, const float* x,
             const float* sest, const float* w, const float* gamma,
             float* sestpr, float* s, float* c );
void slaic1_( const MKL_INT* job, const MKL_INT* j, const float* x,
              const float* sest, const float* w, const float* gamma,
              float* sestpr, float* s, float* c );

MKL_INT SLAISNAN( const float* sin1, const float* sin2 );
MKL_INT SLAISNAN_( const float* sin1, const float* sin2 );
MKL_INT slaisnan( const float* sin1, const float* sin2 );
MKL_INT slaisnan_( const float* sin1, const float* sin2 );

void SLALN2( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
             const float* smin, const float* ca, const float* a,
             const MKL_INT* lda, const float* d1, const float* d2,
             const float* b, const MKL_INT* ldb, const float* wr,
             const float* wi, float* x, const MKL_INT* ldx, float* scale,
             float* xnorm, MKL_INT* info );
void SLALN2_( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
              const float* smin, const float* ca, const float* a,
              const MKL_INT* lda, const float* d1, const float* d2,
              const float* b, const MKL_INT* ldb, const float* wr,
              const float* wi, float* x, const MKL_INT* ldx, float* scale,
              float* xnorm, MKL_INT* info );
void slaln2( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
             const float* smin, const float* ca, const float* a,
             const MKL_INT* lda, const float* d1, const float* d2,
             const float* b, const MKL_INT* ldb, const float* wr,
             const float* wi, float* x, const MKL_INT* ldx, float* scale,
             float* xnorm, MKL_INT* info );
void slaln2_( const MKL_INT* ltrans, const MKL_INT* na, const MKL_INT* nw,
              const float* smin, const float* ca, const float* a,
              const MKL_INT* lda, const float* d1, const float* d2,
              const float* b, const MKL_INT* ldb, const float* wr,
              const float* wi, float* x, const MKL_INT* ldx, float* scale,
              float* xnorm, MKL_INT* info );

void SLALS0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, float* b,
             const MKL_INT* ldb, float* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const float* givnum, const MKL_INT* ldgnum,
             const float* poles, const float* difl, const float* difr,
             const float* z, const MKL_INT* k, const float* c, const float* s,
             float* work, MKL_INT* info );
void SLALS0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, float* b,
              const MKL_INT* ldb, float* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const float* givnum, const MKL_INT* ldgnum, const float* poles,
              const float* difl, const float* difr, const float* z,
              const MKL_INT* k, const float* c, const float* s, float* work,
              MKL_INT* info );
void slals0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, float* b,
             const MKL_INT* ldb, float* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const float* givnum, const MKL_INT* ldgnum,
             const float* poles, const float* difl, const float* difr,
             const float* z, const MKL_INT* k, const float* c, const float* s,
             float* work, MKL_INT* info );
void slals0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, float* b,
              const MKL_INT* ldb, float* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const float* givnum, const MKL_INT* ldgnum, const float* poles,
              const float* difl, const float* difr, const float* z,
              const MKL_INT* k, const float* c, const float* s, float* work,
              MKL_INT* info );

void SLALSA( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, float* b, const MKL_INT* ldb, float* bx,
             const MKL_INT* ldbx, const float* u, const MKL_INT* ldu,
             const float* vt, const MKL_INT* k, const float* difl,
             const float* difr, const float* z, const float* poles,
             const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
             const float* c, const float* s, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SLALSA_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, float* b, const MKL_INT* ldb, float* bx,
              const MKL_INT* ldbx, const float* u, const MKL_INT* ldu,
              const float* vt, const MKL_INT* k, const float* difl,
              const float* difr, const float* z, const float* poles,
              const MKL_INT* givptr, const MKL_INT* givcol,
              const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
              const float* c, const float* s, float* work, MKL_INT* iwork,
              MKL_INT* info );
void slalsa( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, float* b, const MKL_INT* ldb, float* bx,
             const MKL_INT* ldbx, const float* u, const MKL_INT* ldu,
             const float* vt, const MKL_INT* k, const float* difl,
             const float* difr, const float* z, const float* poles,
             const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
             const float* c, const float* s, float* work, MKL_INT* iwork,
             MKL_INT* info );
void slalsa_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, float* b, const MKL_INT* ldb, float* bx,
              const MKL_INT* ldbx, const float* u, const MKL_INT* ldu,
              const float* vt, const MKL_INT* k, const float* difl,
              const float* difr, const float* z, const float* poles,
              const MKL_INT* givptr, const MKL_INT* givcol,
              const MKL_INT* ldgcol, const MKL_INT* perm, const float* givnum,
              const float* c, const float* s, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SLALSD( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, float* d, float* e, float* b,
             const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SLALSD_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, float* d, float* e, float* b,
              const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
              float* work, MKL_INT* iwork, MKL_INT* info );
void slalsd( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, float* d, float* e, float* b,
             const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
             float* work, MKL_INT* iwork, MKL_INT* info );
void slalsd_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, float* d, float* e, float* b,
              const MKL_INT* ldb, const float* rcond, MKL_INT* rank,
              float* work, MKL_INT* iwork, MKL_INT* info );

float SLAMCH( const char* cmach );
float SLAMCH_( const char* cmach );
float slamch( const char* cmach );
float slamch_( const char* cmach );

void SLAMC1( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );
void SLAMC1_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );
void slamc1( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );
void slamc1_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, MKL_INT* ieee1 );

void SLAMC2( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, float* eps,
             MKL_INT* emin, float* rmin, MKL_INT* emax, float* rmax );
void SLAMC2_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, float* eps,
              MKL_INT* emin, float* rmin, MKL_INT* emax, float* rmax );
void slamc2( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, float* eps,
             MKL_INT* emin, float* rmin, MKL_INT* emax, float* rmax );
void slamc2_( MKL_INT* beta, MKL_INT* t, MKL_INT* rnd, float* eps,
              MKL_INT* emin, float* rmin, MKL_INT* emax, float* rmax );

float SLAMC3( const float* a, const float* b );
float SLAMC3_( const float* a, const float* b );
float slamc3( const float* a, const float* b );
float slamc3_( const float* a, const float* b );

void SLAMC4( MKL_INT* emin, const float* start, const MKL_INT* base );
void SLAMC4_( MKL_INT* emin, const float* start, const MKL_INT* base );
void slamc4( MKL_INT* emin, const float* start, const MKL_INT* base );
void slamc4_( MKL_INT* emin, const float* start, const MKL_INT* base );

void SLAMC5( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
             const MKL_INT* ieee, MKL_INT* emax, float* rmax );
void SLAMC5_( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
              const MKL_INT* ieee, MKL_INT* emax, float* rmax );
void slamc5( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
             const MKL_INT* ieee, MKL_INT* emax, float* rmax );
void slamc5_( const MKL_INT* beta, const MKL_INT* p, const MKL_INT* emin,
              const MKL_INT* ieee, MKL_INT* emax, float* rmax );

void SLAMRG( const MKL_INT* n1, const MKL_INT* n2, const float* a,
             const MKL_INT* strd1, const MKL_INT* strd2, MKL_INT* index );
void SLAMRG_( const MKL_INT* n1, const MKL_INT* n2, const float* a,
              const MKL_INT* strd1, const MKL_INT* strd2, MKL_INT* index );
void slamrg( const MKL_INT* n1, const MKL_INT* n2, const float* a,
             const MKL_INT* strd1, const MKL_INT* strd2, MKL_INT* index );
void slamrg_( const MKL_INT* n1, const MKL_INT* n2, const float* a,
              const MKL_INT* strd1, const MKL_INT* strd2, MKL_INT* index );

MKL_INT SLANEG( const MKL_INT* n, const float* d, const float* lld,
                const float* sigma, const float* pivmin, const MKL_INT* r );
MKL_INT SLANEG_( const MKL_INT* n, const float* d, const float* lld,
                 const float* sigma, const float* pivmin, const MKL_INT* r );
MKL_INT slaneg( const MKL_INT* n, const float* d, const float* lld,
                const float* sigma, const float* pivmin, const MKL_INT* r );
MKL_INT slaneg_( const MKL_INT* n, const float* d, const float* lld,
                 const float* sigma, const float* pivmin, const MKL_INT* r );

float SLANGB( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              float* work );
float SLANGB_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
               float* work );
float slangb( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
              float* work );
float slangb_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
               float* work );

float SLANGE( const char* norm, const MKL_INT* m, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* work );
float SLANGE_( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const float* a, const MKL_INT* lda, float* work );
float slange( const char* norm, const MKL_INT* m, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* work );
float slange_( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const float* a, const MKL_INT* lda, float* work );

float SLANGT( const char* norm, const MKL_INT* n, const float* dl,
              const float* d, const float* du );
float SLANGT_( const char* norm, const MKL_INT* n, const float* dl,
               const float* d, const float* du );
float slangt( const char* norm, const MKL_INT* n, const float* dl,
              const float* d, const float* du );
float slangt_( const char* norm, const MKL_INT* n, const float* dl,
               const float* d, const float* du );

float SLANHS( const char* norm, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* work );
float SLANHS_( const char* norm, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* work );
float slanhs( const char* norm, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* work );
float slanhs_( const char* norm, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* work );

float SLANSB( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_INT* k, const float* ab, const MKL_INT* ldab,
              float* work );
float SLANSB_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const float* ab, const MKL_INT* ldab,
               float* work );
float slansb( const char* norm, const char* uplo, const MKL_INT* n,
              const MKL_INT* k, const float* ab, const MKL_INT* ldab,
              float* work );
float slansb_( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const float* ab, const MKL_INT* ldab,
               float* work );

float SLANSF( const char* norm, const char* transr, const char* uplo,
              const MKL_INT* n, const float* a, float* work );
float SLANSF_( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const float* a, float* work );
float slansf( const char* norm, const char* transr, const char* uplo,
              const MKL_INT* n, const float* a, float* work );
float slansf_( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const float* a, float* work );

float SLANSP( const char* norm, const char* uplo, const MKL_INT* n,
              const float* ap, float* work );
float SLANSP_( const char* norm, const char* uplo, const MKL_INT* n,
               const float* ap, float* work );
float slansp( const char* norm, const char* uplo, const MKL_INT* n,
              const float* ap, float* work );
float slansp_( const char* norm, const char* uplo, const MKL_INT* n,
               const float* ap, float* work );

float SLANST( const char* norm, const MKL_INT* n, const float* d,
              const float* e );
float SLANST_( const char* norm, const MKL_INT* n, const float* d,
               const float* e );
float slanst( const char* norm, const MKL_INT* n, const float* d,
              const float* e );
float slanst_( const char* norm, const MKL_INT* n, const float* d,
               const float* e );

float SLANSY( const char* norm, const char* uplo, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* work );
float SLANSY_( const char* norm, const char* uplo, const MKL_INT* n,
               const float* a, const MKL_INT* lda, float* work );
float slansy( const char* norm, const char* uplo, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* work );
float slansy_( const char* norm, const char* uplo, const MKL_INT* n,
               const float* a, const MKL_INT* lda, float* work );

float SLANTB( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* k, const float* ab,
              const MKL_INT* ldab, float* work );
float SLANTB_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const float* ab,
               const MKL_INT* ldab, float* work );
float slantb( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* k, const float* ab,
              const MKL_INT* ldab, float* work );
float slantb_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const float* ab,
               const MKL_INT* ldab, float* work );

float SLANTP( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const float* ap, float* work );
float SLANTP_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const float* ap, float* work );
float slantp( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const float* ap, float* work );
float slantp_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const float* ap, float* work );

float SLANTR( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* work );
float SLANTR_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* work );
float slantr( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* work );
float slantr_( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* work );

void SLANV2( float* a, float* b, float* c, float* d, float* rt1r, float* rt1i,
             float* rt2r, float* rt2i, float* cs, float* sn );
void SLANV2_( float* a, float* b, float* c, float* d, float* rt1r, float* rt1i,
              float* rt2r, float* rt2i, float* cs, float* sn );
void slanv2( float* a, float* b, float* c, float* d, float* rt1r, float* rt1i,
             float* rt2r, float* rt2i, float* cs, float* sn );
void slanv2_( float* a, float* b, float* c, float* d, float* rt1r, float* rt1i,
              float* rt2r, float* rt2i, float* cs, float* sn );

void SLAPLL( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
             const MKL_INT* incy, float* ssmin );
void SLAPLL_( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
              const MKL_INT* incy, float* ssmin );
void slapll( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
             const MKL_INT* incy, float* ssmin );
void slapll_( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
              const MKL_INT* incy, float* ssmin );

void SLAPMT( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             float* x, const MKL_INT* ldx, MKL_INT* k );
void SLAPMT_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              float* x, const MKL_INT* ldx, MKL_INT* k );
void slapmt( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             float* x, const MKL_INT* ldx, MKL_INT* k );
void slapmt_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              float* x, const MKL_INT* ldx, MKL_INT* k );

float SLAPY2( const float* x, const float* y );
float SLAPY2_( const float* x, const float* y );
float slapy2( const float* x, const float* y );
float slapy2_( const float* x, const float* y );

float SLAPY3( const float* x, const float* y, const float* z );
float SLAPY3_( const float* x, const float* y, const float* z );
float slapy3( const float* x, const float* y, const float* z );
float slapy3_( const float* x, const float* y, const float* z );

void SLAQGB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, float* ab, const MKL_INT* ldab, const float* r,
             const float* c, const float* rowcnd, const float* colcnd,
             const float* amax, char* equed );
void SLAQGB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, float* ab, const MKL_INT* ldab,
              const float* r, const float* c, const float* rowcnd,
              const float* colcnd, const float* amax, char* equed );
void slaqgb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, float* ab, const MKL_INT* ldab, const float* r,
             const float* c, const float* rowcnd, const float* colcnd,
             const float* amax, char* equed );
void slaqgb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, float* ab, const MKL_INT* ldab,
              const float* r, const float* c, const float* rowcnd,
              const float* colcnd, const float* amax, char* equed );

void SLAQGE( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             const float* r, const float* c, const float* rowcnd,
             const float* colcnd, const float* amax, char* equed );
void SLAQGE_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              const float* r, const float* c, const float* rowcnd,
              const float* colcnd, const float* amax, char* equed );
void slaqge( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             const float* r, const float* c, const float* rowcnd,
             const float* colcnd, const float* amax, char* equed );
void slaqge_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              const float* r, const float* c, const float* rowcnd,
              const float* colcnd, const float* amax, char* equed );

void SLAQP2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             float* a, const MKL_INT* lda, MKL_INT* jpvt, float* tau,
             float* vn1, float* vn2, float* work );
void SLAQP2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              float* a, const MKL_INT* lda, MKL_INT* jpvt, float* tau,
              float* vn1, float* vn2, float* work );
void slaqp2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             float* a, const MKL_INT* lda, MKL_INT* jpvt, float* tau,
             float* vn1, float* vn2, float* work );
void slaqp2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              float* a, const MKL_INT* lda, MKL_INT* jpvt, float* tau,
              float* vn1, float* vn2, float* work );

void SLAQPS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, float* a, const MKL_INT* lda,
             MKL_INT* jpvt, float* tau, float* vn1, float* vn2, float* auxv,
             float* f, const MKL_INT* ldf );
void SLAQPS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, float* a, const MKL_INT* lda,
              MKL_INT* jpvt, float* tau, float* vn1, float* vn2, float* auxv,
              float* f, const MKL_INT* ldf );
void slaqps( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, float* a, const MKL_INT* lda,
             MKL_INT* jpvt, float* tau, float* vn1, float* vn2, float* auxv,
             float* f, const MKL_INT* ldf );
void slaqps_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, float* a, const MKL_INT* lda,
              MKL_INT* jpvt, float* tau, float* vn1, float* vn2, float* auxv,
              float* f, const MKL_INT* ldf );

void SLAQR0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SLAQR0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void slaqr0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void slaqr0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SLAQR1( const MKL_INT* n, const float* h, const MKL_INT* ldh,
             const float* sr1, float* si1, float* sr2, float* si2, float* v );
void SLAQR1_( const MKL_INT* n, const float* h, const MKL_INT* ldh,
              const float* sr1, float* si1, float* sr2, float* si2, float* v );
void slaqr1( const MKL_INT* n, const float* h, const MKL_INT* ldh,
             const float* sr1, float* si1, float* sr2, float* si2, float* v );
void slaqr1_( const MKL_INT* n, const float* h, const MKL_INT* ldh,
              const float* sr1, float* si1, float* sr2, float* si2, float* v );

void SLAQR2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             float* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
             const MKL_INT* nh, float* t, const MKL_INT* ldt,
             const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
             const MKL_INT* lwork );
void SLAQR2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              float* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
              const MKL_INT* nh, float* t, const MKL_INT* ldt,
              const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
              const MKL_INT* lwork );
void slaqr2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             float* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
             const MKL_INT* nh, float* t, const MKL_INT* ldt,
             const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
             const MKL_INT* lwork );
void slaqr2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              float* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
              const MKL_INT* nh, float* t, const MKL_INT* ldt,
              const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
              const MKL_INT* lwork );

void SLAQR3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             float* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
             const MKL_INT* nh, float* t, const MKL_INT* ldt,
             const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
             const MKL_INT* lwork );
void SLAQR3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              float* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
              const MKL_INT* nh, float* t, const MKL_INT* ldt,
              const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
              const MKL_INT* lwork );
void slaqr3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             float* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
             MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
             const MKL_INT* nh, float* t, const MKL_INT* ldt,
             const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
             const MKL_INT* lwork );
void slaqr3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              float* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, MKL_INT* ns,
              MKL_INT* nd, float* sr, float* si, float* v, const MKL_INT* ldv,
              const MKL_INT* nh, float* t, const MKL_INT* ldt,
              const MKL_INT* nv, float* wv, const MKL_INT* ldwv, float* work,
              const MKL_INT* lwork );

void SLAQR4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SLAQR4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void slaqr4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, float* h,
             const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
             const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void slaqr4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, float* h,
              const MKL_INT* ldh, float* wr, float* wi, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SLAQR5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, float* sr, float* si, float* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             float* z, const MKL_INT* ldz, float* v, const MKL_INT* ldv,
             float* u, const MKL_INT* ldu, const MKL_INT* nv, float* wv,
             const MKL_INT* ldwv, const MKL_INT* nh, float* wh,
             const MKL_INT* ldwh );
void SLAQR5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, float* sr, float* si,
              float* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* v,
              const MKL_INT* ldv, float* u, const MKL_INT* ldu,
              const MKL_INT* nv, float* wv, const MKL_INT* ldwv,
              const MKL_INT* nh, float* wh, const MKL_INT* ldwh );
void slaqr5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, float* sr, float* si, float* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             float* z, const MKL_INT* ldz, float* v, const MKL_INT* ldv,
             float* u, const MKL_INT* ldu, const MKL_INT* nv, float* wv,
             const MKL_INT* ldwv, const MKL_INT* nh, float* wh,
             const MKL_INT* ldwh );
void slaqr5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, float* sr, float* si,
              float* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, float* z, const MKL_INT* ldz, float* v,
              const MKL_INT* ldv, float* u, const MKL_INT* ldu,
              const MKL_INT* nv, float* wv, const MKL_INT* ldwv,
              const MKL_INT* nh, float* wh, const MKL_INT* ldwh );

void SLAQSB( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, const float* s, const float* scond,
             const float* amax, char* equed );
void SLAQSB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, const float* s, const float* scond,
              const float* amax, char* equed );
void slaqsb( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, const float* s, const float* scond,
             const float* amax, char* equed );
void slaqsb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, const float* s, const float* scond,
              const float* amax, char* equed );

void SLAQSP( const char* uplo, const MKL_INT* n, float* ap, const float* s,
             const float* scond, const float* amax, char* equed );
void SLAQSP_( const char* uplo, const MKL_INT* n, float* ap, const float* s,
              const float* scond, const float* amax, char* equed );
void slaqsp( const char* uplo, const MKL_INT* n, float* ap, const float* s,
             const float* scond, const float* amax, char* equed );
void slaqsp_( const char* uplo, const MKL_INT* n, float* ap, const float* s,
              const float* scond, const float* amax, char* equed );

void SLAQSY( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             const float* s, const float* scond, const float* amax,
             char* equed );
void SLAQSY_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              const float* s, const float* scond, const float* amax,
              char* equed );
void slaqsy( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             const float* s, const float* scond, const float* amax,
             char* equed );
void slaqsy_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              const float* s, const float* scond, const float* amax,
              char* equed );

void SLAQTR( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
             const float* t, const MKL_INT* ldt, const float* b,
             const float* w, float* scale, float* x, float* work,
             MKL_INT* info );
void SLAQTR_( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
              const float* t, const MKL_INT* ldt, const float* b,
              const float* w, float* scale, float* x, float* work,
              MKL_INT* info );
void slaqtr( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
             const float* t, const MKL_INT* ldt, const float* b,
             const float* w, float* scale, float* x, float* work,
             MKL_INT* info );
void slaqtr_( const MKL_INT* ltran, const MKL_INT* lreal, const MKL_INT* n,
              const float* t, const MKL_INT* ldt, const float* b,
              const float* w, float* scale, float* x, float* work,
              MKL_INT* info );

void SLAR1V( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const float* lambda, const float* d, const float* l,
             const float* ld, const float* lld, const float* pivmin,
             const float* gaptol, float* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
             MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
             float* work );
void SLAR1V_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const float* lambda, const float* d, const float* l,
              const float* ld, const float* lld, const float* pivmin,
              const float* gaptol, float* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
              MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
              float* work );
void slar1v( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const float* lambda, const float* d, const float* l,
             const float* ld, const float* lld, const float* pivmin,
             const float* gaptol, float* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
             MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
             float* work );
void slar1v_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const float* lambda, const float* d, const float* l,
              const float* ld, const float* lld, const float* pivmin,
              const float* gaptol, float* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, float* ztz, float* mingma, MKL_INT* r,
              MKL_INT* isuppz, float* nrminv, float* resid, float* rqcorr,
              float* work );

void SLAR2V( const MKL_INT* n, float* x, float* y, float* z,
             const MKL_INT* incx, const float* c, const float* s,
             const MKL_INT* incc );
void SLAR2V_( const MKL_INT* n, float* x, float* y, float* z,
              const MKL_INT* incx, const float* c, const float* s,
              const MKL_INT* incc );
void slar2v( const MKL_INT* n, float* x, float* y, float* z,
             const MKL_INT* incx, const float* c, const float* s,
             const MKL_INT* incc );
void slar2v_( const MKL_INT* n, float* x, float* y, float* z,
              const MKL_INT* incx, const float* c, const float* s,
              const MKL_INT* incc );

void SLARFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const float* v, const MKL_INT* ldv,
             const float* t, const MKL_INT* ldt, float* c, const MKL_INT* ldc,
             float* work, const MKL_INT* ldwork );
void SLARFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const float* v, const MKL_INT* ldv,
              const float* t, const MKL_INT* ldt, float* c, const MKL_INT* ldc,
              float* work, const MKL_INT* ldwork );
void slarfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const float* v, const MKL_INT* ldv,
             const float* t, const MKL_INT* ldt, float* c, const MKL_INT* ldc,
             float* work, const MKL_INT* ldwork );
void slarfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const float* v, const MKL_INT* ldv,
              const float* t, const MKL_INT* ldt, float* c, const MKL_INT* ldc,
              float* work, const MKL_INT* ldwork );

void SLARF( const char* side, const MKL_INT* m, const MKL_INT* n,
            const float* v, const MKL_INT* incv, const float* tau, float* c,
            const MKL_INT* ldc, float* work );
void SLARF_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const float* v, const MKL_INT* incv, const float* tau, float* c,
             const MKL_INT* ldc, float* work );
void slarf( const char* side, const MKL_INT* m, const MKL_INT* n,
            const float* v, const MKL_INT* incv, const float* tau, float* c,
            const MKL_INT* ldc, float* work );
void slarf_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const float* v, const MKL_INT* incv, const float* tau, float* c,
             const MKL_INT* ldc, float* work );

void SLARFG( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
             float* tau );
void SLARFG_( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
              float* tau );
void slarfg( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
             float* tau );
void slarfg_( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
              float* tau );

void SLARFGP( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
              float* tau );
void SLARFGP_( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
               float* tau );
void slarfgp( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
              float* tau );
void slarfgp_( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
               float* tau );

void SLARFP( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
             float* tau );
void SLARFP_( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
              float* tau );
void slarfp( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
             float* tau );
void slarfp_( const MKL_INT* n, float* alpha, float* x, const MKL_INT* incx,
              float* tau );

void SLARFT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const float* v, const MKL_INT* ldv, const float* tau,
             float* t, const MKL_INT* ldt );
void SLARFT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const float* v, const MKL_INT* ldv, const float* tau,
              float* t, const MKL_INT* ldt );
void slarft( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const float* v, const MKL_INT* ldv, const float* tau,
             float* t, const MKL_INT* ldt );
void slarft_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const float* v, const MKL_INT* ldv, const float* tau,
              float* t, const MKL_INT* ldt );

void SLARFX( const char* side, const MKL_INT* m, const MKL_INT* n,
             const float* v, const float* tau, float* c, const MKL_INT* ldc,
             float* work );
void SLARFX_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const float* v, const float* tau, float* c, const MKL_INT* ldc,
              float* work );
void slarfx( const char* side, const MKL_INT* m, const MKL_INT* n,
             const float* v, const float* tau, float* c, const MKL_INT* ldc,
             float* work );
void slarfx_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const float* v, const float* tau, float* c, const MKL_INT* ldc,
              float* work );

void SLARGV( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
             const MKL_INT* incy, float* c, const MKL_INT* incc );
void SLARGV_( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
              const MKL_INT* incy, float* c, const MKL_INT* incc );
void slargv( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
             const MKL_INT* incy, float* c, const MKL_INT* incc );
void slargv_( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
              const MKL_INT* incy, float* c, const MKL_INT* incc );

void SLARNV( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             float* x );
void SLARNV_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              float* x );
void slarnv( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             float* x );
void slarnv_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              float* x );

void SLARRA( const MKL_INT* n, const float* d, float* e, float* e2,
             const float* spltol, const float* tnrm, MKL_INT* nsplit,
             MKL_INT* isplit, MKL_INT* info );
void SLARRA_( const MKL_INT* n, const float* d, float* e, float* e2,
              const float* spltol, const float* tnrm, MKL_INT* nsplit,
              MKL_INT* isplit, MKL_INT* info );
void slarra( const MKL_INT* n, const float* d, float* e, float* e2,
             const float* spltol, const float* tnrm, MKL_INT* nsplit,
             MKL_INT* isplit, MKL_INT* info );
void slarra_( const MKL_INT* n, const float* d, float* e, float* e2,
              const float* spltol, const float* tnrm, MKL_INT* nsplit,
              MKL_INT* isplit, MKL_INT* info );

void SLARRB( const MKL_INT* n, const float* d, const float* lld,
             const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol1,
             const float* rtol2, const MKL_INT* offset, float* w, float* wgap,
             float* werr, float* work, MKL_INT* iwork, const float* pivmin,
             const float* spdiam, const MKL_INT* twist, MKL_INT* info );
void SLARRB_( const MKL_INT* n, const float* d, const float* lld,
              const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol1,
              const float* rtol2, const MKL_INT* offset, float* w, float* wgap,
              float* werr, float* work, MKL_INT* iwork, const float* pivmin,
              const float* spdiam, const MKL_INT* twist, MKL_INT* info );
void slarrb( const MKL_INT* n, const float* d, const float* lld,
             const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol1,
             const float* rtol2, const MKL_INT* offset, float* w, float* wgap,
             float* werr, float* work, MKL_INT* iwork, const float* pivmin,
             const float* spdiam, const MKL_INT* twist, MKL_INT* info );
void slarrb_( const MKL_INT* n, const float* d, const float* lld,
              const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol1,
              const float* rtol2, const MKL_INT* offset, float* w, float* wgap,
              float* werr, float* work, MKL_INT* iwork, const float* pivmin,
              const float* spdiam, const MKL_INT* twist, MKL_INT* info );

void SLARRC( const char* jobt, const MKL_INT* n, const float* vl,
             const float* vu, const float* d, const float* e,
             const float* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
             MKL_INT* rcnt, MKL_INT* info );
void SLARRC_( const char* jobt, const MKL_INT* n, const float* vl,
              const float* vu, const float* d, const float* e,
              const float* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
              MKL_INT* rcnt, MKL_INT* info );
void slarrc( const char* jobt, const MKL_INT* n, const float* vl,
             const float* vu, const float* d, const float* e,
             const float* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
             MKL_INT* rcnt, MKL_INT* info );
void slarrc_( const char* jobt, const MKL_INT* n, const float* vl,
              const float* vu, const float* d, const float* e,
              const float* pivmin, MKL_INT* eigcnt, MKL_INT* lcnt,
              MKL_INT* rcnt, MKL_INT* info );

void SLARRD( const char* range, const char* order, const MKL_INT* n,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* gers, const float* reltol,
             const float* d, const float* e, const float* e2,
             const float* pivmin, const MKL_INT* nsplit, const MKL_INT* isplit,
             MKL_INT* m, float* w, float* werr, float* wl, float* wu,
             MKL_INT* iblock, MKL_INT* indexw, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SLARRD_( const char* range, const char* order, const MKL_INT* n,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* gers, const float* reltol,
              const float* d, const float* e, const float* e2,
              const float* pivmin, const MKL_INT* nsplit,
              const MKL_INT* isplit, MKL_INT* m, float* w, float* werr,
              float* wl, float* wu, MKL_INT* iblock, MKL_INT* indexw,
              float* work, MKL_INT* iwork, MKL_INT* info );
void slarrd( const char* range, const char* order, const MKL_INT* n,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* gers, const float* reltol,
             const float* d, const float* e, const float* e2,
             const float* pivmin, const MKL_INT* nsplit, const MKL_INT* isplit,
             MKL_INT* m, float* w, float* werr, float* wl, float* wu,
             MKL_INT* iblock, MKL_INT* indexw, float* work, MKL_INT* iwork,
             MKL_INT* info );
void slarrd_( const char* range, const char* order, const MKL_INT* n,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* gers, const float* reltol,
              const float* d, const float* e, const float* e2,
              const float* pivmin, const MKL_INT* nsplit,
              const MKL_INT* isplit, MKL_INT* m, float* w, float* werr,
              float* wl, float* wu, MKL_INT* iblock, MKL_INT* indexw,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SLARRE( const char* range, const MKL_INT* n, float* vl, float* vu,
             const MKL_INT* il, const MKL_INT* iu, float* d, float* e,
             float* e2, const float* rtol1, const float* rtol2,
             const float* spltol, MKL_INT* nsplit, MKL_INT* isplit, MKL_INT* m,
             float* w, float* werr, float* wgap, MKL_INT* iblock,
             MKL_INT* indexw, float* gers, float* pivmin, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SLARRE_( const char* range, const MKL_INT* n, float* vl, float* vu,
              const MKL_INT* il, const MKL_INT* iu, float* d, float* e,
              float* e2, const float* rtol1, const float* rtol2,
              const float* spltol, MKL_INT* nsplit, MKL_INT* isplit,
              MKL_INT* m, float* w, float* werr, float* wgap, MKL_INT* iblock,
              MKL_INT* indexw, float* gers, float* pivmin, float* work,
              MKL_INT* iwork, MKL_INT* info );
void slarre( const char* range, const MKL_INT* n, float* vl, float* vu,
             const MKL_INT* il, const MKL_INT* iu, float* d, float* e,
             float* e2, const float* rtol1, const float* rtol2,
             const float* spltol, MKL_INT* nsplit, MKL_INT* isplit, MKL_INT* m,
             float* w, float* werr, float* wgap, MKL_INT* iblock,
             MKL_INT* indexw, float* gers, float* pivmin, float* work,
             MKL_INT* iwork, MKL_INT* info );
void slarre_( const char* range, const MKL_INT* n, float* vl, float* vu,
              const MKL_INT* il, const MKL_INT* iu, float* d, float* e,
              float* e2, const float* rtol1, const float* rtol2,
              const float* spltol, MKL_INT* nsplit, MKL_INT* isplit,
              MKL_INT* m, float* w, float* werr, float* wgap, MKL_INT* iblock,
              MKL_INT* indexw, float* gers, float* pivmin, float* work,
              MKL_INT* iwork, MKL_INT* info );

void SLARRF( const MKL_INT* n, const float* d, const float* l, const float* ld,
             const MKL_INT* clstrt, const MKL_INT* clend, const float* w,
             float* wgap, const float* werr, const float* spdiam,
             const float* clgapl, float* clgapr, const float* pivmin,
             float* sigma, float* dplus, float* lplus, float* work,
             MKL_INT* info );
void SLARRF_( const MKL_INT* n, const float* d, const float* l,
              const float* ld, const MKL_INT* clstrt, const MKL_INT* clend,
              const float* w, float* wgap, const float* werr,
              const float* spdiam, const float* clgapl, float* clgapr,
              const float* pivmin, float* sigma, float* dplus, float* lplus,
              float* work, MKL_INT* info );
void slarrf( const MKL_INT* n, const float* d, const float* l, const float* ld,
             const MKL_INT* clstrt, const MKL_INT* clend, const float* w,
             float* wgap, const float* werr, const float* spdiam,
             const float* clgapl, float* clgapr, const float* pivmin,
             float* sigma, float* dplus, float* lplus, float* work,
             MKL_INT* info );
void slarrf_( const MKL_INT* n, const float* d, const float* l,
              const float* ld, const MKL_INT* clstrt, const MKL_INT* clend,
              const float* w, float* wgap, const float* werr,
              const float* spdiam, const float* clgapl, float* clgapr,
              const float* pivmin, float* sigma, float* dplus, float* lplus,
              float* work, MKL_INT* info );

void SLARRJ( const MKL_INT* n, const float* d, const float* e2,
             const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol,
             const MKL_INT* offset, float* w, float* werr, float* work,
             MKL_INT* iwork, const float* pivmin, const float* spdiam,
             MKL_INT* info );
void SLARRJ_( const MKL_INT* n, const float* d, const float* e2,
              const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol,
              const MKL_INT* offset, float* w, float* werr, float* work,
              MKL_INT* iwork, const float* pivmin, const float* spdiam,
              MKL_INT* info );
void slarrj( const MKL_INT* n, const float* d, const float* e2,
             const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol,
             const MKL_INT* offset, float* w, float* werr, float* work,
             MKL_INT* iwork, const float* pivmin, const float* spdiam,
             MKL_INT* info );
void slarrj_( const MKL_INT* n, const float* d, const float* e2,
              const MKL_INT* ifirst, const MKL_INT* ilast, const float* rtol,
              const MKL_INT* offset, float* w, float* werr, float* work,
              MKL_INT* iwork, const float* pivmin, const float* spdiam,
              MKL_INT* info );

void SLARRK( const MKL_INT* n, const MKL_INT* iw, const float* gl,
             const float* gu, const float* d, const float* e2,
             const float* pivmin, const float* reltol, float* w, float* werr,
             MKL_INT* info );
void SLARRK_( const MKL_INT* n, const MKL_INT* iw, const float* gl,
              const float* gu, const float* d, const float* e2,
              const float* pivmin, const float* reltol, float* w, float* werr,
              MKL_INT* info );
void slarrk( const MKL_INT* n, const MKL_INT* iw, const float* gl,
             const float* gu, const float* d, const float* e2,
             const float* pivmin, const float* reltol, float* w, float* werr,
             MKL_INT* info );
void slarrk_( const MKL_INT* n, const MKL_INT* iw, const float* gl,
              const float* gu, const float* d, const float* e2,
              const float* pivmin, const float* reltol, float* w, float* werr,
              MKL_INT* info );

void SLARRR( const MKL_INT* n, const float* d, float* e, MKL_INT* info );
void SLARRR_( const MKL_INT* n, const float* d, float* e, MKL_INT* info );
void slarrr( const MKL_INT* n, const float* d, float* e, MKL_INT* info );
void slarrr_( const MKL_INT* n, const float* d, float* e, MKL_INT* info );

void SLARRV( const MKL_INT* n, const float* vl, const float* vu, float* d,
             float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
             const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
             const float* rtol1, const float* rtol2, float* w, float* werr,
             float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
             const float* gers, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SLARRV_( const MKL_INT* n, const float* vl, const float* vu, float* d,
              float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
              const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
              const float* rtol1, const float* rtol2, float* w, float* werr,
              float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
              const float* gers, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
              float* work, MKL_INT* iwork, MKL_INT* info );
void slarrv( const MKL_INT* n, const float* vl, const float* vu, float* d,
             float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
             const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
             const float* rtol1, const float* rtol2, float* w, float* werr,
             float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
             const float* gers, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
             float* work, MKL_INT* iwork, MKL_INT* info );
void slarrv_( const MKL_INT* n, const float* vl, const float* vu, float* d,
              float* l, float* pivmin, const MKL_INT* isplit, const MKL_INT* m,
              const MKL_INT* dol, const MKL_INT* dou, const float* minrgp,
              const float* rtol1, const float* rtol2, float* w, float* werr,
              float* wgap, const MKL_INT* iblock, const MKL_INT* indexw,
              const float* gers, float* z, const MKL_INT* ldz, MKL_INT* isuppz,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SLARSCL2( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
               const MKL_INT* ldx );
void SLARSCL2_( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
                const MKL_INT* ldx );
void slarscl2( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
               const MKL_INT* ldx );
void slarscl2_( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
                const MKL_INT* ldx );

void SLARTG( const float* f, const float* g, float* cs, float* sn, float* r );
void SLARTG_( const float* f, const float* g, float* cs, float* sn, float* r );
void slartg( const float* f, const float* g, float* cs, float* sn, float* r );
void slartg_( const float* f, const float* g, float* cs, float* sn, float* r );

void SLARTV( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
             const MKL_INT* incy, const float* c, const float* s,
             const MKL_INT* incc );
void SLARTV_( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
              const MKL_INT* incy, const float* c, const float* s,
              const MKL_INT* incc );
void slartv( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
             const MKL_INT* incy, const float* c, const float* s,
             const MKL_INT* incc );
void slartv_( const MKL_INT* n, float* x, const MKL_INT* incx, float* y,
              const MKL_INT* incy, const float* c, const float* s,
              const MKL_INT* incc );

void SLARUV( MKL_INT* iseed, const MKL_INT* n, float* x );
void SLARUV_( MKL_INT* iseed, const MKL_INT* n, float* x );
void slaruv( MKL_INT* iseed, const MKL_INT* n, float* x );
void slaruv_( MKL_INT* iseed, const MKL_INT* n, float* x );

void SLARZB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const float* v,
             const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* ldwork );
void SLARZB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const float* v,
              const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* ldwork );
void slarzb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const float* v,
             const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* ldwork );
void slarzb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const float* v,
              const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* ldwork );

void SLARZ( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const float* v, const MKL_INT* incv,
            const float* tau, float* c, const MKL_INT* ldc, float* work );
void SLARZ_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const float* v, const MKL_INT* incv,
             const float* tau, float* c, const MKL_INT* ldc, float* work );
void slarz( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const float* v, const MKL_INT* incv,
            const float* tau, float* c, const MKL_INT* ldc, float* work );
void slarz_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const float* v, const MKL_INT* incv,
             const float* tau, float* c, const MKL_INT* ldc, float* work );

void SLARZT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, float* v, const MKL_INT* ldv, const float* tau,
             float* t, const MKL_INT* ldt );
void SLARZT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, float* v, const MKL_INT* ldv, const float* tau,
              float* t, const MKL_INT* ldt );
void slarzt( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, float* v, const MKL_INT* ldv, const float* tau,
             float* t, const MKL_INT* ldt );
void slarzt_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, float* v, const MKL_INT* ldv, const float* tau,
              float* t, const MKL_INT* ldt );

void SLAS2( const float* f, const float* g, const float* h, float* ssmin,
            float* ssmax );
void SLAS2_( const float* f, const float* g, const float* h, float* ssmin,
             float* ssmax );
void slas2( const float* f, const float* g, const float* h, float* ssmin,
            float* ssmax );
void slas2_( const float* f, const float* g, const float* h, float* ssmin,
             float* ssmax );

void SLASCL( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const float* cfrom, const float* cto, const MKL_INT* m,
             const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );
void SLASCL_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const float* cfrom, const float* cto, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );
void slascl( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const float* cfrom, const float* cto, const MKL_INT* m,
             const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );
void slascl_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const float* cfrom, const float* cto, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* info );

void SLASCL2( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
              const MKL_INT* ldx );
void SLASCL2_( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
               const MKL_INT* ldx );
void slascl2( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
              const MKL_INT* ldx );
void slascl2_( const MKL_INT* m, const MKL_INT* n, const float* d, float* x,
               const MKL_INT* ldx );

void SLASD0( const MKL_INT* n, const MKL_INT* sqre, float* d, const float* e,
             float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
             const MKL_INT* smlsiz, MKL_INT* iwork, float* work,
             MKL_INT* info );
void SLASD0_( const MKL_INT* n, const MKL_INT* sqre, float* d, const float* e,
              float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
              const MKL_INT* smlsiz, MKL_INT* iwork, float* work,
              MKL_INT* info );
void slasd0( const MKL_INT* n, const MKL_INT* sqre, float* d, const float* e,
             float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
             const MKL_INT* smlsiz, MKL_INT* iwork, float* work,
             MKL_INT* info );
void slasd0_( const MKL_INT* n, const MKL_INT* sqre, float* d, const float* e,
              float* u, const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
              const MKL_INT* smlsiz, MKL_INT* iwork, float* work,
              MKL_INT* info );

void SLASD1( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             float* d, float* alpha, float* beta, float* u, const MKL_INT* ldu,
             float* vt, const MKL_INT* ldvt, MKL_INT* idxq, MKL_INT* iwork,
             float* work, MKL_INT* info );
void SLASD1_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              float* d, float* alpha, float* beta, float* u,
              const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
              MKL_INT* idxq, MKL_INT* iwork, float* work, MKL_INT* info );
void slasd1( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             float* d, float* alpha, float* beta, float* u, const MKL_INT* ldu,
             float* vt, const MKL_INT* ldvt, MKL_INT* idxq, MKL_INT* iwork,
             float* work, MKL_INT* info );
void slasd1_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              float* d, float* alpha, float* beta, float* u,
              const MKL_INT* ldu, float* vt, const MKL_INT* ldvt,
              MKL_INT* idxq, MKL_INT* iwork, float* work, MKL_INT* info );

void SLASD2( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             MKL_INT* k, float* d, float* z, const float* alpha,
             const float* beta, float* u, const MKL_INT* ldu, float* vt,
             const MKL_INT* ldvt, float* dsigma, float* u2,
             const MKL_INT* ldu2, float* vt2, const MKL_INT* ldvt2,
             MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
             MKL_INT* coltyp, MKL_INT* info );
void SLASD2_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              MKL_INT* k, float* d, float* z, const float* alpha,
              const float* beta, float* u, const MKL_INT* ldu, float* vt,
              const MKL_INT* ldvt, float* dsigma, float* u2,
              const MKL_INT* ldu2, float* vt2, const MKL_INT* ldvt2,
              MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
              MKL_INT* coltyp, MKL_INT* info );
void slasd2( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             MKL_INT* k, float* d, float* z, const float* alpha,
             const float* beta, float* u, const MKL_INT* ldu, float* vt,
             const MKL_INT* ldvt, float* dsigma, float* u2,
             const MKL_INT* ldu2, float* vt2, const MKL_INT* ldvt2,
             MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
             MKL_INT* coltyp, MKL_INT* info );
void slasd2_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              MKL_INT* k, float* d, float* z, const float* alpha,
              const float* beta, float* u, const MKL_INT* ldu, float* vt,
              const MKL_INT* ldvt, float* dsigma, float* u2,
              const MKL_INT* ldu2, float* vt2, const MKL_INT* ldvt2,
              MKL_INT* idxp, MKL_INT* idx, MKL_INT* idxc, MKL_INT* idxq,
              MKL_INT* coltyp, MKL_INT* info );

void SLASD3( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             const MKL_INT* k, float* d, float* q, const MKL_INT* ldq,
             float* dsigma, float* u, const MKL_INT* ldu, const float* u2,
             const MKL_INT* ldu2, float* vt, const MKL_INT* ldvt, float* vt2,
             const MKL_INT* ldvt2, const MKL_INT* idxc, const MKL_INT* ctot,
             float* z, MKL_INT* info );
void SLASD3_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              const MKL_INT* k, float* d, float* q, const MKL_INT* ldq,
              float* dsigma, float* u, const MKL_INT* ldu, const float* u2,
              const MKL_INT* ldu2, float* vt, const MKL_INT* ldvt, float* vt2,
              const MKL_INT* ldvt2, const MKL_INT* idxc, const MKL_INT* ctot,
              float* z, MKL_INT* info );
void slasd3( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
             const MKL_INT* k, float* d, float* q, const MKL_INT* ldq,
             float* dsigma, float* u, const MKL_INT* ldu, const float* u2,
             const MKL_INT* ldu2, float* vt, const MKL_INT* ldvt, float* vt2,
             const MKL_INT* ldvt2, const MKL_INT* idxc, const MKL_INT* ctot,
             float* z, MKL_INT* info );
void slasd3_( const MKL_INT* nl, const MKL_INT* nr, const MKL_INT* sqre,
              const MKL_INT* k, float* d, float* q, const MKL_INT* ldq,
              float* dsigma, float* u, const MKL_INT* ldu, const float* u2,
              const MKL_INT* ldu2, float* vt, const MKL_INT* ldvt, float* vt2,
              const MKL_INT* ldvt2, const MKL_INT* idxc, const MKL_INT* ctot,
              float* z, MKL_INT* info );

void SLASD4( const MKL_INT* n, const MKL_INT* i, const float* d,
             const float* z, float* delta, const float* rho, float* sigma,
             float* work, MKL_INT* info );
void SLASD4_( const MKL_INT* n, const MKL_INT* i, const float* d,
              const float* z, float* delta, const float* rho, float* sigma,
              float* work, MKL_INT* info );
void slasd4( const MKL_INT* n, const MKL_INT* i, const float* d,
             const float* z, float* delta, const float* rho, float* sigma,
             float* work, MKL_INT* info );
void slasd4_( const MKL_INT* n, const MKL_INT* i, const float* d,
              const float* z, float* delta, const float* rho, float* sigma,
              float* work, MKL_INT* info );

void SLASD5( const MKL_INT* i, const float* d, const float* z, float* delta,
             const float* rho, float* dsigma, float* work );
void SLASD5_( const MKL_INT* i, const float* d, const float* z, float* delta,
              const float* rho, float* dsigma, float* work );
void slasd5( const MKL_INT* i, const float* d, const float* z, float* delta,
             const float* rho, float* dsigma, float* work );
void slasd5_( const MKL_INT* i, const float* d, const float* z, float* delta,
              const float* rho, float* dsigma, float* work );

void SLASD6( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, float* d, float* vf, float* vl, float* alpha,
             float* beta, MKL_INT* idxq, MKL_INT* perm, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, float* givnum,
             const MKL_INT* ldgnum, float* poles, float* difl, float* difr,
             float* z, MKL_INT* k, float* c, float* s, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SLASD6_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, float* d, float* vf, float* vl,
              float* alpha, float* beta, MKL_INT* idxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
              float* givnum, const MKL_INT* ldgnum, float* poles, float* difl,
              float* difr, float* z, MKL_INT* k, float* c, float* s,
              float* work, MKL_INT* iwork, MKL_INT* info );
void slasd6( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, float* d, float* vf, float* vl, float* alpha,
             float* beta, MKL_INT* idxq, MKL_INT* perm, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, float* givnum,
             const MKL_INT* ldgnum, float* poles, float* difl, float* difr,
             float* z, MKL_INT* k, float* c, float* s, float* work,
             MKL_INT* iwork, MKL_INT* info );
void slasd6_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, float* d, float* vf, float* vl,
              float* alpha, float* beta, MKL_INT* idxq, MKL_INT* perm,
              MKL_INT* givptr, MKL_INT* givcol, const MKL_INT* ldgcol,
              float* givnum, const MKL_INT* ldgnum, float* poles, float* difl,
              float* difr, float* z, MKL_INT* k, float* c, float* s,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SLASD7( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, MKL_INT* k, float* d, float* z, float* zw,
             float* vf, float* vfw, float* vl, float* vlw, const float* alpha,
             const float* beta, float* dsigma, MKL_INT* idx, MKL_INT* idxp,
             const MKL_INT* idxq, MKL_INT* perm, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, float* givnum,
             const MKL_INT* ldgnum, float* c, float* s, MKL_INT* info );
void SLASD7_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, MKL_INT* k, float* d, float* z, float* zw,
              float* vf, float* vfw, float* vl, float* vlw, const float* alpha,
              const float* beta, float* dsigma, MKL_INT* idx, MKL_INT* idxp,
              const MKL_INT* idxq, MKL_INT* perm, MKL_INT* givptr,
              MKL_INT* givcol, const MKL_INT* ldgcol, float* givnum,
              const MKL_INT* ldgnum, float* c, float* s, MKL_INT* info );
void slasd7( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, MKL_INT* k, float* d, float* z, float* zw,
             float* vf, float* vfw, float* vl, float* vlw, const float* alpha,
             const float* beta, float* dsigma, MKL_INT* idx, MKL_INT* idxp,
             const MKL_INT* idxq, MKL_INT* perm, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, float* givnum,
             const MKL_INT* ldgnum, float* c, float* s, MKL_INT* info );
void slasd7_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, MKL_INT* k, float* d, float* z, float* zw,
              float* vf, float* vfw, float* vl, float* vlw, const float* alpha,
              const float* beta, float* dsigma, MKL_INT* idx, MKL_INT* idxp,
              const MKL_INT* idxq, MKL_INT* perm, MKL_INT* givptr,
              MKL_INT* givcol, const MKL_INT* ldgcol, float* givnum,
              const MKL_INT* ldgnum, float* c, float* s, MKL_INT* info );

void SLASD8( const MKL_INT* icompq, const MKL_INT* k, float* d, float* z,
             float* vf, float* vl, float* difl, float* difr,
             const MKL_INT* lddifr, float* dsigma, float* work,
             MKL_INT* info );
void SLASD8_( const MKL_INT* icompq, const MKL_INT* k, float* d, float* z,
              float* vf, float* vl, float* difl, float* difr,
              const MKL_INT* lddifr, float* dsigma, float* work,
              MKL_INT* info );
void slasd8( const MKL_INT* icompq, const MKL_INT* k, float* d, float* z,
             float* vf, float* vl, float* difl, float* difr,
             const MKL_INT* lddifr, float* dsigma, float* work,
             MKL_INT* info );
void slasd8_( const MKL_INT* icompq, const MKL_INT* k, float* d, float* z,
              float* vf, float* vl, float* difl, float* difr,
              const MKL_INT* lddifr, float* dsigma, float* work,
              MKL_INT* info );

void SLASDA( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* sqre, float* d, const float* e, float* u,
             const MKL_INT* ldu, float* vt, MKL_INT* k, float* difl,
             float* difr, float* z, float* poles, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
             float* givnum, float* c, float* s, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SLASDA_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* sqre, float* d, const float* e, float* u,
              const MKL_INT* ldu, float* vt, MKL_INT* k, float* difl,
              float* difr, float* z, float* poles, MKL_INT* givptr,
              MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
              float* givnum, float* c, float* s, float* work, MKL_INT* iwork,
              MKL_INT* info );
void slasda( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* sqre, float* d, const float* e, float* u,
             const MKL_INT* ldu, float* vt, MKL_INT* k, float* difl,
             float* difr, float* z, float* poles, MKL_INT* givptr,
             MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
             float* givnum, float* c, float* s, float* work, MKL_INT* iwork,
             MKL_INT* info );
void slasda_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* sqre, float* d, const float* e, float* u,
              const MKL_INT* ldu, float* vt, MKL_INT* k, float* difl,
              float* difr, float* z, float* poles, MKL_INT* givptr,
              MKL_INT* givcol, const MKL_INT* ldgcol, MKL_INT* perm,
              float* givnum, float* c, float* s, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SLASDQ( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
             const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
             float* d, float* e, float* vt, const MKL_INT* ldvt, float* u,
             const MKL_INT* ldu, float* c, const MKL_INT* ldc, float* work,
             MKL_INT* info );
void SLASDQ_( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
              const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
              float* d, float* e, float* vt, const MKL_INT* ldvt, float* u,
              const MKL_INT* ldu, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );
void slasdq( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
             const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
             float* d, float* e, float* vt, const MKL_INT* ldvt, float* u,
             const MKL_INT* ldu, float* c, const MKL_INT* ldc, float* work,
             MKL_INT* info );
void slasdq_( const char* uplo, const MKL_INT* sqre, const MKL_INT* n,
              const MKL_INT* ncvt, const MKL_INT* nru, const MKL_INT* ncc,
              float* d, float* e, float* vt, const MKL_INT* ldvt, float* u,
              const MKL_INT* ldu, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );

void SLASDT( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
             MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );
void SLASDT_( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
              MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );
void slasdt( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
             MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );
void slasdt_( const MKL_INT* n, MKL_INT* lvl, MKL_INT* nd, MKL_INT* inode,
              MKL_INT* ndiml, MKL_INT* ndimr, const MKL_INT* msub );

void SLASET( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const float* alpha, const float* beta, float* a,
             const MKL_INT* lda );
void SLASET_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const float* alpha, const float* beta, float* a,
              const MKL_INT* lda );
void slaset( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const float* alpha, const float* beta, float* a,
             const MKL_INT* lda );
void slaset_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const float* alpha, const float* beta, float* a,
              const MKL_INT* lda );

void SLASQ1( const MKL_INT* n, float* d, float* e, float* work,
             MKL_INT* info );
void SLASQ1_( const MKL_INT* n, float* d, float* e, float* work,
              MKL_INT* info );
void slasq1( const MKL_INT* n, float* d, float* e, float* work,
             MKL_INT* info );
void slasq1_( const MKL_INT* n, float* d, float* e, float* work,
              MKL_INT* info );

void SLASQ2( const MKL_INT* n, float* z, MKL_INT* info );
void SLASQ2_( const MKL_INT* n, float* z, MKL_INT* info );
void slasq2( const MKL_INT* n, float* z, MKL_INT* info );
void slasq2_( const MKL_INT* n, float* z, MKL_INT* info );

void SLASQ3( const MKL_INT* i0, const MKL_INT* n0, const float* z, MKL_INT* pp,
             float* dmin, float* sigma, float* desig, const float* qmax,
             MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv, const MKL_INT* ieee,
             MKL_INT* ttype, float* dmin1, float* dmin2, float* dn, float* dn1,
             float* dn2, float* g, float* tau );
void SLASQ3_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              MKL_INT* pp, float* dmin, float* sigma, float* desig,
              const float* qmax, MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv,
              const MKL_INT* ieee, MKL_INT* ttype, float* dmin1, float* dmin2,
              float* dn, float* dn1, float* dn2, float* g, float* tau );
void slasq3( const MKL_INT* i0, const MKL_INT* n0, const float* z, MKL_INT* pp,
             float* dmin, float* sigma, float* desig, const float* qmax,
             MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv, const MKL_INT* ieee,
             MKL_INT* ttype, float* dmin1, float* dmin2, float* dn, float* dn1,
             float* dn2, float* g, float* tau );
void slasq3_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              MKL_INT* pp, float* dmin, float* sigma, float* desig,
              const float* qmax, MKL_INT* nfail, MKL_INT* iter, MKL_INT* ndiv,
              const MKL_INT* ieee, MKL_INT* ttype, float* dmin1, float* dmin2,
              float* dn, float* dn1, float* dn2, float* g, float* tau );

void SLASQ4( const MKL_INT* i0, const MKL_INT* n0, const float* z,
             const MKL_INT* pp, MKL_INT* n0in, const float* dmin,
             const float* dmin1, const float* dmin2, const float* dn,
             const float* dn1, const float* dn2, float* tau, MKL_INT* ttype,
             float* g );
void SLASQ4_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              const MKL_INT* pp, MKL_INT* n0in, const float* dmin,
              const float* dmin1, const float* dmin2, const float* dn,
              const float* dn1, const float* dn2, float* tau, MKL_INT* ttype,
              float* g );
void slasq4( const MKL_INT* i0, const MKL_INT* n0, const float* z,
             const MKL_INT* pp, MKL_INT* n0in, const float* dmin,
             const float* dmin1, const float* dmin2, const float* dn,
             const float* dn1, const float* dn2, float* tau, MKL_INT* ttype,
             float* g );
void slasq4_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              const MKL_INT* pp, MKL_INT* n0in, const float* dmin,
              const float* dmin1, const float* dmin2, const float* dn,
              const float* dn1, const float* dn2, float* tau, MKL_INT* ttype,
              float* g );

void SLASQ5( const MKL_INT* i0, const MKL_INT* n0, const float* z,
             const MKL_INT* pp, const float* tau, const float* sigma,
             float* dmin, float* dmin1, float* dmin2, float* dn,
             float* dnm1, float* dnm2, const MKL_INT* ieee,
             const float* eps );
void SLASQ5_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              const MKL_INT* pp, const float* tau, const float* sigma,
              float* dmin, float* dmin1, float* dmin2, float* dn,
              float* dnm1, float* dnm2, const MKL_INT* ieee,
              const float* eps );
void slasq5( const MKL_INT* i0, const MKL_INT* n0, const float* z,
             const MKL_INT* pp, const float* tau, const float* sigma,
             float* dmin, float* dmin1, float* dmin2, float* dn,
             float* dnm1, float* dnm2, const MKL_INT* ieee,
             const float* eps );
void slasq5_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              const MKL_INT* pp, const float* tau, const float* sigma,
              float* dmin, float* dmin1, float* dmin2, float* dn,
              float* dnm1, float* dnm2, const MKL_INT* ieee,
              const float* eps );

void SLASQ6( const MKL_INT* i0, const MKL_INT* n0, const float* z,
             const MKL_INT* pp, float* dmin, float* dmin1, float* dmin2,
             float* dn, float* dnm1, float* dnm2 );
void SLASQ6_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              const MKL_INT* pp, float* dmin, float* dmin1, float* dmin2,
              float* dn, float* dnm1, float* dnm2 );
void slasq6( const MKL_INT* i0, const MKL_INT* n0, const float* z,
             const MKL_INT* pp, float* dmin, float* dmin1, float* dmin2,
             float* dn, float* dnm1, float* dnm2 );
void slasq6_( const MKL_INT* i0, const MKL_INT* n0, const float* z,
              const MKL_INT* pp, float* dmin, float* dmin1, float* dmin2,
              float* dn, float* dnm1, float* dnm2 );

void SLASR( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const float* c, const float* s,
            float* a, const MKL_INT* lda );
void SLASR_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const float* c,
             const float* s, float* a, const MKL_INT* lda );
void slasr( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const float* c, const float* s,
            float* a, const MKL_INT* lda );
void slasr_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const float* c,
             const float* s, float* a, const MKL_INT* lda );

void SLASRT( const char* id, const MKL_INT* n, float* d, MKL_INT* info );
void SLASRT_( const char* id, const MKL_INT* n, float* d, MKL_INT* info );
void slasrt( const char* id, const MKL_INT* n, float* d, MKL_INT* info );
void slasrt_( const char* id, const MKL_INT* n, float* d, MKL_INT* info );

void SLASSQ( const MKL_INT* n, const float* x, const MKL_INT* incx,
             float* scale, float* sumsq );
void SLASSQ_( const MKL_INT* n, const float* x, const MKL_INT* incx,
              float* scale, float* sumsq );
void slassq( const MKL_INT* n, const float* x, const MKL_INT* incx,
             float* scale, float* sumsq );
void slassq_( const MKL_INT* n, const float* x, const MKL_INT* incx,
              float* scale, float* sumsq );

void SLASV2( const float* f, const float* g, const float* h, float* ssmin,
             float* ssmax, float* snr, float* csr, float* snl, float* csl );
void SLASV2_( const float* f, const float* g, const float* h, float* ssmin,
              float* ssmax, float* snr, float* csr, float* snl, float* csl );
void slasv2( const float* f, const float* g, const float* h, float* ssmin,
             float* ssmax, float* snr, float* csr, float* snl, float* csl );
void slasv2_( const float* f, const float* g, const float* h, float* ssmin,
              float* ssmax, float* snr, float* csr, float* snl, float* csl );

void SLASWP( const MKL_INT* n, float* a, const MKL_INT* lda, const MKL_INT* k1,
             const MKL_INT* k2, const MKL_INT* ipiv, const MKL_INT* incx );
void SLASWP_( const MKL_INT* n, float* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );
void slaswp( const MKL_INT* n, float* a, const MKL_INT* lda, const MKL_INT* k1,
             const MKL_INT* k2, const MKL_INT* ipiv, const MKL_INT* incx );
void slaswp_( const MKL_INT* n, float* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );

void SLASY2( const MKL_INT* ltranl, const MKL_INT* ltranr, const MKL_INT* isgn,
             const MKL_INT* n1, const MKL_INT* n2, const float* tl,
             const MKL_INT* ldtl, const float* tr, const MKL_INT* ldtr,
             const float* b, const MKL_INT* ldb, float* scale, float* x,
             const MKL_INT* ldx, float* xnorm, MKL_INT* info );
void SLASY2_( const MKL_INT* ltranl, const MKL_INT* ltranr,
              const MKL_INT* isgn, const MKL_INT* n1, const MKL_INT* n2,
              const float* tl, const MKL_INT* ldtl, const float* tr,
              const MKL_INT* ldtr, const float* b, const MKL_INT* ldb,
              float* scale, float* x, const MKL_INT* ldx, float* xnorm,
              MKL_INT* info );
void slasy2( const MKL_INT* ltranl, const MKL_INT* ltranr, const MKL_INT* isgn,
             const MKL_INT* n1, const MKL_INT* n2, const float* tl,
             const MKL_INT* ldtl, const float* tr, const MKL_INT* ldtr,
             const float* b, const MKL_INT* ldb, float* scale, float* x,
             const MKL_INT* ldx, float* xnorm, MKL_INT* info );
void slasy2_( const MKL_INT* ltranl, const MKL_INT* ltranr,
              const MKL_INT* isgn, const MKL_INT* n1, const MKL_INT* n2,
              const float* tl, const MKL_INT* ldtl, const float* tr,
              const MKL_INT* ldtr, const float* b, const MKL_INT* ldb,
              float* scale, float* x, const MKL_INT* ldx, float* xnorm,
              MKL_INT* info );

void SLASYF( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
             float* w, const MKL_INT* ldw, MKL_INT* info );
void SLASYF_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
              float* w, const MKL_INT* ldw, MKL_INT* info );
void slasyf( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
             float* w, const MKL_INT* ldw, MKL_INT* info );
void slasyf_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, float* a, const MKL_INT* lda, MKL_INT* ipiv,
              float* w, const MKL_INT* ldw, MKL_INT* info );

void SLATBS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const float* ab, const MKL_INT* ldab, float* x, float* scale,
             float* cnorm, MKL_INT* info );
void SLATBS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const float* ab, const MKL_INT* ldab, float* x, float* scale,
              float* cnorm, MKL_INT* info );
void slatbs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const float* ab, const MKL_INT* ldab, float* x, float* scale,
             float* cnorm, MKL_INT* info );
void slatbs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const float* ab, const MKL_INT* ldab, float* x, float* scale,
              float* cnorm, MKL_INT* info );

void SLATDF( const MKL_INT* ijob, const MKL_INT* n, const float* z,
             const MKL_INT* ldz, float* rhs, float* rdsum, float* rdscal,
             const MKL_INT* ipiv, const MKL_INT* jpiv );
void SLATDF_( const MKL_INT* ijob, const MKL_INT* n, const float* z,
              const MKL_INT* ldz, float* rhs, float* rdsum, float* rdscal,
              const MKL_INT* ipiv, const MKL_INT* jpiv );
void slatdf( const MKL_INT* ijob, const MKL_INT* n, const float* z,
             const MKL_INT* ldz, float* rhs, float* rdsum, float* rdscal,
             const MKL_INT* ipiv, const MKL_INT* jpiv );
void slatdf_( const MKL_INT* ijob, const MKL_INT* n, const float* z,
              const MKL_INT* ldz, float* rhs, float* rdsum, float* rdscal,
              const MKL_INT* ipiv, const MKL_INT* jpiv );

void SLATPS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const float* ap, float* x,
             float* scale, float* cnorm, MKL_INT* info );
void SLATPS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const float* ap, float* x,
              float* scale, float* cnorm, MKL_INT* info );
void slatps( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const float* ap, float* x,
             float* scale, float* cnorm, MKL_INT* info );
void slatps_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const float* ap, float* x,
              float* scale, float* cnorm, MKL_INT* info );

void SLATRD( const char* uplo, const MKL_INT* n, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* e, float* tau, float* w,
             const MKL_INT* ldw );
void SLATRD_( const char* uplo, const MKL_INT* n, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* e, float* tau, float* w,
              const MKL_INT* ldw );
void slatrd( const char* uplo, const MKL_INT* n, const MKL_INT* nb, float* a,
             const MKL_INT* lda, float* e, float* tau, float* w,
             const MKL_INT* ldw );
void slatrd_( const char* uplo, const MKL_INT* n, const MKL_INT* nb, float* a,
              const MKL_INT* lda, float* e, float* tau, float* w,
              const MKL_INT* ldw );

void SLATRS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const float* a,
             const MKL_INT* lda, float* x, float* scale, float* cnorm,
             MKL_INT* info );
void SLATRS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* x, float* scale, float* cnorm,
              MKL_INT* info );
void slatrs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const float* a,
             const MKL_INT* lda, float* x, float* scale, float* cnorm,
             MKL_INT* info );
void slatrs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* x, float* scale, float* cnorm,
              MKL_INT* info );

void SLATRZ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
             const MKL_INT* lda, float* tau, float* work );
void SLATRZ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
              const MKL_INT* lda, float* tau, float* work );
void slatrz( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
             const MKL_INT* lda, float* tau, float* work );
void slatrz_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l, float* a,
              const MKL_INT* lda, float* tau, float* work );

void SLATZM( const char* side, const MKL_INT* m, const MKL_INT* n,
             const float* v, const MKL_INT* incv, const float* tau, float* c1,
             float* c2, const MKL_INT* ldc, float* work );
void SLATZM_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const float* v, const MKL_INT* incv, const float* tau, float* c1,
              float* c2, const MKL_INT* ldc, float* work );
void slatzm( const char* side, const MKL_INT* m, const MKL_INT* n,
             const float* v, const MKL_INT* incv, const float* tau, float* c1,
             float* c2, const MKL_INT* ldc, float* work );
void slatzm_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const float* v, const MKL_INT* incv, const float* tau, float* c1,
              float* c2, const MKL_INT* ldc, float* work );

void SLAUU2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void SLAUU2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );
void slauu2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void slauu2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );

void SLAUUM( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void SLAUUM_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );
void slauum( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void slauum_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );

void SOPGTR( const char* uplo, const MKL_INT* n, const float* ap,
             const float* tau, float* q, const MKL_INT* ldq, float* work,
             MKL_INT* info );
void SOPGTR_( const char* uplo, const MKL_INT* n, const float* ap,
              const float* tau, float* q, const MKL_INT* ldq, float* work,
              MKL_INT* info );
void sopgtr( const char* uplo, const MKL_INT* n, const float* ap,
             const float* tau, float* q, const MKL_INT* ldq, float* work,
             MKL_INT* info );
void sopgtr_( const char* uplo, const MKL_INT* n, const float* ap,
              const float* tau, float* q, const MKL_INT* ldq, float* work,
              MKL_INT* info );

void SOPMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const float* ap,
             const float* tau, float* c, const MKL_INT* ldc, float* work,
             MKL_INT* info );
void SOPMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const float* ap,
              const float* tau, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );
void sopmtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const float* ap,
             const float* tau, float* c, const MKL_INT* ldc, float* work,
             MKL_INT* info );
void sopmtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const float* ap,
              const float* tau, float* c, const MKL_INT* ldc, float* work,
              MKL_INT* info );

void SORG2L( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void SORG2L_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );
void sorg2l( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void sorg2l_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );

void SORG2R( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void SORG2R_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );
void sorg2r( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void sorg2r_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );

void SORGBR( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, float* a, const MKL_INT* lda, const float* tau,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void SORGBR_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, float* a, const MKL_INT* lda, const float* tau,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void sorgbr( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, float* a, const MKL_INT* lda, const float* tau,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void sorgbr_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, float* a, const MKL_INT* lda, const float* tau,
              float* work, const MKL_INT* lwork, MKL_INT* info );

void SORGHR( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* a, const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SORGHR_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* a, const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorghr( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             float* a, const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sorghr_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              float* a, const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SORGL2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void SORGL2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );
void sorgl2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void sorgl2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );

void SORGLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SORGLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorglq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sorglq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SORGQL( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SORGQL_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorgql( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sorgql_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SORGQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SORGQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorgqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sorgqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SORGR2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void SORGR2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );
void sorgr2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             MKL_INT* info );
void sorgr2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              MKL_INT* info );

void SORGRQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SORGRQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void sorgrq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
             const MKL_INT* lda, const float* tau, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void sorgrq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k, float* a,
              const MKL_INT* lda, const float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SORGTR( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             const float* tau, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORGTR_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              const float* tau, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sorgtr( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             const float* tau, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sorgtr_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              const float* tau, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORM2L( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void SORM2L_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );
void sorm2l( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void sorm2l_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );

void SORM2R( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void SORM2R_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );
void sorm2r( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void sorm2r_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );

void SORMBR( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMBR_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormbr( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormbr_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORMHR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMHR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormhr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormhr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORML2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void SORML2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );
void sorml2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void sorml2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );

void SORMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORMQL( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMQL_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormql( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormql_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORMR2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void SORMR2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );
void sormr2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void sormr2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );

void SORMR3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void SORMR3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );
void sormr3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, MKL_INT* info );
void sormr3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, MKL_INT* info );

void SORMRQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMRQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormrq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormrq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORMRZ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMRZ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormrz( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const float* a, const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormrz_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const float* a, const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SORMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SORMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void sormtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* tau, float* c,
             const MKL_INT* ldc, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void sormtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* tau, float* c,
              const MKL_INT* ldc, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SPBCON( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const float* ab, const MKL_INT* ldab, const float* anorm,
             float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void SPBCON_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const float* ab, const MKL_INT* ldab, const float* anorm,
              float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void spbcon( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const float* ab, const MKL_INT* ldab, const float* anorm,
             float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void spbcon_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const float* ab, const MKL_INT* ldab, const float* anorm,
              float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );

void SPBEQU( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const float* ab, const MKL_INT* ldab, float* s, float* scond,
             float* amax, MKL_INT* info );
void SPBEQU_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const float* ab, const MKL_INT* ldab, float* s, float* scond,
              float* amax, MKL_INT* info );
void spbequ( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const float* ab, const MKL_INT* ldab, float* s, float* scond,
             float* amax, MKL_INT* info );
void spbequ_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const float* ab, const MKL_INT* ldab, float* s, float* scond,
              float* amax, MKL_INT* info );

void SPBRFS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
             const float* afb, const MKL_INT* ldafb, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void SPBRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
              const float* afb, const MKL_INT* ldafb, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void spbrfs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
             const float* afb, const MKL_INT* ldafb, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void spbrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
              const float* afb, const MKL_INT* ldafb, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );

void SPBSTF( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, MKL_INT* info );
void SPBSTF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, MKL_INT* info );
void spbstf( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, MKL_INT* info );
void spbstf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, MKL_INT* info );

void SPBSV( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, float* ab, const MKL_INT* ldab, float* b,
            const MKL_INT* ldb, MKL_INT* info );
void SPBSV_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, float* ab, const MKL_INT* ldab, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void spbsv( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, float* ab, const MKL_INT* ldab, float* b,
            const MKL_INT* ldb, MKL_INT* info );
void spbsv_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, float* ab, const MKL_INT* ldab, float* b,
             const MKL_INT* ldb, MKL_INT* info );

void SPBSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, float* ab,
             const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
             char* equed, float* s, float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SPBSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, float* ab,
              const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
              char* equed, float* s, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void spbsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, float* ab,
             const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
             char* equed, float* s, float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void spbsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, float* ab,
              const MKL_INT* ldab, float* afb, const MKL_INT* ldafb,
              char* equed, float* s, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SPBTF2( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, MKL_INT* info );
void SPBTF2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, MKL_INT* info );
void spbtf2( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, MKL_INT* info );
void spbtf2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, MKL_INT* info );

void SPBTRF( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, MKL_INT* info );
void SPBTRF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, MKL_INT* info );
void spbtrf( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, MKL_INT* info );
void spbtrf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, MKL_INT* info );

void SPBTRS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
             float* b, const MKL_INT* ldb, MKL_INT* info );
void SPBTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
              float* b, const MKL_INT* ldb, MKL_INT* info );
void spbtrs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
             float* b, const MKL_INT* ldb, MKL_INT* info );
void spbtrs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const float* ab, const MKL_INT* ldab,
              float* b, const MKL_INT* ldb, MKL_INT* info );

void SPFTRF( const char* transr, const char* uplo, const MKL_INT* n, float* a,
             MKL_INT* info );
void SPFTRF_( const char* transr, const char* uplo, const MKL_INT* n, float* a,
              MKL_INT* info );
void spftrf( const char* transr, const char* uplo, const MKL_INT* n, float* a,
             MKL_INT* info );
void spftrf_( const char* transr, const char* uplo, const MKL_INT* n, float* a,
              MKL_INT* info );

void SPFTRI( const char* transr, const char* uplo, const MKL_INT* n, float* a,
             MKL_INT* info );
void SPFTRI_( const char* transr, const char* uplo, const MKL_INT* n, float* a,
              MKL_INT* info );
void spftri( const char* transr, const char* uplo, const MKL_INT* n, float* a,
             MKL_INT* info );
void spftri_( const char* transr, const char* uplo, const MKL_INT* n, float* a,
              MKL_INT* info );

void SPFTRS( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const float* a, float* b, const MKL_INT* ldb,
             MKL_INT* info );
void SPFTRS_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void spftrs( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const float* a, float* b, const MKL_INT* ldb,
             MKL_INT* info );
void spftrs_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, float* b,
              const MKL_INT* ldb, MKL_INT* info );

void SPOCON( const char* uplo, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* anorm, float* rcond, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SPOCON_( const char* uplo, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );
void spocon( const char* uplo, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* anorm, float* rcond, float* work,
             MKL_INT* iwork, MKL_INT* info );
void spocon_( const char* uplo, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SPOEQUB( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
              float* scond, float* amax, MKL_INT* info );
void SPOEQUB_( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
               float* scond, float* amax, MKL_INT* info );
void spoequb( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
              float* scond, float* amax, MKL_INT* info );
void spoequb_( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
               float* scond, float* amax, MKL_INT* info );

void SPOEQU( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
             float* scond, float* amax, MKL_INT* info );
void SPOEQU_( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
              float* scond, float* amax, MKL_INT* info );
void spoequ( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
             float* scond, float* amax, MKL_INT* info );
void spoequ_( const MKL_INT* n, const float* a, const MKL_INT* lda, float* s,
              float* scond, float* amax, MKL_INT* info );

void SPORFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const float* af,
             const MKL_INT* ldaf, const float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SPORFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const float* af,
              const MKL_INT* ldaf, const float* b, const MKL_INT* ldb,
              float* x, const MKL_INT* ldx, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sporfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const float* af,
             const MKL_INT* ldaf, const float* b, const MKL_INT* ldb, float* x,
             const MKL_INT* ldx, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void sporfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const float* af,
              const MKL_INT* ldaf, const float* b, const MKL_INT* ldb,
              float* x, const MKL_INT* ldx, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SPORFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              const float* af, const MKL_INT* ldaf, const float* s,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, float* work,
              MKL_INT* iwork, MKL_INT* info );
void SPORFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
               const float* af, const MKL_INT* ldaf, const float* s,
               const float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void sporfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              const float* af, const MKL_INT* ldaf, const float* s,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, float* work,
              MKL_INT* iwork, MKL_INT* info );
void sporfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
               const float* af, const MKL_INT* ldaf, const float* s,
               const float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SPOSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* info );
void SPOSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* info );
void sposv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
            const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* info );
void sposv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* info );

void SPOSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
             const MKL_INT* ldaf, char* equed, float* s, float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SPOSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, char* equed, float* s, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );
void sposvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
             const MKL_INT* ldaf, char* equed, float* s, float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void sposvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, char* equed, float* s, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SPOSVXX( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, char* equed, float* s, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, float* work,
              MKL_INT* iwork, MKL_INT* info );
void SPOSVXX_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
               const MKL_INT* ldaf, char* equed, float* s, float* b,
               const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
               float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, float* work,
               MKL_INT* iwork, MKL_INT* info );
void sposvxx( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, char* equed, float* s, float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
              float* err_bnds_norm, float* err_bnds_comp,
              const MKL_INT* nparams, float* params, float* work,
              MKL_INT* iwork, MKL_INT* info );
void sposvxx_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
               const MKL_INT* ldaf, char* equed, float* s, float* b,
               const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
               float* rpvgrw, float* berr, const MKL_INT* n_err_bnds,
               float* err_bnds_norm, float* err_bnds_comp,
               const MKL_INT* nparams, float* params, float* work,
               MKL_INT* iwork, MKL_INT* info );

void SPOTF2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void SPOTF2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );
void spotf2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void spotf2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );

void SPOTRF( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void SPOTRF_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );
void spotrf( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void spotrf_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );

void SPOTRI( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void SPOTRI_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );
void spotri( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* info );
void spotri_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* info );

void SPOTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             MKL_INT* info );
void SPOTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* info );
void spotrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             MKL_INT* info );
void spotrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* info );

void SPPCON( const char* uplo, const MKL_INT* n, const float* ap,
             const float* anorm, float* rcond, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SPPCON_( const char* uplo, const MKL_INT* n, const float* ap,
              const float* anorm, float* rcond, float* work, MKL_INT* iwork,
              MKL_INT* info );
void sppcon( const char* uplo, const MKL_INT* n, const float* ap,
             const float* anorm, float* rcond, float* work, MKL_INT* iwork,
             MKL_INT* info );
void sppcon_( const char* uplo, const MKL_INT* n, const float* ap,
              const float* anorm, float* rcond, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SPPEQU( const char* uplo, const MKL_INT* n, const float* ap, float* s,
             float* scond, float* amax, MKL_INT* info );
void SPPEQU_( const char* uplo, const MKL_INT* n, const float* ap, float* s,
              float* scond, float* amax, MKL_INT* info );
void sppequ( const char* uplo, const MKL_INT* n, const float* ap, float* s,
             float* scond, float* amax, MKL_INT* info );
void sppequ_( const char* uplo, const MKL_INT* n, const float* ap, float* s,
              float* scond, float* amax, MKL_INT* info );

void SPPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, const float* afp, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void SPPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, const float* afp, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void spprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, const float* afp, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void spprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, const float* afp, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );

void SPPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* ap,
            float* b, const MKL_INT* ldb, MKL_INT* info );
void SPPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             float* ap, float* b, const MKL_INT* ldb, MKL_INT* info );
void sppsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* ap,
            float* b, const MKL_INT* ldb, MKL_INT* info );
void sppsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             float* ap, float* b, const MKL_INT* ldb, MKL_INT* info );

void SPPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, float* ap, float* afp, char* equed, float* s,
             float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* rcond, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SPPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* ap, float* afp, char* equed,
              float* s, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sppsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, float* ap, float* afp, char* equed, float* s,
             float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* rcond, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void sppsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* ap, float* afp, char* equed,
              float* s, float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SPPTRF( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );
void SPPTRF_( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );
void spptrf( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );
void spptrf_( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );

void SPPTRI( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );
void SPPTRI_( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );
void spptri( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );
void spptri_( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* info );

void SPPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, float* b, const MKL_INT* ldb, MKL_INT* info );
void SPPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, float* b, const MKL_INT* ldb, MKL_INT* info );
void spptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, float* b, const MKL_INT* ldb, MKL_INT* info );
void spptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, float* b, const MKL_INT* ldb, MKL_INT* info );

void SPSTF2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
             MKL_INT* info );
void SPSTF2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
              MKL_INT* info );
void spstf2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
             MKL_INT* info );
void spstf2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
              MKL_INT* info );

void SPSTRF( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
             MKL_INT* info );
void SPSTRF_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
              MKL_INT* info );
void spstrf( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
             MKL_INT* info );
void spstrf_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* piv, MKL_INT* rank, const float* tol, float* work,
              MKL_INT* info );

void SPTCON( const MKL_INT* n, const float* d, const float* e,
             const float* anorm, float* rcond, float* work, MKL_INT* info );
void SPTCON_( const MKL_INT* n, const float* d, const float* e,
              const float* anorm, float* rcond, float* work, MKL_INT* info );
void sptcon( const MKL_INT* n, const float* d, const float* e,
             const float* anorm, float* rcond, float* work, MKL_INT* info );
void sptcon_( const MKL_INT* n, const float* d, const float* e,
              const float* anorm, float* rcond, float* work, MKL_INT* info );

void SPTEQR( const char* compz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );
void SPTEQR_( const char* compz, const MKL_INT* n, float* d, float* e,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void spteqr( const char* compz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );
void spteqr_( const char* compz, const MKL_INT* n, float* d, float* e,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* info );

void SPTRFS( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
             const float* e, const float* df, const float* ef, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* info );
void SPTRFS_( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
              const float* e, const float* df, const float* ef, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* info );
void sptrfs( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
             const float* e, const float* df, const float* ef, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* info );
void sptrfs_( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
              const float* e, const float* df, const float* ef, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* info );

void SPTSV( const MKL_INT* n, const MKL_INT* nrhs, float* d, float* e,
            float* b, const MKL_INT* ldb, MKL_INT* info );
void SPTSV_( const MKL_INT* n, const MKL_INT* nrhs, float* d, float* e,
             float* b, const MKL_INT* ldb, MKL_INT* info );
void sptsv( const MKL_INT* n, const MKL_INT* nrhs, float* d, float* e,
            float* b, const MKL_INT* ldb, MKL_INT* info );
void sptsv_( const MKL_INT* n, const MKL_INT* nrhs, float* d, float* e,
             float* b, const MKL_INT* ldb, MKL_INT* info );

void SPTSVX( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const float* e, float* df, float* ef,
             const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* rcond, float* ferr, float* berr, float* work,
             MKL_INT* info );
void SPTSVX_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const float* e, float* df, float* ef,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* ferr, float* berr, float* work,
              MKL_INT* info );
void sptsvx( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const float* d, const float* e, float* df, float* ef,
             const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* rcond, float* ferr, float* berr, float* work,
             MKL_INT* info );
void sptsvx_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const float* d, const float* e, float* df, float* ef,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* ferr, float* berr, float* work,
              MKL_INT* info );

void SPTTRF( const MKL_INT* n, float* d, float* e, MKL_INT* info );
void SPTTRF_( const MKL_INT* n, float* d, float* e, MKL_INT* info );
void spttrf( const MKL_INT* n, float* d, float* e, MKL_INT* info );
void spttrf_( const MKL_INT* n, float* d, float* e, MKL_INT* info );

void SPTTRS( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
             const float* e, float* b, const MKL_INT* ldb, MKL_INT* info );
void SPTTRS_( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
              const float* e, float* b, const MKL_INT* ldb, MKL_INT* info );
void spttrs( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
             const float* e, float* b, const MKL_INT* ldb, MKL_INT* info );
void spttrs_( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
              const float* e, float* b, const MKL_INT* ldb, MKL_INT* info );

void SPTTS2( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
             const float* e, float* b, const MKL_INT* ldb );
void SPTTS2_( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
              const float* e, float* b, const MKL_INT* ldb );
void sptts2( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
             const float* e, float* b, const MKL_INT* ldb );
void sptts2_( const MKL_INT* n, const MKL_INT* nrhs, const float* d,
              const float* e, float* b, const MKL_INT* ldb );

void SRSCL( const MKL_INT* n, const float* sa, float* sx,
            const MKL_INT* incx );
void SRSCL_( const MKL_INT* n, const float* sa, float* sx,
             const MKL_INT* incx );
void srscl( const MKL_INT* n, const float* sa, float* sx,
            const MKL_INT* incx );
void srscl_( const MKL_INT* n, const float* sa, float* sx,
             const MKL_INT* incx );

void SSBEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
             float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSBEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
              float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssbevd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
             float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssbevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
              float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSBEV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
            float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void SSBEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void ssbev( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
            float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void ssbev_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* info );

void SSBEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, float* q, const MKL_INT* ldq,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void SSBEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, float* q, const MKL_INT* ldq,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void ssbevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, float* ab,
             const MKL_INT* ldab, float* q, const MKL_INT* ldq,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void ssbevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, float* ab,
              const MKL_INT* ldab, float* q, const MKL_INT* ldq,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void SSBGST( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, const float* bb, const MKL_INT* ldbb,
             float* x, const MKL_INT* ldx, float* work, MKL_INT* info );
void SSBGST_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, float* ab,
              const MKL_INT* ldab, const float* bb, const MKL_INT* ldbb,
              float* x, const MKL_INT* ldx, float* work, MKL_INT* info );
void ssbgst( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, const float* bb, const MKL_INT* ldbb,
             float* x, const MKL_INT* ldx, float* work, MKL_INT* info );
void ssbgst_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, float* ab,
              const MKL_INT* ldab, const float* bb, const MKL_INT* ldbb,
              float* x, const MKL_INT* ldx, float* work, MKL_INT* info );

void SSBGVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
             float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSBGVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, float* ab,
              const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
              float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssbgvd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
             float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssbgvd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, float* ab,
              const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
              float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSBGV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, float* ab,
            const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
            float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void SSBGV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void ssbgv( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, float* ab,
            const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
            float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void ssbgv_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* info );

void SSBGVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* q,
             const MKL_INT* ldq, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void SSBGVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              float* ab, const MKL_INT* ldab, float* bb, const MKL_INT* ldbb,
              float* q, const MKL_INT* ldq, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ssbgvx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb, float* ab,
             const MKL_INT* ldab, float* bb, const MKL_INT* ldbb, float* q,
             const MKL_INT* ldq, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ssbgvx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              float* ab, const MKL_INT* ldab, float* bb, const MKL_INT* ldbb,
              float* q, const MKL_INT* ldq, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void SSBTRD( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* d,
             float* e, float* q, const MKL_INT* ldq, float* work,
             MKL_INT* info );
void SSBTRD_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* d,
              float* e, float* q, const MKL_INT* ldq, float* work,
              MKL_INT* info );
void ssbtrd( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* d,
             float* e, float* q, const MKL_INT* ldq, float* work,
             MKL_INT* info );
void ssbtrd_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, float* ab, const MKL_INT* ldab, float* d,
              float* e, float* q, const MKL_INT* ldq, float* work,
              MKL_INT* info );

void SSFRK( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const float* alpha,
            const float* a, const MKL_INT* lda, const float* beta, float* c );
void SSFRK_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const float* alpha,
             const float* a, const MKL_INT* lda, const float* beta, float* c );
void ssfrk( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const float* alpha,
            const float* a, const MKL_INT* lda, const float* beta, float* c );
void ssfrk_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const float* alpha,
             const float* a, const MKL_INT* lda, const float* beta, float* c );

void SSPCON( const char* uplo, const MKL_INT* n, const float* ap,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             float* work, MKL_INT* iwork, MKL_INT* info );
void SSPCON_( const char* uplo, const MKL_INT* n, const float* ap,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );
void sspcon( const char* uplo, const MKL_INT* n, const float* ap,
             const MKL_INT* ipiv, const float* anorm, float* rcond,
             float* work, MKL_INT* iwork, MKL_INT* info );
void sspcon_( const char* uplo, const MKL_INT* n, const float* ap,
              const MKL_INT* ipiv, const float* anorm, float* rcond,
              float* work, MKL_INT* iwork, MKL_INT* info );

void SSPEVD( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
             float* w, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void SSPEVD_( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
              float* w, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void sspevd( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
             float* w, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void sspevd_( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
              float* w, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void SSPEV( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
            float* w, float* z, const MKL_INT* ldz, float* work,
            MKL_INT* info );
void SSPEV_( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
             float* w, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* info );
void sspev( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
            float* w, float* z, const MKL_INT* ldz, float* work,
            MKL_INT* info );
void sspev_( const char* jobz, const char* uplo, const MKL_INT* n, float* ap,
             float* w, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* info );

void SSPEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, float* ap, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void SSPEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, float* ap, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void sspevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, float* ap, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void sspevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, float* ap, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void SSPGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             float* ap, const float* bp, MKL_INT* info );
void SSPGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              float* ap, const float* bp, MKL_INT* info );
void sspgst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             float* ap, const float* bp, MKL_INT* info );
void sspgst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              float* ap, const float* bp, MKL_INT* info );

void SSPGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* ap, float* bp, float* w, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSPGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, float* ap, float* bp, float* w, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sspgvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* ap, float* bp, float* w, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sspgvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, float* ap, float* bp, float* w, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSPGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, float* ap, float* bp, float* w, float* z,
            const MKL_INT* ldz, float* work, MKL_INT* info );
void SSPGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* ap, float* bp, float* w, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );
void sspgv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, float* ap, float* bp, float* w, float* z,
            const MKL_INT* ldz, float* work, MKL_INT* info );
void sspgv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* ap, float* bp, float* w, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );

void SSPGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, float* ap, float* bp,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void SSPGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, float* ap, float* bp,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void sspgvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, float* ap, float* bp,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void sspgvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, float* ap, float* bp,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void SSPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, const float* afp, const MKL_INT* ipiv,
             const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SSPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, const float* afp, const MKL_INT* ipiv,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );
void ssprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, const float* afp, const MKL_INT* ipiv,
             const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void ssprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, const float* afp, const MKL_INT* ipiv,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SSPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* ap,
            MKL_INT* ipiv, float* b, const MKL_INT* ldb, MKL_INT* info );
void SSPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             float* ap, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
             MKL_INT* info );
void sspsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* ap,
            MKL_INT* ipiv, float* b, const MKL_INT* ldb, MKL_INT* info );
void sspsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             float* ap, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
             MKL_INT* info );

void SSPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const float* ap, float* afp, MKL_INT* ipiv,
             const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* rcond, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void SSPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const float* ap, float* afp, MKL_INT* ipiv,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* ferr, float* berr, float* work,
              MKL_INT* iwork, MKL_INT* info );
void sspsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const float* ap, float* afp, MKL_INT* ipiv,
             const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
             float* rcond, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void sspsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const float* ap, float* afp, MKL_INT* ipiv,
              const float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* ferr, float* berr, float* work,
              MKL_INT* iwork, MKL_INT* info );

void SSPTRD( const char* uplo, const MKL_INT* n, float* ap, float* d, float* e,
             float* tau, MKL_INT* info );
void SSPTRD_( const char* uplo, const MKL_INT* n, float* ap, float* d,
              float* e, float* tau, MKL_INT* info );
void ssptrd( const char* uplo, const MKL_INT* n, float* ap, float* d, float* e,
             float* tau, MKL_INT* info );
void ssptrd_( const char* uplo, const MKL_INT* n, float* ap, float* d,
              float* e, float* tau, MKL_INT* info );

void SSPTRF( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* ipiv,
             MKL_INT* info );
void SSPTRF_( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* ipiv,
              MKL_INT* info );
void ssptrf( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* ipiv,
             MKL_INT* info );
void ssptrf_( const char* uplo, const MKL_INT* n, float* ap, MKL_INT* ipiv,
              MKL_INT* info );

void SSPTRI( const char* uplo, const MKL_INT* n, float* ap,
             const MKL_INT* ipiv, float* work, MKL_INT* info );
void SSPTRI_( const char* uplo, const MKL_INT* n, float* ap,
              const MKL_INT* ipiv, float* work, MKL_INT* info );
void ssptri( const char* uplo, const MKL_INT* n, float* ap,
             const MKL_INT* ipiv, float* work, MKL_INT* info );
void ssptri_( const char* uplo, const MKL_INT* n, float* ap,
              const MKL_INT* ipiv, float* work, MKL_INT* info );

void SSPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void SSPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void ssptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* ap, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void ssptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* ap, const MKL_INT* ipiv, float* b,
              const MKL_INT* ldb, MKL_INT* info );

void SSTEBZ( const char* range, const char* order, const MKL_INT* n,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, const float* d,
             const float* e, MKL_INT* m, MKL_INT* nsplit, float* w,
             MKL_INT* iblock, MKL_INT* isplit, float* work, MKL_INT* iwork,
             MKL_INT* info );
void SSTEBZ_( const char* range, const char* order, const MKL_INT* n,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, const float* d,
              const float* e, MKL_INT* m, MKL_INT* nsplit, float* w,
              MKL_INT* iblock, MKL_INT* isplit, float* work, MKL_INT* iwork,
              MKL_INT* info );
void sstebz( const char* range, const char* order, const MKL_INT* n,
             const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, const float* d,
             const float* e, MKL_INT* m, MKL_INT* nsplit, float* w,
             MKL_INT* iblock, MKL_INT* isplit, float* work, MKL_INT* iwork,
             MKL_INT* info );
void sstebz_( const char* range, const char* order, const MKL_INT* n,
              const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, const float* d,
              const float* e, MKL_INT* m, MKL_INT* nsplit, float* w,
              MKL_INT* iblock, MKL_INT* isplit, float* work, MKL_INT* iwork,
              MKL_INT* info );

void SSTEDC( const char* compz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSTEDC_( const char* compz, const MKL_INT* n, float* d, float* e,
              float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sstedc( const char* compz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sstedc_( const char* compz, const MKL_INT* n, float* d, float* e,
              float* z, const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSTEGR( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void SSTEGR_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void sstegr( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void sstegr_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void SSTEIN( const MKL_INT* n, const float* d, const float* e,
             const MKL_INT* m, const float* w, const MKL_INT* iblock,
             const MKL_INT* isplit, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void SSTEIN_( const MKL_INT* n, const float* d, const float* e,
              const MKL_INT* m, const float* w, const MKL_INT* iblock,
              const MKL_INT* isplit, float* z, const MKL_INT* ldz, float* work,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void sstein( const MKL_INT* n, const float* d, const float* e,
             const MKL_INT* m, const float* w, const MKL_INT* iblock,
             const MKL_INT* isplit, float* z, const MKL_INT* ldz, float* work,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void sstein_( const MKL_INT* n, const float* d, const float* e,
              const MKL_INT* m, const float* w, const MKL_INT* iblock,
              const MKL_INT* isplit, float* z, const MKL_INT* ldz, float* work,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void SSTEMR( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, float* w, float* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSTEMR_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, float* w, float* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sstemr( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, float* w, float* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sstemr_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, float* w, float* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSTEQR( const char* compz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );
void SSTEQR_( const char* compz, const MKL_INT* n, float* d, float* e,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* info );
void ssteqr( const char* compz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );
void ssteqr_( const char* compz, const MKL_INT* n, float* d, float* e,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* info );

void SSTERF( const MKL_INT* n, float* d, float* e, MKL_INT* info );
void SSTERF_( const MKL_INT* n, float* d, float* e, MKL_INT* info );
void ssterf( const MKL_INT* n, float* d, float* e, MKL_INT* info );
void ssterf_( const MKL_INT* n, float* d, float* e, MKL_INT* info );

void SSTEVD( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSTEVD_( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sstevd( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void sstevd_( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSTEV( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
            const MKL_INT* ldz, float* work, MKL_INT* info );
void SSTEV_( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );
void sstev( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
            const MKL_INT* ldz, float* work, MKL_INT* info );
void sstev_( const char* jobz, const MKL_INT* n, float* d, float* e, float* z,
             const MKL_INT* ldz, float* work, MKL_INT* info );

void SSTEVR( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void SSTEVR_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void sstevr( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void sstevr_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, MKL_INT* isuppz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void SSTEVX( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void SSTEVX_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void sstevx( const char* jobz, const char* range, const MKL_INT* n, float* d,
             float* e, const float* vl, const float* vu, const MKL_INT* il,
             const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
             float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void sstevx_( const char* jobz, const char* range, const MKL_INT* n, float* d,
              float* e, const float* vl, const float* vu, const MKL_INT* il,
              const MKL_INT* iu, const float* abstol, MKL_INT* m, float* w,
              float* z, const MKL_INT* ldz, float* work, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void SSYCON( const char* uplo, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
             float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void SSYCON_( const char* uplo, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
              float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void ssycon( const char* uplo, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
             float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void ssycon_( const char* uplo, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const float* anorm,
              float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );

void SSYEQUB( char* uplo, const MKL_INT* n, const float* a, const MKL_INT* lda,
              float* s, float* scond, float* amax, float* work,
              MKL_INT* info );
void SSYEQUB_( char* uplo, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* s, float* scond, float* amax,
               float* work, MKL_INT* info );
void ssyequb( char* uplo, const MKL_INT* n, const float* a, const MKL_INT* lda,
              float* s, float* scond, float* amax, float* work,
              MKL_INT* info );
void ssyequb_( char* uplo, const MKL_INT* n, const float* a,
               const MKL_INT* lda, float* s, float* scond, float* amax,
               float* work, MKL_INT* info );

void SSYEVD( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSYEVD_( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssyevd( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssyevd_( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSYEV( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void SSYEV_( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void ssyev( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
            const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void ssyev_( const char* jobz, const char* uplo, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* info );

void SSYEVR( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
             const float* vu, const MKL_INT* il, const MKL_INT* iu,
             const float* abstol, MKL_INT* m, float* w, float* z,
             const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void SSYEVR_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu,
              const float* abstol, MKL_INT* m, float* w, float* z,
              const MKL_INT* ldz, MKL_INT* isuppz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void ssyevr( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
             const float* vu, const MKL_INT* il, const MKL_INT* iu,
             const float* abstol, MKL_INT* m, float* w, float* z,
             const MKL_INT* ldz, MKL_INT* isuppz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ssyevr_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu,
              const float* abstol, MKL_INT* m, float* w, float* z,
              const MKL_INT* ldz, MKL_INT* isuppz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void SSYEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
             const float* vu, const MKL_INT* il, const MKL_INT* iu,
             const float* abstol, MKL_INT* m, float* w, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void SSYEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu,
              const float* abstol, MKL_INT* m, float* w, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ssyevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
             const float* vu, const MKL_INT* il, const MKL_INT* iu,
             const float* abstol, MKL_INT* m, float* w, float* z,
             const MKL_INT* ldz, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ssyevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, float* a, const MKL_INT* lda, const float* vl,
              const float* vu, const MKL_INT* il, const MKL_INT* iu,
              const float* abstol, MKL_INT* m, float* w, float* z,
              const MKL_INT* ldz, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void SSYGS2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             MKL_INT* info );
void SSYGS2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              MKL_INT* info );
void ssygs2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             MKL_INT* info );
void ssygs2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              MKL_INT* info );

void SSYGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             MKL_INT* info );
void SSYGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              MKL_INT* info );
void ssygst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             MKL_INT* info );
void ssygst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              float* a, const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              MKL_INT* info );

void SSYGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void SSYGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssygvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ssygvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
              const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void SSYGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
            const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void SSYGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void ssygv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
            const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
            MKL_INT* info );
void ssygv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, float* a, const MKL_INT* lda, float* b,
             const MKL_INT* ldb, float* w, float* work, const MKL_INT* lwork,
             MKL_INT* info );

void SSYGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
             MKL_INT* info );
void SSYGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );
void ssygvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, const float* vl, const float* vu,
             const MKL_INT* il, const MKL_INT* iu, const float* abstol,
             MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
             MKL_INT* info );
void ssygvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, const float* vl, const float* vu,
              const MKL_INT* il, const MKL_INT* iu, const float* abstol,
              MKL_INT* m, float* w, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* ifail,
              MKL_INT* info );

void SSYRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const float* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void SSYRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const float* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void ssyrfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const float* af,
             const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
             float* berr, float* work, MKL_INT* iwork, MKL_INT* info );
void ssyrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const float* af,
              const MKL_INT* ldaf, const MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* ferr,
              float* berr, float* work, MKL_INT* iwork, MKL_INT* info );

void SSYRFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* s, const float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void SSYRFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
               const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const float* s, const float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void ssyrfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
              const float* s, const float* b, const MKL_INT* ldb, float* x,
              const MKL_INT* ldx, float* rcond, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void ssyrfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
               const float* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
               const float* s, const float* b, const MKL_INT* ldb, float* x,
               const MKL_INT* ldx, float* rcond, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SSYSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
            const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
            float* work, const MKL_INT* lwork, MKL_INT* info );
void SSYSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void ssysv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
            const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
            float* work, const MKL_INT* lwork, MKL_INT* info );
void ssysv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs, float* a,
             const MKL_INT* lda, MKL_INT* ipiv, float* b, const MKL_INT* ldb,
             float* work, const MKL_INT* lwork, MKL_INT* info );

void SSYSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
             float* af, const MKL_INT* ldaf, MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
             float* ferr, float* berr, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void SSYSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              float* af, const MKL_INT* ldaf, MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* ferr, float* berr, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );
void ssysvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
             float* af, const MKL_INT* ldaf, MKL_INT* ipiv, const float* b,
             const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
             float* ferr, float* berr, float* work, const MKL_INT* lwork,
             MKL_INT* iwork, MKL_INT* info );
void ssysvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const float* a, const MKL_INT* lda,
              float* af, const MKL_INT* ldaf, MKL_INT* ipiv, const float* b,
              const MKL_INT* ldb, float* x, const MKL_INT* ldx, float* rcond,
              float* ferr, float* berr, float* work, const MKL_INT* lwork,
              MKL_INT* iwork, MKL_INT* info );

void SSYSVXX( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* s,
              float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void SSYSVXX_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* s,
               float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
               float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );
void ssysvxx( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
              const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* s,
              float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
              float* rcond, float* rpvgrw, float* berr,
              const MKL_INT* n_err_bnds, float* err_bnds_norm,
              float* err_bnds_comp, const MKL_INT* nparams, float* params,
              float* work, MKL_INT* iwork, MKL_INT* info );
void ssysvxx_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, float* a, const MKL_INT* lda, float* af,
               const MKL_INT* ldaf, MKL_INT* ipiv, char* equed, float* s,
               float* b, const MKL_INT* ldb, float* x, const MKL_INT* ldx,
               float* rcond, float* rpvgrw, float* berr,
               const MKL_INT* n_err_bnds, float* err_bnds_norm,
               float* err_bnds_comp, const MKL_INT* nparams, float* params,
               float* work, MKL_INT* iwork, MKL_INT* info );

void SSYTD2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tau, MKL_INT* info );
void SSYTD2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tau, MKL_INT* info );
void ssytd2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tau, MKL_INT* info );
void ssytd2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tau, MKL_INT* info );

void SSYTF2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void SSYTF2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );
void ssytf2( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* info );
void ssytf2_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* info );

void SSYTRD( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tau, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void SSYTRD_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void ssytrd( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* d, float* e, float* tau, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void ssytrd_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* d, float* e, float* tau, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void SSYTRF( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, float* work, const MKL_INT* lwork, MKL_INT* info );
void SSYTRF_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void ssytrf( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             MKL_INT* ipiv, float* work, const MKL_INT* lwork, MKL_INT* info );
void ssytrf_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* ipiv, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void SSYTRI( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             const MKL_INT* ipiv, float* work, MKL_INT* info );
void SSYTRI_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              const MKL_INT* ipiv, float* work, MKL_INT* info );
void ssytri( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
             const MKL_INT* ipiv, float* work, MKL_INT* info );
void ssytri_( const char* uplo, const MKL_INT* n, float* a, const MKL_INT* lda,
              const MKL_INT* ipiv, float* work, MKL_INT* info );

void SSYTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void SSYTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
              float* b, const MKL_INT* ldb, MKL_INT* info );
void ssytrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const float* a, const MKL_INT* lda, const MKL_INT* ipiv, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void ssytrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const float* a, const MKL_INT* lda, const MKL_INT* ipiv,
              float* b, const MKL_INT* ldb, MKL_INT* info );

void STBCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const float* ab,
             const MKL_INT* ldab, float* rcond, float* work, MKL_INT* iwork,
             MKL_INT* info );
void STBCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const float* ab,
              const MKL_INT* ldab, float* rcond, float* work, MKL_INT* iwork,
              MKL_INT* info );
void stbcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const float* ab,
             const MKL_INT* ldab, float* rcond, float* work, MKL_INT* iwork,
             MKL_INT* info );
void stbcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const float* ab,
              const MKL_INT* ldab, float* rcond, float* work, MKL_INT* iwork,
              MKL_INT* info );

void STBRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const float* ab, const MKL_INT* ldab, const float* b,
             const MKL_INT* ldb, const float* x, const MKL_INT* ldx,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void STBRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const float* ab, const MKL_INT* ldab, const float* b,
              const MKL_INT* ldb, const float* x, const MKL_INT* ldx,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );
void stbrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const float* ab, const MKL_INT* ldab, const float* b,
             const MKL_INT* ldb, const float* x, const MKL_INT* ldx,
             float* ferr, float* berr, float* work, MKL_INT* iwork,
             MKL_INT* info );
void stbrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const float* ab, const MKL_INT* ldab, const float* b,
              const MKL_INT* ldb, const float* x, const MKL_INT* ldx,
              float* ferr, float* berr, float* work, MKL_INT* iwork,
              MKL_INT* info );

void STBTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const float* ab, const MKL_INT* ldab, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void STBTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const float* ab, const MKL_INT* ldab, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void stbtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const float* ab, const MKL_INT* ldab, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void stbtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const float* ab, const MKL_INT* ldab, float* b,
              const MKL_INT* ldb, MKL_INT* info );

void STFSM( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const float* alpha, const float* a, float* b,
            const MKL_INT* ldb );
void STFSM_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const float* alpha, const float* a, float* b,
             const MKL_INT* ldb );
void stfsm( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const float* alpha, const float* a, float* b,
            const MKL_INT* ldb );
void stfsm_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const float* alpha, const float* a, float* b,
             const MKL_INT* ldb );

void STFTRI( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, float* a, MKL_INT* info );
void STFTRI_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, float* a, MKL_INT* info );
void stftri( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, float* a, MKL_INT* info );
void stftri_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, float* a, MKL_INT* info );

void STFTTP( const char* transr, const char* uplo, const MKL_INT* n,
             const float* arf, float* ap, MKL_INT* info );
void STFTTP_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* arf, float* ap, MKL_INT* info );
void stfttp( const char* transr, const char* uplo, const MKL_INT* n,
             const float* arf, float* ap, MKL_INT* info );
void stfttp_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* arf, float* ap, MKL_INT* info );

void STFTTR( const char* transr, const char* uplo, const MKL_INT* n,
             const float* arf, float* a, const MKL_INT* lda, MKL_INT* info );
void STFTTR_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* arf, float* a, const MKL_INT* lda, MKL_INT* info );
void stfttr( const char* transr, const char* uplo, const MKL_INT* n,
             const float* arf, float* a, const MKL_INT* lda, MKL_INT* info );
void stfttr_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* arf, float* a, const MKL_INT* lda, MKL_INT* info );

void STGEVC( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const float* s, const MKL_INT* lds,
             const float* p, const MKL_INT* ldp, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );
void STGEVC_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const float* s, const MKL_INT* lds,
              const float* p, const MKL_INT* ldp, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );
void stgevc( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const float* s, const MKL_INT* lds,
             const float* p, const MKL_INT* ldp, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );
void stgevc_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const float* s, const MKL_INT* lds,
              const float* p, const MKL_INT* ldp, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );

void STGEX2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void STGEX2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              float* work, const MKL_INT* lwork, MKL_INT* info );
void stgex2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
             const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
             float* work, const MKL_INT* lwork, MKL_INT* info );
void stgex2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
              const MKL_INT* j1, const MKL_INT* n1, const MKL_INT* n2,
              float* work, const MKL_INT* lwork, MKL_INT* info );

void STGEXC( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
             MKL_INT* ifst, MKL_INT* ilst, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void STGEXC_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
              MKL_INT* ifst, MKL_INT* ilst, float* work, const MKL_INT* lwork,
              MKL_INT* info );
void stgexc( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
             MKL_INT* ifst, MKL_INT* ilst, float* work, const MKL_INT* lwork,
             MKL_INT* info );
void stgexc_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* q, const MKL_INT* ldq, float* z, const MKL_INT* ldz,
              MKL_INT* ifst, MKL_INT* ilst, float* work, const MKL_INT* lwork,
              MKL_INT* info );

void STGSEN( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
             float* alphai, float* beta, float* q, const MKL_INT* ldq,
             float* z, const MKL_INT* ldz, MKL_INT* m, float* pl, float* pr,
             float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void STGSEN_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
              float* alphai, float* beta, float* q, const MKL_INT* ldq,
              float* z, const MKL_INT* ldz, MKL_INT* m, float* pl, float* pr,
              float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );
void stgsen( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
             float* alphai, float* beta, float* q, const MKL_INT* ldq,
             float* z, const MKL_INT* ldz, MKL_INT* m, float* pl, float* pr,
             float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void stgsen_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* alphar,
              float* alphai, float* beta, float* q, const MKL_INT* ldq,
              float* z, const MKL_INT* ldz, MKL_INT* m, float* pl, float* pr,
              float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );

void STGSJA( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, const float* tola,
             const float* tolb, float* alpha, float* beta, float* u,
             const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
             const MKL_INT* ldq, float* work, MKL_INT* ncycle, MKL_INT* info );
void STGSJA_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, const float* tola,
              const float* tolb, float* alpha, float* beta, float* u,
              const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
              const MKL_INT* ldq, float* work, MKL_INT* ncycle,
              MKL_INT* info );
void stgsja( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, float* a, const MKL_INT* lda,
             float* b, const MKL_INT* ldb, const float* tola,
             const float* tolb, float* alpha, float* beta, float* u,
             const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
             const MKL_INT* ldq, float* work, MKL_INT* ncycle, MKL_INT* info );
void stgsja_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, float* a, const MKL_INT* lda,
              float* b, const MKL_INT* ldb, const float* tola,
              const float* tolb, float* alpha, float* beta, float* u,
              const MKL_INT* ldu, float* v, const MKL_INT* ldv, float* q,
              const MKL_INT* ldq, float* work, MKL_INT* ncycle,
              MKL_INT* info );

void STGSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             const float* b, const MKL_INT* ldb, const float* vl,
             const MKL_INT* ldvl, const float* vr, const MKL_INT* ldvr,
             float* s, float* dif, const MKL_INT* mm, MKL_INT* m, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void STGSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              const float* b, const MKL_INT* ldb, const float* vl,
              const MKL_INT* ldvl, const float* vr, const MKL_INT* ldvr,
              float* s, float* dif, const MKL_INT* mm, MKL_INT* m, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void stgsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             const float* b, const MKL_INT* ldb, const float* vl,
             const MKL_INT* ldvl, const float* vr, const MKL_INT* ldvr,
             float* s, float* dif, const MKL_INT* mm, MKL_INT* m, float* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void stgsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              const float* b, const MKL_INT* ldb, const float* vl,
              const MKL_INT* ldvl, const float* vr, const MKL_INT* ldvr,
              float* s, float* dif, const MKL_INT* mm, MKL_INT* m, float* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void STGSY2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
             const float* d, const MKL_INT* ldd, const float* e,
             const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
             float* rdsum, float* rdscal, MKL_INT* iwork, MKL_INT* pq,
             MKL_INT* info );
void STGSY2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
              const float* d, const MKL_INT* ldd, const float* e,
              const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
              float* rdsum, float* rdscal, MKL_INT* iwork, MKL_INT* pq,
              MKL_INT* info );
void stgsy2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
             const float* d, const MKL_INT* ldd, const float* e,
             const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
             float* rdsum, float* rdscal, MKL_INT* iwork, MKL_INT* pq,
             MKL_INT* info );
void stgsy2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
              const float* d, const MKL_INT* ldd, const float* e,
              const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
              float* rdsum, float* rdscal, MKL_INT* iwork, MKL_INT* pq,
              MKL_INT* info );

void STGSYL( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
             const float* d, const MKL_INT* ldd, const float* e,
             const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
             float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void STGSYL_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
              const float* d, const MKL_INT* ldd, const float* e,
              const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
              float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );
void stgsyl( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
             const float* d, const MKL_INT* ldd, const float* e,
             const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
             float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void stgsyl_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              const float* b, const MKL_INT* ldb, float* c, const MKL_INT* ldc,
              const float* d, const MKL_INT* ldd, const float* e,
              const MKL_INT* lde, float* f, const MKL_INT* ldf, float* scale,
              float* dif, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );

void STPCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const float* ap, float* rcond, float* work,
             MKL_INT* iwork, MKL_INT* info );
void STPCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const float* ap, float* rcond, float* work,
              MKL_INT* iwork, MKL_INT* info );
void stpcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const float* ap, float* rcond, float* work,
             MKL_INT* iwork, MKL_INT* info );
void stpcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const float* ap, float* rcond, float* work,
              MKL_INT* iwork, MKL_INT* info );

void STPRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* ap,
             const float* b, const MKL_INT* ldb, const float* x,
             const MKL_INT* ldx, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void STPRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* ap,
              const float* b, const MKL_INT* ldb, const float* x,
              const MKL_INT* ldx, float* ferr, float* berr, float* work,
              MKL_INT* iwork, MKL_INT* info );
void stprfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* ap,
             const float* b, const MKL_INT* ldb, const float* x,
             const MKL_INT* ldx, float* ferr, float* berr, float* work,
             MKL_INT* iwork, MKL_INT* info );
void stprfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* ap,
              const float* b, const MKL_INT* ldb, const float* x,
              const MKL_INT* ldx, float* ferr, float* berr, float* work,
              MKL_INT* iwork, MKL_INT* info );

void STPTRI( const char* uplo, const char* diag, const MKL_INT* n, float* ap,
             MKL_INT* info );
void STPTRI_( const char* uplo, const char* diag, const MKL_INT* n, float* ap,
              MKL_INT* info );
void stptri( const char* uplo, const char* diag, const MKL_INT* n, float* ap,
             MKL_INT* info );
void stptri_( const char* uplo, const char* diag, const MKL_INT* n, float* ap,
              MKL_INT* info );

void STPTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* ap, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void STPTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* ap, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void stptrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* ap, float* b,
             const MKL_INT* ldb, MKL_INT* info );
void stptrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* ap, float* b,
              const MKL_INT* ldb, MKL_INT* info );

void STPTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const float* ap, float* arf, MKL_INT* info );
void STPTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* ap, float* arf, MKL_INT* info );
void stpttf( const char* transr, const char* uplo, const MKL_INT* n,
             const float* ap, float* arf, MKL_INT* info );
void stpttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* ap, float* arf, MKL_INT* info );

void STPTTR( const char* uplo, const MKL_INT* n, const float* ap, float* a,
             const MKL_INT* lda, MKL_INT* info );
void STPTTR_( const char* uplo, const MKL_INT* n, const float* ap, float* a,
              const MKL_INT* lda, MKL_INT* info );
void stpttr( const char* uplo, const MKL_INT* n, const float* ap, float* a,
             const MKL_INT* lda, MKL_INT* info );
void stpttr_( const char* uplo, const MKL_INT* n, const float* ap, float* a,
              const MKL_INT* lda, MKL_INT* info );

void STRCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void STRCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void strcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const float* a, const MKL_INT* lda,
             float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );
void strcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const float* a, const MKL_INT* lda,
              float* rcond, float* work, MKL_INT* iwork, MKL_INT* info );

void STREVC( const char* side, const char* howmny, MKL_INT* select,
             const MKL_INT* n, const float* t, const MKL_INT* ldt, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );
void STREVC_( const char* side, const char* howmny, MKL_INT* select,
              const MKL_INT* n, const float* t, const MKL_INT* ldt, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );
void strevc( const char* side, const char* howmny, MKL_INT* select,
             const MKL_INT* n, const float* t, const MKL_INT* ldt, float* vl,
             const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );
void strevc_( const char* side, const char* howmny, MKL_INT* select,
              const MKL_INT* n, const float* t, const MKL_INT* ldt, float* vl,
              const MKL_INT* ldvl, float* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, float* work, MKL_INT* info );

void STREXC( const char* compq, const MKL_INT* n, float* t, const MKL_INT* ldt,
             float* q, const MKL_INT* ldq, MKL_INT* ifst, MKL_INT* ilst,
             float* work, MKL_INT* info );
void STREXC_( const char* compq, const MKL_INT* n, float* t,
              const MKL_INT* ldt, float* q, const MKL_INT* ldq, MKL_INT* ifst,
              MKL_INT* ilst, float* work, MKL_INT* info );
void strexc( const char* compq, const MKL_INT* n, float* t, const MKL_INT* ldt,
             float* q, const MKL_INT* ldq, MKL_INT* ifst, MKL_INT* ilst,
             float* work, MKL_INT* info );
void strexc_( const char* compq, const MKL_INT* n, float* t,
              const MKL_INT* ldt, float* q, const MKL_INT* ldq, MKL_INT* ifst,
              MKL_INT* ilst, float* work, MKL_INT* info );

void STRRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* a,
             const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             const float* x, const MKL_INT* ldx, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void STRRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* a,
              const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              const float* x, const MKL_INT* ldx, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );
void strrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* a,
             const MKL_INT* lda, const float* b, const MKL_INT* ldb,
             const float* x, const MKL_INT* ldx, float* ferr, float* berr,
             float* work, MKL_INT* iwork, MKL_INT* info );
void strrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* a,
              const MKL_INT* lda, const float* b, const MKL_INT* ldb,
              const float* x, const MKL_INT* ldx, float* ferr, float* berr,
              float* work, MKL_INT* iwork, MKL_INT* info );

void STRSEN( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, float* t, const MKL_INT* ldt, float* q,
             const MKL_INT* ldq, float* wr, float* wi, MKL_INT* m, float* s,
             float* sep, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void STRSEN_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, float* t, const MKL_INT* ldt, float* q,
              const MKL_INT* ldq, float* wr, float* wi, MKL_INT* m, float* s,
              float* sep, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );
void strsen( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, float* t, const MKL_INT* ldt, float* q,
             const MKL_INT* ldq, float* wr, float* wi, MKL_INT* m, float* s,
             float* sep, float* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void strsen_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, float* t, const MKL_INT* ldt, float* q,
              const MKL_INT* ldq, float* wr, float* wi, MKL_INT* m, float* s,
              float* sep, float* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );

void STRSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const float* t, const MKL_INT* ldt,
             const float* vl, const MKL_INT* ldvl, const float* vr,
             const MKL_INT* ldvr, float* s, float* sep, const MKL_INT* mm,
             MKL_INT* m, float* work, const MKL_INT* ldwork, MKL_INT* iwork,
             MKL_INT* info );
void STRSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const float* t, const MKL_INT* ldt,
              const float* vl, const MKL_INT* ldvl, const float* vr,
              const MKL_INT* ldvr, float* s, float* sep, const MKL_INT* mm,
              MKL_INT* m, float* work, const MKL_INT* ldwork, MKL_INT* iwork,
              MKL_INT* info );
void strsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const float* t, const MKL_INT* ldt,
             const float* vl, const MKL_INT* ldvl, const float* vr,
             const MKL_INT* ldvr, float* s, float* sep, const MKL_INT* mm,
             MKL_INT* m, float* work, const MKL_INT* ldwork, MKL_INT* iwork,
             MKL_INT* info );
void strsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const float* t, const MKL_INT* ldt,
              const float* vl, const MKL_INT* ldvl, const float* vr,
              const MKL_INT* ldvr, float* s, float* sep, const MKL_INT* mm,
              MKL_INT* m, float* work, const MKL_INT* ldwork, MKL_INT* iwork,
              MKL_INT* info );

void STRSYL( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* b, const MKL_INT* ldb, float* c,
             const MKL_INT* ldc, float* scale, MKL_INT* info );
void STRSYL_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* b, const MKL_INT* ldb, float* c,
              const MKL_INT* ldc, float* scale, MKL_INT* info );
void strsyl( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* b, const MKL_INT* ldb, float* c,
             const MKL_INT* ldc, float* scale, MKL_INT* info );
void strsyl_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* b, const MKL_INT* ldb, float* c,
              const MKL_INT* ldc, float* scale, MKL_INT* info );

void STRTI2( const char* uplo, const char* diag, const MKL_INT* n, float* a,
             const MKL_INT* lda, MKL_INT* info );
void STRTI2_( const char* uplo, const char* diag, const MKL_INT* n, float* a,
              const MKL_INT* lda, MKL_INT* info );
void strti2( const char* uplo, const char* diag, const MKL_INT* n, float* a,
             const MKL_INT* lda, MKL_INT* info );
void strti2_( const char* uplo, const char* diag, const MKL_INT* n, float* a,
              const MKL_INT* lda, MKL_INT* info );

void STRTRI( const char* uplo, const char* diag, const MKL_INT* n, float* a,
             const MKL_INT* lda, MKL_INT* info );
void STRTRI_( const char* uplo, const char* diag, const MKL_INT* n, float* a,
              const MKL_INT* lda, MKL_INT* info );
void strtri( const char* uplo, const char* diag, const MKL_INT* n, float* a,
             const MKL_INT* lda, MKL_INT* info );
void strtri_( const char* uplo, const char* diag, const MKL_INT* n, float* a,
              const MKL_INT* lda, MKL_INT* info );

void STRTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* info );
void STRTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* info );
void strtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, MKL_INT* info );
void strtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb,
              MKL_INT* info );

void STRTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const float* a, const MKL_INT* lda, float* arf, MKL_INT* info );
void STRTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* arf, MKL_INT* info );
void strttf( const char* transr, const char* uplo, const MKL_INT* n,
             const float* a, const MKL_INT* lda, float* arf, MKL_INT* info );
void strttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const float* a, const MKL_INT* lda, float* arf, MKL_INT* info );

void STRTTP( const char* uplo, const MKL_INT* n, const float* a,
             const MKL_INT* lda, float* ap, MKL_INT* info );
void STRTTP_( const char* uplo, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* ap, MKL_INT* info );
void strttp( const char* uplo, const MKL_INT* n, const float* a,
             const MKL_INT* lda, float* ap, MKL_INT* info );
void strttp_( const char* uplo, const MKL_INT* n, const float* a,
              const MKL_INT* lda, float* ap, MKL_INT* info );

void STZRQF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, MKL_INT* info );
void STZRQF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, MKL_INT* info );
void stzrqf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, MKL_INT* info );
void stzrqf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, MKL_INT* info );

void STZRZF( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void STZRZF_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void stzrzf( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
             float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );
void stzrzf_( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* tau, float* work, const MKL_INT* lwork, MKL_INT* info );

void XERBLA_ARRAY( const char* srname_array, const MKL_INT* srname_len,
                   const MKL_INT* info );
void XERBLA_ARRAY_( const char* srname_array, const MKL_INT* srname_len,
                    const MKL_INT* info );
void xerbla_array( const char* srname_array, const MKL_INT* srname_len,
                   const MKL_INT* info );
void xerbla_array_( const char* srname_array, const MKL_INT* srname_len,
                    const MKL_INT* info );

void ZBDSQR( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
             MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* u,
             const MKL_INT* ldu, MKL_Complex16* c, const MKL_INT* ldc,
             double* rwork, MKL_INT* info );
void ZBDSQR_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
              MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* u,
              const MKL_INT* ldu, MKL_Complex16* c, const MKL_INT* ldc,
              double* rwork, MKL_INT* info );
void zbdsqr( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
             const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
             MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* u,
             const MKL_INT* ldu, MKL_Complex16* c, const MKL_INT* ldc,
             double* rwork, MKL_INT* info );
void zbdsqr_( const char* uplo, const MKL_INT* n, const MKL_INT* ncvt,
              const MKL_INT* nru, const MKL_INT* ncc, double* d, double* e,
              MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* u,
              const MKL_INT* ldu, MKL_Complex16* c, const MKL_INT* ldc,
              double* rwork, MKL_INT* info );

void ZCGESV( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
             MKL_INT* iter, MKL_INT* info );
void ZCGESV_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
              MKL_INT* iter, MKL_INT* info );
void zcgesv( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
             MKL_INT* iter, MKL_INT* info );
void zcgesv_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
              MKL_INT* iter, MKL_INT* info );

void ZCPOSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
             MKL_INT* iter, MKL_INT* info );
void ZCPOSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
              MKL_INT* iter, MKL_INT* info );
void zcposv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
             MKL_INT* iter, MKL_INT* info );
void zcposv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              MKL_Complex16* work, MKL_Complex8* swork, double* rwork,
              MKL_INT* iter, MKL_INT* info );

void ZDRSCL( const MKL_INT* n, const double* sa, MKL_Complex16* sx,
             const MKL_INT* incx );
void ZDRSCL_( const MKL_INT* n, const double* sa, MKL_Complex16* sx,
              const MKL_INT* incx );
void zdrscl( const MKL_INT* n, const double* sa, MKL_Complex16* sx,
             const MKL_INT* incx );
void zdrscl_( const MKL_INT* n, const double* sa, MKL_Complex16* sx,
              const MKL_INT* incx );

void ZGBBRD( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             MKL_Complex16* ab, const MKL_INT* ldab, double* d, double* e,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* pt,
             const MKL_INT* ldpt, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGBBRD_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              MKL_Complex16* ab, const MKL_INT* ldab, double* d, double* e,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* pt,
              const MKL_INT* ldpt, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbbrd( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
             MKL_Complex16* ab, const MKL_INT* ldab, double* d, double* e,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* pt,
             const MKL_INT* ldpt, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbbrd_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* ncc, const MKL_INT* kl, const MKL_INT* ku,
              MKL_Complex16* ab, const MKL_INT* ldab, double* d, double* e,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* pt,
              const MKL_INT* ldpt, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGBCON( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGBCON_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbcon( const char* norm, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbcon_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGBEQUB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );
void ZGBEQUB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* r, double* c, double* rowcnd, double* colcnd,
               double* amax, MKL_INT* info );
void zgbequb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );
void zgbequb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* r, double* c, double* rowcnd, double* colcnd,
               double* amax, MKL_INT* info );

void ZGBEQU( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
             double* r, double* c, double* rowcnd, double* colcnd,
             double* amax, MKL_INT* info );
void ZGBEQU_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );
void zgbequ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
             double* r, double* c, double* rowcnd, double* colcnd,
             double* amax, MKL_INT* info );
void zgbequ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
              double* r, double* c, double* rowcnd, double* colcnd,
              double* amax, MKL_INT* info );

void ZGBRFS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
             const MKL_INT* ldab, const MKL_Complex16* afb,
             const MKL_INT* ldafb, const MKL_INT* ipiv, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* ferr, double* berr, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ZGBRFS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_Complex16* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbrfs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
             const MKL_INT* ldab, const MKL_Complex16* afb,
             const MKL_INT* ldafb, const MKL_INT* ipiv, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* ferr, double* berr, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void zgbrfs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_Complex16* afb,
              const MKL_INT* ldafb, const MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGBRFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const MKL_Complex16* ab, const MKL_INT* ldab,
              const MKL_Complex16* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const double* r, const double* c,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGBRFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const MKL_Complex16* ab, const MKL_INT* ldab,
               const MKL_Complex16* afb, const MKL_INT* ldafb,
               const MKL_INT* ipiv, const double* r, const double* c,
               const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbrfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              const MKL_Complex16* ab, const MKL_INT* ldab,
              const MKL_Complex16* afb, const MKL_INT* ldafb,
              const MKL_INT* ipiv, const double* r, const double* c,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbrfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               const MKL_Complex16* ab, const MKL_INT* ldab,
               const MKL_Complex16* afb, const MKL_INT* ldafb,
               const MKL_INT* ipiv, const double* r, const double* c,
               const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGBSV( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
            MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
            MKL_INT* info );
void ZGBSV_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void zgbsv( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
            const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
            MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
            MKL_INT* info );
void zgbsv_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
             const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );

void ZGBSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
             const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
             double* c, MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGBSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zgbsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
             const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
             double* c, MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgbsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZGBSVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ZGBSVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
               double* c, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
               double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );
void zgbsvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
              const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
              double* c, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zgbsvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* nrhs,
               MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* afb,
               const MKL_INT* ldafb, MKL_INT* ipiv, char* equed, double* r,
               double* c, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
               double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );

void ZGBTF2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void ZGBTF2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );
void zgbtf2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void zgbtf2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );

void ZGBTRF( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void ZGBTRF_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );
void zgbtrf( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_INT* ipiv, MKL_INT* info );
void zgbtrf_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
              MKL_INT* ipiv, MKL_INT* info );

void ZGBTRS( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZGBTRS_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zgbtrs( const char* trans, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
             const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zgbtrs_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_INT* ipiv, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZGEBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
             const MKL_INT* m, MKL_Complex16* v, const MKL_INT* ldv,
             MKL_INT* info );
void ZGEBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
              const MKL_INT* m, MKL_Complex16* v, const MKL_INT* ldv,
              MKL_INT* info );
void zgebak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
             const MKL_INT* m, MKL_Complex16* v, const MKL_INT* ldv,
             MKL_INT* info );
void zgebak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* scale,
              const MKL_INT* m, MKL_Complex16* v, const MKL_INT* ldv,
              MKL_INT* info );

void ZGEBAL( const char* job, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, double* scale,
             MKL_INT* info );
void ZGEBAL_( const char* job, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, double* scale,
              MKL_INT* info );
void zgebal( const char* job, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, double* scale,
             MKL_INT* info );
void zgebal_( const char* job, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ilo, MKL_INT* ihi, double* scale,
              MKL_INT* info );

void ZGEBD2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
             MKL_Complex16* taup, MKL_Complex16* work, MKL_INT* info );
void ZGEBD2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
              MKL_Complex16* taup, MKL_Complex16* work, MKL_INT* info );
void zgebd2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
             MKL_Complex16* taup, MKL_Complex16* work, MKL_INT* info );
void zgebd2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
              MKL_Complex16* taup, MKL_Complex16* work, MKL_INT* info );

void ZGEBRD( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
             MKL_Complex16* taup, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZGEBRD_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
              MKL_Complex16* taup, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zgebrd( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
             MKL_Complex16* taup, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zgebrd_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tauq,
              MKL_Complex16* taup, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZGECON( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGECON_( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgecon( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgecon_( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGEEQUB( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );
void ZGEEQUB_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* r, double* c, double* rowcnd,
               double* colcnd, double* amax, MKL_INT* info );
void zgeequb( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );
void zgeequb_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* r, double* c, double* rowcnd,
               double* colcnd, double* amax, MKL_INT* info );

void ZGEEQU( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, double* r, double* c, double* rowcnd,
             double* colcnd, double* amax, MKL_INT* info );
void ZGEEQU_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );
void zgeequ( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, double* r, double* c, double* rowcnd,
             double* colcnd, double* amax, MKL_INT* info );
void zgeequ_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* r, double* c, double* rowcnd,
              double* colcnd, double* amax, MKL_INT* info );

void ZGEES( const char* jobvs, const char* sort,
            MKL_Z_SELECT_FUNCTION_1 select, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_INT* sdim, MKL_Complex16* w,
            MKL_Complex16* vs, const MKL_INT* ldvs, MKL_Complex16* work,
            const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
            MKL_INT* info );
void ZGEES_( const char* jobvs, const char* sort,
             MKL_Z_SELECT_FUNCTION_1 select, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* sdim,
             MKL_Complex16* w, MKL_Complex16* vs, const MKL_INT* ldvs,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* bwork, MKL_INT* info );
void zgees( const char* jobvs, const char* sort,
            MKL_Z_SELECT_FUNCTION_1 select, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_INT* sdim, MKL_Complex16* w,
            MKL_Complex16* vs, const MKL_INT* ldvs, MKL_Complex16* work,
            const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
            MKL_INT* info );
void zgees_( const char* jobvs, const char* sort,
             MKL_Z_SELECT_FUNCTION_1 select, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* sdim,
             MKL_Complex16* w, MKL_Complex16* vs, const MKL_INT* ldvs,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* bwork, MKL_INT* info );

void ZGEESX( const char* jobvs, const char* sort,
             MKL_Z_SELECT_FUNCTION_1 select, const char* sense,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* sdim, MKL_Complex16* w, MKL_Complex16* vs,
             const MKL_INT* ldvs, double* rconde, double* rcondv,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* bwork, MKL_INT* info );
void ZGEESX_( const char* jobvs, const char* sort,
              MKL_Z_SELECT_FUNCTION_1 select, const char* sense,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* sdim, MKL_Complex16* w, MKL_Complex16* vs,
              const MKL_INT* ldvs, double* rconde, double* rcondv,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* bwork, MKL_INT* info );
void zgeesx( const char* jobvs, const char* sort,
             MKL_Z_SELECT_FUNCTION_1 select, const char* sense,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* sdim, MKL_Complex16* w, MKL_Complex16* vs,
             const MKL_INT* ldvs, double* rconde, double* rcondv,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* bwork, MKL_INT* info );
void zgeesx_( const char* jobvs, const char* sort,
              MKL_Z_SELECT_FUNCTION_1 select, const char* sense,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* sdim, MKL_Complex16* w, MKL_Complex16* vs,
              const MKL_INT* ldvs, double* rconde, double* rcondv,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* bwork, MKL_INT* info );

void ZGEEV( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* w,
            MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
            const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void ZGEEV_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* w,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zgeev( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* w,
            MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
            const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void zgeev_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* w,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );

void ZGEEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* w, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
             double* rconde, double* rcondv, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* info );
void ZGEEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* w, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
              double* rconde, double* rcondv, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* info );
void zgeevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* w, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
             double* rconde, double* rcondv, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* info );
void zgeevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* w, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* scale, double* abnrm,
              double* rconde, double* rcondv, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* info );

void ZGEGS( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr,
            const MKL_INT* ldvsr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void ZGEGS_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr,
             const MKL_INT* ldvsr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zgegs( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr,
            const MKL_INT* ldvsr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void zgegs_( const char* jobvsl, const char* jobvsr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr,
             const MKL_INT* ldvsr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );

void ZGEGV( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
            const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void ZGEGV_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zgegv( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
            const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void zgegv_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );

void ZGEHD2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void ZGEHD2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );
void zgehd2( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void zgehd2_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );

void ZGEHRD( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGEHRD_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgehrd( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zgehrd_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZGELQ2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void ZGELQ2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );
void zgelq2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void zgelq2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );

void ZGELQF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZGELQF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgelqf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zgelqf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZGELSD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, double* s, const double* rcond, MKL_INT* rank,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* iwork, MKL_INT* info );
void ZGELSD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, double* s, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* iwork, MKL_INT* info );
void zgelsd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, double* s, const double* rcond, MKL_INT* rank,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* iwork, MKL_INT* info );
void zgelsd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, double* s, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* iwork, MKL_INT* info );

void ZGELS( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
            const MKL_INT* lwork, MKL_INT* info );
void ZGELS_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zgels( const char* trans, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
            const MKL_INT* lwork, MKL_INT* info );
void zgels_( const char* trans, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );

void ZGELSS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, double* s, const double* rcond, MKL_INT* rank,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void ZGELSS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, double* s, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* info );
void zgelss( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, double* s, const double* rcond, MKL_INT* rank,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zgelss_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, double* s, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* info );

void ZGELSX( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
             MKL_INT* rank, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ZGELSX_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zgelsx( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
             MKL_INT* rank, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void zgelsx_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZGELSY( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
             MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void ZGELSY_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* info );
void zgelsy( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
             MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zgelsy_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nrhs,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* jpvt, const double* rcond,
              MKL_INT* rank, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* info );

void ZGEQL2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void ZGEQL2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );
void zgeql2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void zgeql2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );

void ZGEQLF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZGEQLF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgeqlf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zgeqlf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZGEQP3( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void ZGEQP3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );
void zgeqp3( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zgeqp3_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );

void ZGEQPF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGEQPF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgeqpf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgeqpf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGEQR2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void ZGEQR2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );
void zgeqr2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void zgeqr2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );

void ZGEQR2P( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );
void ZGEQR2P_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
               MKL_INT* info );
void zgeqr2p( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );
void zgeqr2p_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
               MKL_INT* info );

void ZGEQRF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZGEQRF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgeqrf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zgeqrf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZGEQRFP( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZGEQRFP_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zgeqrfp( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgeqrfp_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZGERFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGERFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgerfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgerfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGERFSX( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const double* r, const double* c,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGERFSX_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const double* r, const double* c,
               const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgerfsx( const char* trans, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const double* r, const double* c,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgerfsx_( const char* trans, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const double* r, const double* c,
               const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGERQ2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void ZGERQ2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );
void zgerq2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             MKL_INT* info );
void zgerq2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              MKL_INT* info );

void ZGERQF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZGERQF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zgerqf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zgerqf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZGESC2( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
             double* scale );
void ZGESC2_( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
              double* scale );
void zgesc2( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
             double* scale );
void zgesc2_( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* rhs, const MKL_INT* ipiv, const MKL_INT* jpiv,
              double* scale );

void ZGESDD( const char* jobz, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* s, MKL_Complex16* u,
             const MKL_INT* ldu, MKL_Complex16* vt, const MKL_INT* ldvt,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* iwork, MKL_INT* info );
void ZGESDD_( const char* jobz, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, double* s,
              MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
              const MKL_INT* ldvt, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* iwork, MKL_INT* info );
void zgesdd( const char* jobz, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* s, MKL_Complex16* u,
             const MKL_INT* ldu, MKL_Complex16* vt, const MKL_INT* ldvt,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* iwork, MKL_INT* info );
void zgesdd_( const char* jobz, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, double* s,
              MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
              const MKL_INT* ldvt, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* iwork, MKL_INT* info );

void ZGESVD( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, double* s,
             MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
             const MKL_INT* ldvt, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void ZGESVD_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              double* s, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* info );
void zgesvd( const char* jobu, const char* jobvt, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda, double* s,
             MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* vt,
             const MKL_INT* ldvt, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zgesvd_( const char* jobu, const char* jobvt, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              double* s, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* vt, const MKL_INT* ldvt, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* info );

void ZGESV( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
            const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void ZGESV_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zgesv( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
            const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void zgesv_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );

void ZGESVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             char* equed, double* r, double* c, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* rcond, double* ferr, double* berr, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void ZGESVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* r, double* c, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* ferr, double* berr, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zgesvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             char* equed, double* r, double* c, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* rcond, double* ferr, double* berr, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void zgesvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* r, double* c, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* ferr, double* berr, MKL_Complex16* work,
              double* rwork, MKL_INT* info );

void ZGESVXX( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* r, double* c, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGESVXX_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, double* r, double* c, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
               double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgesvxx( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* r, double* c, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgesvxx_( const char* fact, const char* trans, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, double* r, double* c, MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
               double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGETC2( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );
void ZGETC2_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );
void zgetc2( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );
void zgetc2_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* ipiv, MKL_INT* jpiv, MKL_INT* info );

void ZGETF2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void ZGETF2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zgetf2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zgetf2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void ZGETRF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void ZGETRF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zgetrf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zgetrf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void MKL_ZGETRFNPI( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void MKL_ZGETRFNPI_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void mkl_zgetrfnpi( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void mkl_zgetrfnpi_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nfact,
                     MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );

void ZGETRI( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZGETRI_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zgetri( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zgetri_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const MKL_INT* ipiv, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZGETRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZGETRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zgetrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zgetrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void ZGGBAK( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
             const double* rscale, const MKL_INT* m, MKL_Complex16* v,
             const MKL_INT* ldv, MKL_INT* info );
void ZGGBAK_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
              const double* rscale, const MKL_INT* m, MKL_Complex16* v,
              const MKL_INT* ldv, MKL_INT* info );
void zggbak( const char* job, const char* side, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
             const double* rscale, const MKL_INT* m, MKL_Complex16* v,
             const MKL_INT* ldv, MKL_INT* info );
void zggbak_( const char* job, const char* side, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, const double* lscale,
              const double* rscale, const MKL_INT* m, MKL_Complex16* v,
              const MKL_INT* ldv, MKL_INT* info );

void ZGGBAL( const char* job, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
             double* work, MKL_INT* info );
void ZGGBAL_( const char* job, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
              double* work, MKL_INT* info );
void zggbal( const char* job, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
             double* work, MKL_INT* info );
void zggbal_( const char* job, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
              double* work, MKL_INT* info );

void ZGGES( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_Z_SELECT_FUNCTION_2 selctg, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
            MKL_INT* sdim, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr,
            const MKL_INT* ldvsr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* bwork, MKL_INT* info );
void ZGGES_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_Z_SELECT_FUNCTION_2 selctg, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex16* alpha,
             MKL_Complex16* beta, MKL_Complex16* vsl, const MKL_INT* ldvsl,
             MKL_Complex16* vsr, const MKL_INT* ldvsr, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
             MKL_INT* info );
void zgges( const char* jobvsl, const char* jobvsr, const char* sort,
            MKL_Z_SELECT_FUNCTION_2 selctg, const MKL_INT* n, MKL_Complex16* a,
            const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
            MKL_INT* sdim, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vsl, const MKL_INT* ldvsl, MKL_Complex16* vsr,
            const MKL_INT* ldvsr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* bwork, MKL_INT* info );
void zgges_( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_Z_SELECT_FUNCTION_2 selctg, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* sdim, MKL_Complex16* alpha,
             MKL_Complex16* beta, MKL_Complex16* vsl, const MKL_INT* ldvsl,
             MKL_Complex16* vsr, const MKL_INT* ldvsr, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* bwork,
             MKL_INT* info );

void ZGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_Z_SELECT_FUNCTION_2 selctg, const char* sense,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* sdim,
             MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vsl,
             const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
             double* rconde, double* rcondv, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void ZGGESX_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_Z_SELECT_FUNCTION_2 selctg, const char* sense,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* sdim,
              MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vsl,
              const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
              double* rconde, double* rcondv, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void zggesx( const char* jobvsl, const char* jobvsr, const char* sort,
             MKL_Z_SELECT_FUNCTION_2 selctg, const char* sense,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* sdim,
             MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vsl,
             const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
             double* rconde, double* rcondv, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );
void zggesx_( const char* jobvsl, const char* jobvsr, const char* sort,
              MKL_Z_SELECT_FUNCTION_2 selctg, const char* sense,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* sdim,
              MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vsl,
              const MKL_INT* ldvsl, MKL_Complex16* vsr, const MKL_INT* ldvsr,
              double* rconde, double* rcondv, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* bwork, MKL_INT* info );

void ZGGEV( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
            const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void ZGGEV_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zggev( const char* jobvl, const char* jobvr, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
            MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
            const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
            double* rwork, MKL_INT* info );
void zggev_( const char* jobvl, const char* jobvr, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );

void ZGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
             double* abnrm, double* bbnrm, double* rconde, double* rcondv,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void ZGGEVX_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
              double* abnrm, double* bbnrm, double* rconde, double* rcondv,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void zggevx( const char* balanc, const char* jobvl, const char* jobvr,
             const char* sense, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
             double* abnrm, double* bbnrm, double* rconde, double* rcondv,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );
void zggevx_( const char* balanc, const char* jobvl, const char* jobvr,
              const char* sense, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              MKL_INT* ilo, MKL_INT* ihi, double* lscale, double* rscale,
              double* abnrm, double* bbnrm, double* rconde, double* rcondv,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* iwork, MKL_INT* bwork, MKL_INT* info );

void ZGGGLM( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* d, MKL_Complex16* x,
             MKL_Complex16* y, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZGGGLM_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* d, MKL_Complex16* x,
              MKL_Complex16* y, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zggglm( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* d, MKL_Complex16* x,
             MKL_Complex16* y, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zggglm_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* d, MKL_Complex16* x,
              MKL_Complex16* y, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZGGHRD( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_INT* info );
void ZGGHRD_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_INT* info );
void zgghrd( const char* compq, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_INT* info );
void zgghrd_( const char* compq, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_INT* info );

void ZGGLSE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* c, MKL_Complex16* d,
             MKL_Complex16* x, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZGGLSE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* c, MKL_Complex16* d,
              MKL_Complex16* x, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zgglse( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* c, MKL_Complex16* d,
             MKL_Complex16* x, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zgglse_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* p,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* c, MKL_Complex16* d,
              MKL_Complex16* x, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZGGQRF( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGGQRF_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zggqrf( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zggqrf_( const MKL_INT* n, const MKL_INT* m, const MKL_INT* p,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZGGRQF( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZGGRQF_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zggrqf( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zggrqf_( const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* taua,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* taub,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZGGSVD( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, double* alpha, double* beta,
             MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
             const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* work, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void ZGGSVD_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, double* alpha,
              double* beta, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_Complex16* work, double* rwork,
              MKL_INT* iwork, MKL_INT* info );
void zggsvd( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
             MKL_INT* l, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, double* alpha, double* beta,
             MKL_Complex16* u, const MKL_INT* ldu, MKL_Complex16* v,
             const MKL_INT* ldv, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* work, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void zggsvd_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* p, MKL_INT* k,
              MKL_INT* l, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, double* alpha,
              double* beta, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_Complex16* work, double* rwork,
              MKL_INT* iwork, MKL_INT* info );

void ZGGSVP( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, const double* tola, const double* tolb,
             MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu,
             MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
             const MKL_INT* ldq, MKL_INT* iwork, double* rwork,
             MKL_Complex16* tau, MKL_Complex16* work, MKL_INT* info );
void ZGGSVP_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, const double* tola, const double* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_INT* iwork, double* rwork,
              MKL_Complex16* tau, MKL_Complex16* work, MKL_INT* info );
void zggsvp( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, const double* tola, const double* tolb,
             MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu,
             MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
             const MKL_INT* ldq, MKL_INT* iwork, double* rwork,
             MKL_Complex16* tau, MKL_Complex16* work, MKL_INT* info );
void zggsvp_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, const double* tola, const double* tolb,
              MKL_INT* k, MKL_INT* l, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_INT* iwork, double* rwork,
              MKL_Complex16* tau, MKL_Complex16* work, MKL_INT* info );

void ZGTCON( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
             const MKL_Complex16* d, const MKL_Complex16* du,
             const MKL_Complex16* du2, const MKL_INT* ipiv,
             const double* anorm, double* rcond, MKL_Complex16* work,
             MKL_INT* info );
void ZGTCON_( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
              const MKL_Complex16* d, const MKL_Complex16* du,
              const MKL_Complex16* du2, const MKL_INT* ipiv,
              const double* anorm, double* rcond, MKL_Complex16* work,
              MKL_INT* info );
void zgtcon( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
             const MKL_Complex16* d, const MKL_Complex16* du,
             const MKL_Complex16* du2, const MKL_INT* ipiv,
             const double* anorm, double* rcond, MKL_Complex16* work,
             MKL_INT* info );
void zgtcon_( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
              const MKL_Complex16* d, const MKL_Complex16* du,
              const MKL_Complex16* du2, const MKL_INT* ipiv,
              const double* anorm, double* rcond, MKL_Complex16* work,
              MKL_INT* info );

void ZGTRFS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* dl, const MKL_Complex16* d,
             const MKL_Complex16* du, const MKL_Complex16* dlf,
             const MKL_Complex16* df, const MKL_Complex16* duf,
             const MKL_Complex16* du2, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZGTRFS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, const MKL_Complex16* dlf,
              const MKL_Complex16* df, const MKL_Complex16* duf,
              const MKL_Complex16* du2, const MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgtrfs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* dl, const MKL_Complex16* d,
             const MKL_Complex16* du, const MKL_Complex16* dlf,
             const MKL_Complex16* df, const MKL_Complex16* duf,
             const MKL_Complex16* du2, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zgtrfs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, const MKL_Complex16* dlf,
              const MKL_Complex16* df, const MKL_Complex16* duf,
              const MKL_Complex16* du2, const MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZGTSV( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
            MKL_Complex16* d, MKL_Complex16* du, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void ZGTSV_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
             MKL_Complex16* d, MKL_Complex16* du, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zgtsv( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
            MKL_Complex16* d, MKL_Complex16* du, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void zgtsv_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
             MKL_Complex16* d, MKL_Complex16* du, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );

void ZGTSVX( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* dl,
             const MKL_Complex16* d, const MKL_Complex16* du,
             MKL_Complex16* dlf, MKL_Complex16* df, MKL_Complex16* duf,
             MKL_Complex16* du2, MKL_INT* ipiv, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* rcond, double* ferr, double* berr, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void ZGTSVX_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* dl,
              const MKL_Complex16* d, const MKL_Complex16* du,
              MKL_Complex16* dlf, MKL_Complex16* df, MKL_Complex16* duf,
              MKL_Complex16* du2, MKL_INT* ipiv, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* ferr, double* berr, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zgtsvx( const char* fact, const char* trans, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* dl,
             const MKL_Complex16* d, const MKL_Complex16* du,
             MKL_Complex16* dlf, MKL_Complex16* df, MKL_Complex16* duf,
             MKL_Complex16* du2, MKL_INT* ipiv, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* rcond, double* ferr, double* berr, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void zgtsvx_( const char* fact, const char* trans, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* dl,
              const MKL_Complex16* d, const MKL_Complex16* du,
              MKL_Complex16* dlf, MKL_Complex16* df, MKL_Complex16* duf,
              MKL_Complex16* du2, MKL_INT* ipiv, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* ferr, double* berr, MKL_Complex16* work,
              double* rwork, MKL_INT* info );

void ZGTTRF( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
             MKL_Complex16* du, MKL_Complex16* du2, MKL_INT* ipiv,
             MKL_INT* info );
void ZGTTRF_( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
              MKL_Complex16* du, MKL_Complex16* du2, MKL_INT* ipiv,
              MKL_INT* info );
void zgttrf( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
             MKL_Complex16* du, MKL_Complex16* du2, MKL_INT* ipiv,
             MKL_INT* info );
void zgttrf_( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
              MKL_Complex16* du, MKL_Complex16* du2, MKL_INT* ipiv,
              MKL_INT* info );

void ZGTTRS( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* dl, const MKL_Complex16* d,
             const MKL_Complex16* du, const MKL_Complex16* du2,
             const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void ZGTTRS_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, const MKL_Complex16* du2,
              const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );
void zgttrs( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* dl, const MKL_Complex16* d,
             const MKL_Complex16* du, const MKL_Complex16* du2,
             const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void zgttrs_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, const MKL_Complex16* du2,
              const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );

void ZGTTS2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* dl, const MKL_Complex16* d,
             const MKL_Complex16* du, const MKL_Complex16* du2,
             const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb );
void ZGTTS2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, const MKL_Complex16* du2,
              const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb );
void zgtts2( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* dl, const MKL_Complex16* d,
             const MKL_Complex16* du, const MKL_Complex16* du2,
             const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb );
void zgtts2_( const MKL_INT* itrans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, const MKL_Complex16* du2,
              const MKL_INT* ipiv, MKL_Complex16* b, const MKL_INT* ldb );

void ZHBEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ZHBEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
              double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void zhbevd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void zhbevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
              double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void ZHBEV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
            double* w, MKL_Complex16* z, const MKL_INT* ldz,
            MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZHBEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhbev( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
            double* w, MKL_Complex16* z, const MKL_INT* ldz,
            MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhbev_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZHBEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ZHBEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhbevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhbevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* kd, MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* q, const MKL_INT* ldq,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void ZHBGST( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
             const MKL_INT* ldab, const MKL_Complex16* bb, const MKL_INT* ldbb,
             MKL_Complex16* x, const MKL_INT* ldx, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void ZHBGST_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_Complex16* bb,
              const MKL_INT* ldbb, MKL_Complex16* x, const MKL_INT* ldx,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhbgst( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
             const MKL_INT* ldab, const MKL_Complex16* bb, const MKL_INT* ldbb,
             MKL_Complex16* x, const MKL_INT* ldx, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void zhbgst_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_Complex16* bb,
              const MKL_INT* ldbb, MKL_Complex16* x, const MKL_INT* ldx,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZHBGVD( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ZHBGVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
              double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void zhbgvd( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void zhbgvd_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
              double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void ZHBGV( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
            const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
            double* w, MKL_Complex16* z, const MKL_INT* ldz,
            MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZHBGV_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhbgv( const char* jobz, const char* uplo, const MKL_INT* n,
            const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
            const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
            double* w, MKL_Complex16* z, const MKL_INT* ldz,
            MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhbgv_( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* ka, const MKL_INT* kb, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* bb, const MKL_INT* ldbb,
             double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZHBGVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* bb,
             const MKL_INT* ldbb, MKL_Complex16* q, const MKL_INT* ldq,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ZHBGVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* bb,
              const MKL_INT* ldbb, MKL_Complex16* q, const MKL_INT* ldq,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhbgvx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* bb,
             const MKL_INT* ldbb, MKL_Complex16* q, const MKL_INT* ldq,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhbgvx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, const MKL_INT* ka, const MKL_INT* kb,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* bb,
              const MKL_INT* ldbb, MKL_Complex16* q, const MKL_INT* ldq,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              double* rwork, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void ZHBTRD( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
             double* d, double* e, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* work, MKL_INT* info );
void ZHBTRD_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
              double* d, double* e, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* work, MKL_INT* info );
void zhbtrd( const char* vect, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
             double* d, double* e, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* work, MKL_INT* info );
void zhbtrd_( const char* vect, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex16* ab, const MKL_INT* ldab,
              double* d, double* e, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* work, MKL_INT* info );

void ZHECON( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
             double* rcond, MKL_Complex16* work, MKL_INT* info );
void ZHECON_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
              double* rcond, MKL_Complex16* work, MKL_INT* info );
void zhecon( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
             double* rcond, MKL_Complex16* work, MKL_INT* info );
void zhecon_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
              double* rcond, MKL_Complex16* work, MKL_INT* info );

void ZHEEQUB( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* s, double* scond, double* amax,
              MKL_Complex16* work, MKL_INT* info );
void ZHEEQUB_( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* s, double* scond, double* amax,
               MKL_Complex16* work, MKL_INT* info );
void zheequb( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* s, double* scond, double* amax,
              MKL_Complex16* work, MKL_INT* info );
void zheequb_( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* s, double* scond, double* amax,
               MKL_Complex16* work, MKL_INT* info );

void ZHEEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ZHEEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, double* w,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void zheevd( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void zheevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, double* w,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void ZHEEV( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, double* w,
            MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
            MKL_INT* info );
void ZHEEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zheev( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex16* a, const MKL_INT* lda, double* w,
            MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
            MKL_INT* info );
void zheev_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );

void ZHEEVR( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ZHEEVR_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void zheevr( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void zheevr_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void ZHEEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void ZHEEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void zheevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void zheevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void ZHEGS2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZHEGS2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zhegs2( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zhegs2_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZHEGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZHEGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zhegst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zhegst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZHEGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void ZHEGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, double* w,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void zhegvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
             MKL_INT* info );
void zhegvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* b, const MKL_INT* ldb, double* w,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void ZHEGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
            MKL_Complex16* b, const MKL_INT* ldb, double* w,
            MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
            MKL_INT* info );
void ZHEGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zhegv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
            MKL_Complex16* b, const MKL_INT* ldb, double* w,
            MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
            MKL_INT* info );
void zhegv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* b, const MKL_INT* ldb, double* w,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );

void ZHEGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void ZHEGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void zhegvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void zhegvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void ZHERFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZHERFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zherfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zherfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZHERFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ZHERFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
               double* rcond, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );
void zherfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zherfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
               double* rcond, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );

void ZHESV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
            const MKL_INT* lwork, MKL_INT* info );
void ZHESV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zhesv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
            const MKL_INT* lwork, MKL_INT* info );
void zhesv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );

void ZHESVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void ZHESVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );
void zhesvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zhesvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );

void ZHESVXX( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ZHESVXX_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
               double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );
void zhesvxx( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zhesvxx_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
               double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );

void ZHETD2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
             MKL_INT* info );
void ZHETD2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
              MKL_INT* info );
void zhetd2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
             MKL_INT* info );
void zhetd2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
              MKL_INT* info );

void ZHETF2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void ZHETF2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zhetf2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zhetf2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void ZHETRD( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZHETRD_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrd( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zhetrd_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, double* d, double* e, MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZHETRF( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZHETRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zhetrf( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zhetrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZHETRI( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
             MKL_INT* info );
void ZHETRI_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              MKL_INT* info );
void zhetri( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
             MKL_INT* info );
void zhetri_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              MKL_INT* info );

void ZHETRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZHETRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zhetrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zhetrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void ZHFRK( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const double* alpha,
            const MKL_Complex16* a, const MKL_INT* lda, const double* beta,
            MKL_Complex16* c );
void ZHFRK_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const double* alpha,
             const MKL_Complex16* a, const MKL_INT* lda, const double* beta,
             MKL_Complex16* c );
void zhfrk( const char* transr, const char* uplo, const char* trans,
            const MKL_INT* n, const MKL_INT* k, const double* alpha,
            const MKL_Complex16* a, const MKL_INT* lda, const double* beta,
            MKL_Complex16* c );
void zhfrk_( const char* transr, const char* uplo, const char* trans,
             const MKL_INT* n, const MKL_INT* k, const double* alpha,
             const MKL_Complex16* a, const MKL_INT* lda, const double* beta,
             MKL_Complex16* c );

void ZHGEQZ( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* h, const MKL_INT* ldh, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void ZHGEQZ_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* h, const MKL_INT* ldh, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* alpha, MKL_Complex16* beta,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* info );
void zhgeqz( const char* job, const char* compq, const char* compz,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* h, const MKL_INT* ldh, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* alpha, MKL_Complex16* beta,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, MKL_INT* info );
void zhgeqz_( const char* job, const char* compq, const char* compz,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* h, const MKL_INT* ldh, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* alpha, MKL_Complex16* beta,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, MKL_INT* info );

void ZHPCON( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             MKL_Complex16* work, MKL_INT* info );
void ZHPCON_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              MKL_Complex16* work, MKL_INT* info );
void zhpcon( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             MKL_Complex16* work, MKL_INT* info );
void zhpcon_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              MKL_Complex16* work, MKL_INT* info );

void ZHPEVD( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* ap, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void ZHPEVD_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex16* ap, double* w, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );
void zhpevd( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* ap, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void zhpevd_( const char* jobz, const char* uplo, const MKL_INT* n,
              MKL_Complex16* ap, double* w, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              double* rwork, const MKL_INT* lrwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );

void ZHPEV( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex16* ap, double* w, MKL_Complex16* z, const MKL_INT* ldz,
            MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZHPEV_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* ap, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void zhpev( const char* jobz, const char* uplo, const MKL_INT* n,
            MKL_Complex16* ap, double* w, MKL_Complex16* z, const MKL_INT* ldz,
            MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhpev_( const char* jobz, const char* uplo, const MKL_INT* n,
             MKL_Complex16* ap, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, double* rwork,
             MKL_INT* info );

void ZHPEVX( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex16* ap, const double* vl,
             const double* vu, const MKL_INT* il, const MKL_INT* iu,
             const double* abstol, MKL_INT* m, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, double* rwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ZHPEVX_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex16* ap, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu,
              const double* abstol, MKL_INT* m, double* w, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, double* rwork,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhpevx( const char* jobz, const char* range, const char* uplo,
             const MKL_INT* n, MKL_Complex16* ap, const double* vl,
             const double* vu, const MKL_INT* il, const MKL_INT* iu,
             const double* abstol, MKL_INT* m, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, double* rwork,
             MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zhpevx_( const char* jobz, const char* range, const char* uplo,
              const MKL_INT* n, MKL_Complex16* ap, const double* vl,
              const double* vu, const MKL_INT* il, const MKL_INT* iu,
              const double* abstol, MKL_INT* m, double* w, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, double* rwork,
              MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void ZHPGST( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex16* ap, const MKL_Complex16* bp, MKL_INT* info );
void ZHPGST_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex16* ap, const MKL_Complex16* bp, MKL_INT* info );
void zhpgst( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
             MKL_Complex16* ap, const MKL_Complex16* bp, MKL_INT* info );
void zhpgst_( const MKL_INT* itype, const char* uplo, const MKL_INT* n,
              MKL_Complex16* ap, const MKL_Complex16* bp, MKL_INT* info );

void ZHPGVD( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ZHPGVD_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp,
              double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );
void zhpgvd( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void zhpgvd_( const MKL_INT* itype, const char* jobz, const char* uplo,
              const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp,
              double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              const MKL_INT* lrwork, MKL_INT* iwork, const MKL_INT* liwork,
              MKL_INT* info );

void ZHPGV( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp, double* w,
            MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
            double* rwork, MKL_INT* info );
void ZHPGV_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void zhpgv( const MKL_INT* itype, const char* jobz, const char* uplo,
            const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp, double* w,
            MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
            double* rwork, MKL_INT* info );
void zhpgv_( const MKL_INT* itype, const char* jobz, const char* uplo,
             const MKL_INT* n, MKL_Complex16* ap, MKL_Complex16* bp, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             double* rwork, MKL_INT* info );

void ZHPGVX( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_Complex16* bp, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, double* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void ZHPGVX_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_Complex16* bp, const double* vl, const double* vu,
              const MKL_INT* il, const MKL_INT* iu, const double* abstol,
              MKL_INT* m, double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, double* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );
void zhpgvx( const MKL_INT* itype, const char* jobz, const char* range,
             const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_Complex16* bp, const double* vl, const double* vu,
             const MKL_INT* il, const MKL_INT* iu, const double* abstol,
             MKL_INT* m, double* w, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, double* rwork, MKL_INT* iwork,
             MKL_INT* ifail, MKL_INT* info );
void zhpgvx_( const MKL_INT* itype, const char* jobz, const char* range,
              const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_Complex16* bp, const double* vl, const double* vu,
              const MKL_INT* il, const MKL_INT* iu, const double* abstol,
              MKL_INT* m, double* w, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, double* rwork, MKL_INT* iwork,
              MKL_INT* ifail, MKL_INT* info );

void ZHPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_Complex16* afp,
             const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZHPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_Complex16* afp,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_Complex16* afp,
             const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_Complex16* afp,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZHPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void ZHPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zhpsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void zhpsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );

void ZHPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
             MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZHPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
              MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zhpsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
             MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void zhpsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
              MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZHPTRD( const char* uplo, const MKL_INT* n, MKL_Complex16* ap, double* d,
             double* e, MKL_Complex16* tau, MKL_INT* info );
void ZHPTRD_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap, double* d,
              double* e, MKL_Complex16* tau, MKL_INT* info );
void zhptrd( const char* uplo, const MKL_INT* n, MKL_Complex16* ap, double* d,
             double* e, MKL_Complex16* tau, MKL_INT* info );
void zhptrd_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap, double* d,
              double* e, MKL_Complex16* tau, MKL_INT* info );

void ZHPTRF( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* ipiv, MKL_INT* info );
void ZHPTRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* ipiv, MKL_INT* info );
void zhptrf( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* ipiv, MKL_INT* info );
void zhptrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* ipiv, MKL_INT* info );

void ZHPTRI( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );
void ZHPTRI_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );
void zhptri( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );
void zhptri_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );

void ZHPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZHPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zhptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zhptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZHSEIN( const char* side, const char* eigsrc, const char* initv,
             const MKL_INT* select, const MKL_INT* n, const MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work, double* rwork,
             MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );
void ZHSEIN_( const char* side, const char* eigsrc, const char* initv,
              const MKL_INT* select, const MKL_INT* n, const MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              double* rwork, MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );
void zhsein( const char* side, const char* eigsrc, const char* initv,
             const MKL_INT* select, const MKL_INT* n, const MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work, double* rwork,
             MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );
void zhsein_( const char* side, const char* eigsrc, const char* initv,
              const MKL_INT* select, const MKL_INT* n, const MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              double* rwork, MKL_INT* ifaill, MKL_INT* ifailr, MKL_INT* info );

void ZHSEQR( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZHSEQR_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zhseqr( const char* job, const char* compz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zhseqr_( const char* job, const char* compz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZLABRD( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, double* d, double* e,
             MKL_Complex16* tauq, MKL_Complex16* taup, MKL_Complex16* x,
             const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy );
void ZLABRD_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, double* d, double* e,
              MKL_Complex16* tauq, MKL_Complex16* taup, MKL_Complex16* x,
              const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy );
void zlabrd( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, double* d, double* e,
             MKL_Complex16* tauq, MKL_Complex16* taup, MKL_Complex16* x,
             const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy );
void zlabrd_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, double* d, double* e,
              MKL_Complex16* tauq, MKL_Complex16* taup, MKL_Complex16* x,
              const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy );

void ZLACGV( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx );
void ZLACGV_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx );
void zlacgv( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx );
void zlacgv_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx );

void ZLACN2( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x, double* est,
             MKL_INT* kase, MKL_INT* isave );
void ZLACN2_( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x,
              double* est, MKL_INT* kase, MKL_INT* isave );
void zlacn2( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x, double* est,
             MKL_INT* kase, MKL_INT* isave );
void zlacn2_( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x,
              double* est, MKL_INT* kase, MKL_INT* isave );

void ZLACON( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x, double* est,
             MKL_INT* kase );
void ZLACON_( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x,
              double* est, MKL_INT* kase );
void zlacon( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x, double* est,
             MKL_INT* kase );
void zlacon_( const MKL_INT* n, MKL_Complex16* v, MKL_Complex16* x,
              double* est, MKL_INT* kase );

void ZLACP2( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const double* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb );
void ZLACP2_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const double* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb );
void zlacp2( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const double* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb );
void zlacp2_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const double* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb );

void ZLACPY( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb );
void ZLACPY_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb );
void zlacpy( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb );
void zlacpy_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb );

void ZLACRM( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const double* b, const MKL_INT* ldb,
             MKL_Complex16* c, const MKL_INT* ldc, double* rwork );
void ZLACRM_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const double* b, const MKL_INT* ldb,
              MKL_Complex16* c, const MKL_INT* ldc, double* rwork );
void zlacrm( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const double* b, const MKL_INT* ldb,
             MKL_Complex16* c, const MKL_INT* ldc, double* rwork );
void zlacrm_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const double* b, const MKL_INT* ldb,
              MKL_Complex16* c, const MKL_INT* ldc, double* rwork );

void ZLACRT( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
             MKL_Complex16* cy, const MKL_INT* incy, const MKL_Complex16* c,
             const MKL_Complex16* s );
void ZLACRT_( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
              MKL_Complex16* cy, const MKL_INT* incy, const MKL_Complex16* c,
              const MKL_Complex16* s );
void zlacrt( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
             MKL_Complex16* cy, const MKL_INT* incy, const MKL_Complex16* c,
             const MKL_Complex16* s );
void zlacrt_( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
              MKL_Complex16* cy, const MKL_INT* incy, const MKL_Complex16* c,
              const MKL_Complex16* s );

void ZLADIV( MKL_Complex16* ret_value, const MKL_Complex16* x,
             const MKL_Complex16* y );
void ZLADIV_( MKL_Complex16* ret_value, const MKL_Complex16* x,
              const MKL_Complex16* y );
void zladiv( MKL_Complex16* ret_value, const MKL_Complex16* x,
             const MKL_Complex16* y );
void zladiv_( MKL_Complex16* ret_value, const MKL_Complex16* x,
              const MKL_Complex16* y );

void ZLAED0( const MKL_INT* qsiz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* qstore,
             const MKL_INT* ldqs, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void ZLAED0_( const MKL_INT* qsiz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* qstore,
              const MKL_INT* ldqs, double* rwork, MKL_INT* iwork,
              MKL_INT* info );
void zlaed0( const MKL_INT* qsiz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* qstore,
             const MKL_INT* ldqs, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void zlaed0_( const MKL_INT* qsiz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* qstore,
              const MKL_INT* ldqs, double* rwork, MKL_INT* iwork,
              MKL_INT* info );

void ZLAED7( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, double* d, MKL_Complex16* q,
             const MKL_INT* ldq, const double* rho, MKL_INT* indxq,
             double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const double* givnum, MKL_Complex16* work, double* rwork,
             MKL_INT* iwork, MKL_INT* info );
void ZLAED7_( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, double* d, MKL_Complex16* q,
              const MKL_INT* ldq, const double* rho, MKL_INT* indxq,
              double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const double* givnum, MKL_Complex16* work,
              double* rwork, MKL_INT* iwork, MKL_INT* info );
void zlaed7( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
             const MKL_INT* tlvls, const MKL_INT* curlvl,
             const MKL_INT* curpbm, double* d, MKL_Complex16* q,
             const MKL_INT* ldq, const double* rho, MKL_INT* indxq,
             double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const double* givnum, MKL_Complex16* work, double* rwork,
             MKL_INT* iwork, MKL_INT* info );
void zlaed7_( const MKL_INT* n, const MKL_INT* cutpnt, const MKL_INT* qsiz,
              const MKL_INT* tlvls, const MKL_INT* curlvl,
              const MKL_INT* curpbm, double* d, MKL_Complex16* q,
              const MKL_INT* ldq, const double* rho, MKL_INT* indxq,
              double* qstore, MKL_INT* qptr, const MKL_INT* prmptr,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const double* givnum, MKL_Complex16* work,
              double* rwork, MKL_INT* iwork, MKL_INT* info );

void ZLAED8( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
             MKL_Complex16* q, const MKL_INT* ldq, double* d, double* rho,
             const MKL_INT* cutpnt, const double* z, double* dlamda,
             MKL_Complex16* q2, const MKL_INT* ldq2, double* w, MKL_INT* indxp,
             MKL_INT* indx, const MKL_INT* indxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, double* givnum, MKL_INT* info );
void ZLAED8_( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
              MKL_Complex16* q, const MKL_INT* ldq, double* d, double* rho,
              const MKL_INT* cutpnt, const double* z, double* dlamda,
              MKL_Complex16* q2, const MKL_INT* ldq2, double* w,
              MKL_INT* indxp, MKL_INT* indx, const MKL_INT* indxq,
              MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol, double* givnum,
              MKL_INT* info );
void zlaed8( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
             MKL_Complex16* q, const MKL_INT* ldq, double* d, double* rho,
             const MKL_INT* cutpnt, const double* z, double* dlamda,
             MKL_Complex16* q2, const MKL_INT* ldq2, double* w, MKL_INT* indxp,
             MKL_INT* indx, const MKL_INT* indxq, MKL_INT* perm,
             MKL_INT* givptr, MKL_INT* givcol, double* givnum, MKL_INT* info );
void zlaed8_( MKL_INT* k, const MKL_INT* n, const MKL_INT* qsiz,
              MKL_Complex16* q, const MKL_INT* ldq, double* d, double* rho,
              const MKL_INT* cutpnt, const double* z, double* dlamda,
              MKL_Complex16* q2, const MKL_INT* ldq2, double* w,
              MKL_INT* indxp, MKL_INT* indx, const MKL_INT* indxq,
              MKL_INT* perm, MKL_INT* givptr, MKL_INT* givcol, double* givnum,
              MKL_INT* info );

void ZLAEIN( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const MKL_Complex16* h, const MKL_INT* ldh,
             const MKL_Complex16* w, MKL_Complex16* v, MKL_Complex16* b,
             const MKL_INT* ldb, double* rwork, const double* eps3,
             const double* smlnum, MKL_INT* info );
void ZLAEIN_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const MKL_Complex16* h, const MKL_INT* ldh,
              const MKL_Complex16* w, MKL_Complex16* v, MKL_Complex16* b,
              const MKL_INT* ldb, double* rwork, const double* eps3,
              const double* smlnum, MKL_INT* info );
void zlaein( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
             const MKL_Complex16* h, const MKL_INT* ldh,
             const MKL_Complex16* w, MKL_Complex16* v, MKL_Complex16* b,
             const MKL_INT* ldb, double* rwork, const double* eps3,
             const double* smlnum, MKL_INT* info );
void zlaein_( const MKL_INT* rightv, const MKL_INT* noinit, const MKL_INT* n,
              const MKL_Complex16* h, const MKL_INT* ldh,
              const MKL_Complex16* w, MKL_Complex16* v, MKL_Complex16* b,
              const MKL_INT* ldb, double* rwork, const double* eps3,
              const double* smlnum, MKL_INT* info );

void ZLAESY( const MKL_Complex16* a, const MKL_Complex16* b,
             const MKL_Complex16* c, MKL_Complex16* rt1, MKL_Complex16* rt2,
             MKL_Complex16* evscal, MKL_Complex16* cs1, MKL_Complex16* sn1 );
void ZLAESY_( const MKL_Complex16* a, const MKL_Complex16* b,
              const MKL_Complex16* c, MKL_Complex16* rt1, MKL_Complex16* rt2,
              MKL_Complex16* evscal, MKL_Complex16* cs1, MKL_Complex16* sn1 );
void zlaesy( const MKL_Complex16* a, const MKL_Complex16* b,
             const MKL_Complex16* c, MKL_Complex16* rt1, MKL_Complex16* rt2,
             MKL_Complex16* evscal, MKL_Complex16* cs1, MKL_Complex16* sn1 );
void zlaesy_( const MKL_Complex16* a, const MKL_Complex16* b,
              const MKL_Complex16* c, MKL_Complex16* rt1, MKL_Complex16* rt2,
              MKL_Complex16* evscal, MKL_Complex16* cs1, MKL_Complex16* sn1 );

void ZLAEV2( const MKL_Complex16* a, const MKL_Complex16* b,
             const MKL_Complex16* c, double* rt1, double* rt2, double* cs1,
             MKL_Complex16* sn1 );
void ZLAEV2_( const MKL_Complex16* a, const MKL_Complex16* b,
              const MKL_Complex16* c, double* rt1, double* rt2, double* cs1,
              MKL_Complex16* sn1 );
void zlaev2( const MKL_Complex16* a, const MKL_Complex16* b,
             const MKL_Complex16* c, double* rt1, double* rt2, double* cs1,
             MKL_Complex16* sn1 );
void zlaev2_( const MKL_Complex16* a, const MKL_Complex16* b,
              const MKL_Complex16* c, double* rt1, double* rt2, double* cs1,
              MKL_Complex16* sn1 );

void ZLAG2C( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void ZLAG2C_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
              MKL_INT* info );
void zlag2c( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void zlag2c_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
              MKL_INT* info );

void ZLAGS2( const MKL_INT* upper, const double* a1, const MKL_Complex16* a2,
             const double* a3, const double* b1, const MKL_Complex16* b2,
             const double* b3, double* csu, MKL_Complex16* snu, double* csv,
             MKL_Complex16* snv, double* csq, MKL_Complex16* snq );
void ZLAGS2_( const MKL_INT* upper, const double* a1, const MKL_Complex16* a2,
              const double* a3, const double* b1, const MKL_Complex16* b2,
              const double* b3, double* csu, MKL_Complex16* snu, double* csv,
              MKL_Complex16* snv, double* csq, MKL_Complex16* snq );
void zlags2( const MKL_INT* upper, const double* a1, const MKL_Complex16* a2,
             const double* a3, const double* b1, const MKL_Complex16* b2,
             const double* b3, double* csu, MKL_Complex16* snu, double* csv,
             MKL_Complex16* snv, double* csq, MKL_Complex16* snq );
void zlags2_( const MKL_INT* upper, const double* a1, const MKL_Complex16* a2,
              const double* a3, const double* b1, const MKL_Complex16* b2,
              const double* b3, double* csu, MKL_Complex16* snu, double* csv,
              MKL_Complex16* snv, double* csq, MKL_Complex16* snq );

void ZLAGTM( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* alpha, const MKL_Complex16* dl,
             const MKL_Complex16* d, const MKL_Complex16* du,
             const MKL_Complex16* x, const MKL_INT* ldx, const double* beta,
             MKL_Complex16* b, const MKL_INT* ldb );
void ZLAGTM_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* alpha, const MKL_Complex16* dl,
              const MKL_Complex16* d, const MKL_Complex16* du,
              const MKL_Complex16* x, const MKL_INT* ldx, const double* beta,
              MKL_Complex16* b, const MKL_INT* ldb );
void zlagtm( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
             const double* alpha, const MKL_Complex16* dl,
             const MKL_Complex16* d, const MKL_Complex16* du,
             const MKL_Complex16* x, const MKL_INT* ldx, const double* beta,
             MKL_Complex16* b, const MKL_INT* ldb );
void zlagtm_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* alpha, const MKL_Complex16* dl,
              const MKL_Complex16* d, const MKL_Complex16* du,
              const MKL_Complex16* x, const MKL_INT* ldx, const double* beta,
              MKL_Complex16* b, const MKL_INT* ldb );

void ZLAHEF( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void ZLAHEF_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlahef( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlahef_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );

void ZLAHQR( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* info );
void ZLAHQR_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* info );
void zlahqr( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* info );
void zlahqr_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* info );

void ZLAHR2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
             const MKL_INT* ldy );
void ZLAHR2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
              const MKL_INT* ldy );
void zlahr2( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
             const MKL_INT* ldy );
void zlahr2_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
              const MKL_INT* ldy );

void ZLAHRD( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
             const MKL_INT* ldy );
void ZLAHRD_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
              const MKL_INT* ldy );
void zlahrd( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
             const MKL_INT* ldy );
void zlahrd_( const MKL_INT* n, const MKL_INT* k, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* y,
              const MKL_INT* ldy );

void ZLAIC1( const MKL_INT* job, const MKL_INT* j, const MKL_Complex16* x,
             const double* sest, const MKL_Complex16* w,
             const MKL_Complex16* gamma, double* sestpr, MKL_Complex16* s,
             MKL_Complex16* c );
void ZLAIC1_( const MKL_INT* job, const MKL_INT* j, const MKL_Complex16* x,
              const double* sest, const MKL_Complex16* w,
              const MKL_Complex16* gamma, double* sestpr, MKL_Complex16* s,
              MKL_Complex16* c );
void zlaic1( const MKL_INT* job, const MKL_INT* j, const MKL_Complex16* x,
             const double* sest, const MKL_Complex16* w,
             const MKL_Complex16* gamma, double* sestpr, MKL_Complex16* s,
             MKL_Complex16* c );
void zlaic1_( const MKL_INT* job, const MKL_INT* j, const MKL_Complex16* x,
              const double* sest, const MKL_Complex16* w,
              const MKL_Complex16* gamma, double* sestpr, MKL_Complex16* s,
              MKL_Complex16* c );

void ZLALS0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const double* givnum,
             const MKL_INT* ldgnum, const double* poles, const double* difl,
             const double* difr, const double* z, const MKL_INT* k,
             const double* c, const double* s, double* rwork, MKL_INT* info );
void ZLALS0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const double* givnum, const MKL_INT* ldgnum, const double* poles,
              const double* difl, const double* difr, const double* z,
              const MKL_INT* k, const double* c, const double* s,
              double* rwork, MKL_INT* info );
void zlals0( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
             const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* bx, const MKL_INT* ldbx,
             const MKL_INT* perm, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const double* givnum,
             const MKL_INT* ldgnum, const double* poles, const double* difl,
             const double* difr, const double* z, const MKL_INT* k,
             const double* c, const double* s, double* rwork, MKL_INT* info );
void zlals0_( const MKL_INT* icompq, const MKL_INT* nl, const MKL_INT* nr,
              const MKL_INT* sqre, const MKL_INT* nrhs, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* bx, const MKL_INT* ldbx,
              const MKL_INT* perm, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const double* givnum, const MKL_INT* ldgnum, const double* poles,
              const double* difl, const double* difr, const double* z,
              const MKL_INT* k, const double* c, const double* s,
              double* rwork, MKL_INT* info );

void ZLALSA( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* bx, const MKL_INT* ldbx, const double* u,
             const MKL_INT* ldu, const double* vt, const MKL_INT* k,
             const double* difl, const double* difr, const double* z,
             const double* poles, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const double* givnum,
             const double* c, const double* s, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void ZLALSA_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* bx, const MKL_INT* ldbx, const double* u,
              const MKL_INT* ldu, const double* vt, const MKL_INT* k,
              const double* difl, const double* difr, const double* z,
              const double* poles, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const MKL_INT* perm, const double* givnum, const double* c,
              const double* s, double* rwork, MKL_INT* iwork, MKL_INT* info );
void zlalsa( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* bx, const MKL_INT* ldbx, const double* u,
             const MKL_INT* ldu, const double* vt, const MKL_INT* k,
             const double* difl, const double* difr, const double* z,
             const double* poles, const MKL_INT* givptr, const MKL_INT* givcol,
             const MKL_INT* ldgcol, const MKL_INT* perm, const double* givnum,
             const double* c, const double* s, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void zlalsa_( const MKL_INT* icompq, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* bx, const MKL_INT* ldbx, const double* u,
              const MKL_INT* ldu, const double* vt, const MKL_INT* k,
              const double* difl, const double* difr, const double* z,
              const double* poles, const MKL_INT* givptr,
              const MKL_INT* givcol, const MKL_INT* ldgcol,
              const MKL_INT* perm, const double* givnum, const double* c,
              const double* s, double* rwork, MKL_INT* iwork, MKL_INT* info );

void ZLALSD( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, double* d, double* e, MKL_Complex16* b,
             const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
             MKL_Complex16* work, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void ZLALSD_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, double* d, double* e, MKL_Complex16* b,
              const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
              MKL_Complex16* work, double* rwork, MKL_INT* iwork,
              MKL_INT* info );
void zlalsd( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
             const MKL_INT* nrhs, double* d, double* e, MKL_Complex16* b,
             const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
             MKL_Complex16* work, double* rwork, MKL_INT* iwork,
             MKL_INT* info );
void zlalsd_( const char* uplo, const MKL_INT* smlsiz, const MKL_INT* n,
              const MKL_INT* nrhs, double* d, double* e, MKL_Complex16* b,
              const MKL_INT* ldb, const double* rcond, MKL_INT* rank,
              MKL_Complex16* work, double* rwork, MKL_INT* iwork,
              MKL_INT* info );

double ZLANGB( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* work );
double ZLANGB_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
                const MKL_INT* ku, const MKL_Complex16* ab,
                const MKL_INT* ldab, double* work );
double zlangb( const char* norm, const MKL_INT* n, const MKL_INT* kl,
               const MKL_INT* ku, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* work );
double zlangb_( const char* norm, const MKL_INT* n, const MKL_INT* kl,
                const MKL_INT* ku, const MKL_Complex16* ab,
                const MKL_INT* ldab, double* work );

double ZLANGE( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const MKL_Complex16* a, const MKL_INT* lda, double* work );
double ZLANGE_( const char* norm, const MKL_INT* m, const MKL_INT* n,
                const MKL_Complex16* a, const MKL_INT* lda, double* work );
double zlange( const char* norm, const MKL_INT* m, const MKL_INT* n,
               const MKL_Complex16* a, const MKL_INT* lda, double* work );
double zlange_( const char* norm, const MKL_INT* m, const MKL_INT* n,
                const MKL_Complex16* a, const MKL_INT* lda, double* work );

double ZLANGT( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
               const MKL_Complex16* d, const MKL_Complex16* du );
double ZLANGT_( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
                const MKL_Complex16* d, const MKL_Complex16* du );
double zlangt( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
               const MKL_Complex16* d, const MKL_Complex16* du );
double zlangt_( const char* norm, const MKL_INT* n, const MKL_Complex16* dl,
                const MKL_Complex16* d, const MKL_Complex16* du );

double ZLANHB( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* work );
double ZLANHB_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
                double* work );
double zlanhb( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* work );
double zlanhb_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
                double* work );

double ZLANHE( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* a, const MKL_INT* lda, double* work );
double ZLANHE_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* a, const MKL_INT* lda, double* work );
double zlanhe( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* a, const MKL_INT* lda, double* work );
double zlanhe_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* a, const MKL_INT* lda, double* work );

double ZLANHF( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const MKL_Complex16* a, double* work );
double ZLANHF_( const char* norm, const char* transr, const char* uplo,
                const MKL_INT* n, const MKL_Complex16* a, double* work );
double zlanhf( const char* norm, const char* transr, const char* uplo,
               const MKL_INT* n, const MKL_Complex16* a, double* work );
double zlanhf_( const char* norm, const char* transr, const char* uplo,
                const MKL_INT* n, const MKL_Complex16* a, double* work );

double ZLANHP( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* ap, double* work );
double ZLANHP_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* ap, double* work );
double zlanhp( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* ap, double* work );
double zlanhp_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* ap, double* work );

double ZLANHS( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* work );
double ZLANHS_( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, double* work );
double zlanhs( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* work );
double zlanhs_( const char* norm, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, double* work );

double ZLANHT( const char* norm, const MKL_INT* n, const double* d,
               const MKL_Complex16* e );
double ZLANHT_( const char* norm, const MKL_INT* n, const double* d,
                const MKL_Complex16* e );
double zlanht( const char* norm, const MKL_INT* n, const double* d,
               const MKL_Complex16* e );
double zlanht_( const char* norm, const MKL_INT* n, const double* d,
                const MKL_Complex16* e );

double ZLANSB( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* work );
double ZLANSB_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
                double* work );
double zlansb( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
               double* work );
double zlansb_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_INT* k, const MKL_Complex16* ab, const MKL_INT* ldab,
                double* work );

double ZLANSP( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* ap, double* work );
double ZLANSP_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* ap, double* work );
double zlansp( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* ap, double* work );
double zlansp_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* ap, double* work );

double ZLANSY( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* a, const MKL_INT* lda, double* work );
double ZLANSY_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* a, const MKL_INT* lda, double* work );
double zlansy( const char* norm, const char* uplo, const MKL_INT* n,
               const MKL_Complex16* a, const MKL_INT* lda, double* work );
double zlansy_( const char* norm, const char* uplo, const MKL_INT* n,
                const MKL_Complex16* a, const MKL_INT* lda, double* work );

double ZLANTB( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* ab,
               const MKL_INT* ldab, double* work );
double ZLANTB_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* ab,
                const MKL_INT* ldab, double* work );
double zlantb( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* ab,
               const MKL_INT* ldab, double* work );
double zlantb_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* ab,
                const MKL_INT* ldab, double* work );

double ZLANTP( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_Complex16* ap, double* work );
double ZLANTP_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const MKL_Complex16* ap, double* work );
double zlantp( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* n, const MKL_Complex16* ap, double* work );
double zlantp_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* n, const MKL_Complex16* ap, double* work );

double ZLANTR( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* work );
double ZLANTR_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, double* work );
double zlantr( const char* norm, const char* uplo, const char* diag,
               const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* work );
double zlantr_( const char* norm, const char* uplo, const char* diag,
                const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
                const MKL_INT* lda, double* work );

void ZLAPLL( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
             MKL_Complex16* y, const MKL_INT* incy, double* ssmin );
void ZLAPLL_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
              MKL_Complex16* y, const MKL_INT* incy, double* ssmin );
void zlapll( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
             MKL_Complex16* y, const MKL_INT* incy, double* ssmin );
void zlapll_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
              MKL_Complex16* y, const MKL_INT* incy, double* ssmin );

void ZLAPMT( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );
void ZLAPMT_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );
void zlapmt( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );
void zlapmt_( const MKL_INT* forwrd, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* x, const MKL_INT* ldx, MKL_INT* k );

void ZLAQGB( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
             const double* r, const double* c, const double* rowcnd,
             const double* colcnd, const double* amax, char* equed );
void ZLAQGB_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
              const double* r, const double* c, const double* rowcnd,
              const double* colcnd, const double* amax, char* equed );
void zlaqgb( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
             const double* r, const double* c, const double* rowcnd,
             const double* colcnd, const double* amax, char* equed );
void zlaqgb_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, MKL_Complex16* ab, const MKL_INT* ldab,
              const double* r, const double* c, const double* rowcnd,
              const double* colcnd, const double* amax, char* equed );

void ZLAQGE( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const double* r, const double* c,
             const double* rowcnd, const double* colcnd, const double* amax,
             char* equed );
void ZLAQGE_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const double* r, const double* c,
              const double* rowcnd, const double* colcnd, const double* amax,
              char* equed );
void zlaqge( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const double* r, const double* c,
             const double* rowcnd, const double* colcnd, const double* amax,
             char* equed );
void zlaqge_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const double* r, const double* c,
              const double* rowcnd, const double* colcnd, const double* amax,
              char* equed );

void ZLAQHB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, double* s,
             const double* scond, const double* amax, char* equed );
void ZLAQHB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, double* s,
              const double* scond, const double* amax, char* equed );
void zlaqhb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, double* s,
             const double* scond, const double* amax, char* equed );
void zlaqhb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, double* s,
              const double* scond, const double* amax, char* equed );

void ZLAQHE( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const double* s, const double* scond,
             const double* amax, char* equed );
void ZLAQHE_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const double* s, const double* scond,
              const double* amax, char* equed );
void zlaqhe( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const double* s, const double* scond,
             const double* amax, char* equed );
void zlaqhe_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const double* s, const double* scond,
              const double* amax, char* equed );

void ZLAQHP( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const double* s, const double* scond, const double* amax,
             char* equed );
void ZLAQHP_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const double* s, const double* scond, const double* amax,
              char* equed );
void zlaqhp( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const double* s, const double* scond, const double* amax,
             char* equed );
void zlaqhp_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const double* s, const double* scond, const double* amax,
              char* equed );

void ZLAQP2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* jpvt,
             MKL_Complex16* tau, double* vn1, double* vn2,
             MKL_Complex16* work );
void ZLAQP2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* jpvt,
              MKL_Complex16* tau, double* vn1, double* vn2,
              MKL_Complex16* work );
void zlaqp2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* jpvt,
             MKL_Complex16* tau, double* vn1, double* vn2,
             MKL_Complex16* work );
void zlaqp2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* jpvt,
              MKL_Complex16* tau, double* vn1, double* vn2,
              MKL_Complex16* work );

void ZLAQPS( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
             double* vn1, double* vn2, MKL_Complex16* auxv, MKL_Complex16* f,
             const MKL_INT* ldf );
void ZLAQPS_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
              double* vn1, double* vn2, MKL_Complex16* auxv, MKL_Complex16* f,
              const MKL_INT* ldf );
void zlaqps( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
             const MKL_INT* nb, MKL_INT* kb, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
             double* vn1, double* vn2, MKL_Complex16* auxv, MKL_Complex16* f,
             const MKL_INT* ldf );
void zlaqps_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* offset,
              const MKL_INT* nb, MKL_INT* kb, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* jpvt, MKL_Complex16* tau,
              double* vn1, double* vn2, MKL_Complex16* auxv, MKL_Complex16* f,
              const MKL_INT* ldf );

void ZLAQR0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
             MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZLAQR0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zlaqr0( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
             MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zlaqr0_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZLAQR1( const MKL_INT* n, const MKL_Complex16* h, const MKL_INT* ldh,
             const MKL_Complex16* s1, MKL_Complex16* s2, MKL_Complex16* v );
void ZLAQR1_( const MKL_INT* n, const MKL_Complex16* h, const MKL_INT* ldh,
              const MKL_Complex16* s1, MKL_Complex16* s2, MKL_Complex16* v );
void zlaqr1( const MKL_INT* n, const MKL_Complex16* h, const MKL_INT* ldh,
             const MKL_Complex16* s1, MKL_Complex16* s2, MKL_Complex16* v );
void zlaqr1_( const MKL_INT* n, const MKL_Complex16* h, const MKL_INT* ldh,
              const MKL_Complex16* s1, MKL_Complex16* s2, MKL_Complex16* v );

void ZLAQR2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
             const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );
void ZLAQR2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
              const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );
void zlaqr2( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
             const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );
void zlaqr2_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
              const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );

void ZLAQR3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
             const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );
void ZLAQR3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
              const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );
void zlaqr3( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
             MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
             const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
             const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
             const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );
void zlaqr3_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ktop, const MKL_INT* kbot, const MKL_INT* nw,
              MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* ns, MKL_INT* nd, MKL_Complex16* sh, MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_INT* nh, MKL_Complex16* t,
              const MKL_INT* ldt, const MKL_INT* nv, MKL_Complex16* wv,
              const MKL_INT* ldwv, MKL_Complex16* work, const MKL_INT* lwork );

void ZLAQR4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
             MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZLAQR4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zlaqr4( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
             const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
             const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
             MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zlaqr4_( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* n,
              const MKL_INT* ilo, const MKL_INT* ihi, MKL_Complex16* h,
              const MKL_INT* ldh, MKL_Complex16* w, MKL_INT* iloz,
              MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZLAQR5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, MKL_Complex16* s, MKL_Complex16* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* v,
             const MKL_INT* ldv, MKL_Complex16* u, const MKL_INT* ldu,
             const MKL_INT* nv, MKL_Complex16* wv, const MKL_INT* ldwv,
             const MKL_INT* nh, MKL_Complex16* wh, const MKL_INT* ldwh );
void ZLAQR5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, MKL_Complex16* s,
              MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* u,
              const MKL_INT* ldu, const MKL_INT* nv, MKL_Complex16* wv,
              const MKL_INT* ldwv, const MKL_INT* nh, MKL_Complex16* wh,
              const MKL_INT* ldwh );
void zlaqr5( const MKL_INT* wantt, const MKL_INT* wantz, const MKL_INT* kacc22,
             const MKL_INT* n, const MKL_INT* ktop, const MKL_INT* kbot,
             const MKL_INT* nshfts, MKL_Complex16* s, MKL_Complex16* h,
             const MKL_INT* ldh, const MKL_INT* iloz, const MKL_INT* ihiz,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* v,
             const MKL_INT* ldv, MKL_Complex16* u, const MKL_INT* ldu,
             const MKL_INT* nv, MKL_Complex16* wv, const MKL_INT* ldwv,
             const MKL_INT* nh, MKL_Complex16* wh, const MKL_INT* ldwh );
void zlaqr5_( const MKL_INT* wantt, const MKL_INT* wantz,
              const MKL_INT* kacc22, const MKL_INT* n, const MKL_INT* ktop,
              const MKL_INT* kbot, const MKL_INT* nshfts, MKL_Complex16* s,
              MKL_Complex16* h, const MKL_INT* ldh, const MKL_INT* iloz,
              const MKL_INT* ihiz, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* u,
              const MKL_INT* ldu, const MKL_INT* nv, MKL_Complex16* wv,
              const MKL_INT* ldwv, const MKL_INT* nh, MKL_Complex16* wh,
              const MKL_INT* ldwh );

void ZLAQSB( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, const double* s,
             const double* scond, const double* amax, char* equed );
void ZLAQSB_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, const double* s,
              const double* scond, const double* amax, char* equed );
void zlaqsb( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, const double* s,
             const double* scond, const double* amax, char* equed );
void zlaqsb_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, const double* s,
              const double* scond, const double* amax, char* equed );

void ZLAQSP( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const double* s, const double* scond, const double* amax,
             char* equed );
void ZLAQSP_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const double* s, const double* scond, const double* amax,
              char* equed );
void zlaqsp( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const double* s, const double* scond, const double* amax,
             char* equed );
void zlaqsp_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const double* s, const double* scond, const double* amax,
              char* equed );

void ZLAQSY( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const double* s, const double* scond,
             const double* amax, char* equed );
void ZLAQSY_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const double* s, const double* scond,
              const double* amax, char* equed );
void zlaqsy( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const double* s, const double* scond,
             const double* amax, char* equed );
void zlaqsy_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const double* s, const double* scond,
              const double* amax, char* equed );

void ZLAR1V( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const double* lambda, const double* d, const double* l,
             const double* ld, const double* lld, const double* pivmin,
             const double* gaptol, MKL_Complex16* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
             MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
             double* work );
void ZLAR1V_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const double* lambda, const double* d, const double* l,
              const double* ld, const double* lld, const double* pivmin,
              const double* gaptol, MKL_Complex16* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
              MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
              double* work );
void zlar1v( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
             const double* lambda, const double* d, const double* l,
             const double* ld, const double* lld, const double* pivmin,
             const double* gaptol, MKL_Complex16* z, const MKL_INT* wantnc,
             MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
             MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
             double* work );
void zlar1v_( const MKL_INT* n, const MKL_INT* b1, const MKL_INT* bn,
              const double* lambda, const double* d, const double* l,
              const double* ld, const double* lld, const double* pivmin,
              const double* gaptol, MKL_Complex16* z, const MKL_INT* wantnc,
              MKL_INT* negcnt, double* ztz, double* mingma, MKL_INT* r,
              MKL_INT* isuppz, double* nrminv, double* resid, double* rqcorr,
              double* work );

void ZLAR2V( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
             MKL_Complex16* z, const MKL_INT* incx, const double* c,
             const MKL_Complex16* s, const MKL_INT* incc );
void ZLAR2V_( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
              MKL_Complex16* z, const MKL_INT* incx, const double* c,
              const MKL_Complex16* s, const MKL_INT* incc );
void zlar2v( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
             MKL_Complex16* z, const MKL_INT* incx, const double* c,
             const MKL_Complex16* s, const MKL_INT* incc );
void zlar2v_( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
              MKL_Complex16* z, const MKL_INT* incx, const double* c,
              const MKL_Complex16* s, const MKL_INT* incc );

void ZLARCM( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* c, const MKL_INT* ldc, double* rwork );
void ZLARCM_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* c, const MKL_INT* ldc, double* rwork );
void zlarcm( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* c, const MKL_INT* ldc, double* rwork );
void zlarcm_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* c, const MKL_INT* ldc, double* rwork );

void ZLARFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
             const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* ldwork );
void ZLARFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* ldwork );
void zlarfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
             const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* ldwork );
void zlarfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* ldwork );

void ZLARF( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_Complex16* v, const MKL_INT* incv,
            const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
            MKL_Complex16* work );
void ZLARF_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* v, const MKL_INT* incv,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work );
void zlarf( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_Complex16* v, const MKL_INT* incv,
            const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
            MKL_Complex16* work );
void zlarf_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* v, const MKL_INT* incv,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work );

void ZLARFG( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
             const MKL_INT* incx, MKL_Complex16* tau );
void ZLARFG_( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
              const MKL_INT* incx, MKL_Complex16* tau );
void zlarfg( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
             const MKL_INT* incx, MKL_Complex16* tau );
void zlarfg_( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
              const MKL_INT* incx, MKL_Complex16* tau );

void ZLARFGP( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
              const MKL_INT* incx, MKL_Complex16* tau );
void ZLARFGP_( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
               const MKL_INT* incx, MKL_Complex16* tau );
void zlarfgp( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
              const MKL_INT* incx, MKL_Complex16* tau );
void zlarfgp_( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
               const MKL_INT* incx, MKL_Complex16* tau );

void ZLARFP( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
             const MKL_INT* incx, MKL_Complex16* tau );
void ZLARFP_( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
              const MKL_INT* incx, MKL_Complex16* tau );
void zlarfp( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
             const MKL_INT* incx, MKL_Complex16* tau );
void zlarfp_( const MKL_INT* n, MKL_Complex16* alpha, MKL_Complex16* x,
              const MKL_INT* incx, MKL_Complex16* tau );

void ZLARFT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
             const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );
void ZLARFT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );
void zlarft( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
             const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );
void zlarft_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, const MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );

void ZLARFX( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* v, const MKL_Complex16* tau,
             MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work );
void ZLARFX_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* v, const MKL_Complex16* tau,
              MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work );
void zlarfx( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* v, const MKL_Complex16* tau,
             MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work );
void zlarfx_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* v, const MKL_Complex16* tau,
              MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work );

void ZLARGV( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
             MKL_Complex16* y, const MKL_INT* incy, double* c,
             const MKL_INT* incc );
void ZLARGV_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
              MKL_Complex16* y, const MKL_INT* incy, double* c,
              const MKL_INT* incc );
void zlargv( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
             MKL_Complex16* y, const MKL_INT* incy, double* c,
             const MKL_INT* incc );
void zlargv_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
              MKL_Complex16* y, const MKL_INT* incy, double* c,
              const MKL_INT* incc );

void ZLARNV( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             MKL_Complex16* x );
void ZLARNV_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              MKL_Complex16* x );
void zlarnv( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
             MKL_Complex16* x );
void zlarnv_( const MKL_INT* idist, MKL_INT* iseed, const MKL_INT* n,
              MKL_Complex16* x );

void ZLARRV( const MKL_INT* n, const double* vl, const double* vu, double* d,
             double* l, double* pivmin, const MKL_INT* isplit,
             const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
             const double* minrgp, const double* rtol1, const double* rtol2,
             double* w, double* werr, double* wgap, const MKL_INT* iblock,
             const MKL_INT* indexw, const double* gers, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_INT* isuppz, double* work, MKL_INT* iwork,
             MKL_INT* info );
void ZLARRV_( const MKL_INT* n, const double* vl, const double* vu, double* d,
              double* l, double* pivmin, const MKL_INT* isplit,
              const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
              const double* minrgp, const double* rtol1, const double* rtol2,
              double* w, double* werr, double* wgap, const MKL_INT* iblock,
              const MKL_INT* indexw, const double* gers, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              MKL_INT* iwork, MKL_INT* info );
void zlarrv( const MKL_INT* n, const double* vl, const double* vu, double* d,
             double* l, double* pivmin, const MKL_INT* isplit,
             const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
             const double* minrgp, const double* rtol1, const double* rtol2,
             double* w, double* werr, double* wgap, const MKL_INT* iblock,
             const MKL_INT* indexw, const double* gers, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_INT* isuppz, double* work, MKL_INT* iwork,
             MKL_INT* info );
void zlarrv_( const MKL_INT* n, const double* vl, const double* vu, double* d,
              double* l, double* pivmin, const MKL_INT* isplit,
              const MKL_INT* m, const MKL_INT* dol, const MKL_INT* dou,
              const double* minrgp, const double* rtol1, const double* rtol2,
              double* w, double* werr, double* wgap, const MKL_INT* iblock,
              const MKL_INT* indexw, const double* gers, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_INT* isuppz, double* work,
              MKL_INT* iwork, MKL_INT* info );

void ZLARSCL2( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
               const MKL_INT* ldx );
void ZLARSCL2_( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
                const MKL_INT* ldx );
void zlarscl2( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
               const MKL_INT* ldx );
void zlarscl2_( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
                const MKL_INT* ldx );

void ZLARTG( const MKL_Complex16* f, const MKL_Complex16* g, double* cs,
             MKL_Complex16* sn, MKL_Complex16* r );
void ZLARTG_( const MKL_Complex16* f, const MKL_Complex16* g, double* cs,
              MKL_Complex16* sn, MKL_Complex16* r );
void zlartg( const MKL_Complex16* f, const MKL_Complex16* g, double* cs,
             MKL_Complex16* sn, MKL_Complex16* r );
void zlartg_( const MKL_Complex16* f, const MKL_Complex16* g, double* cs,
              MKL_Complex16* sn, MKL_Complex16* r );

void ZLARTV( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
             MKL_Complex16* y, const MKL_INT* incy, const double* c,
             const MKL_Complex16* s, const MKL_INT* incc );
void ZLARTV_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
              MKL_Complex16* y, const MKL_INT* incy, const double* c,
              const MKL_Complex16* s, const MKL_INT* incc );
void zlartv( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
             MKL_Complex16* y, const MKL_INT* incy, const double* c,
             const MKL_Complex16* s, const MKL_INT* incc );
void zlartv_( const MKL_INT* n, MKL_Complex16* x, const MKL_INT* incx,
              MKL_Complex16* y, const MKL_INT* incy, const double* c,
              const MKL_Complex16* s, const MKL_INT* incc );

void ZLARZB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work,
             const MKL_INT* ldwork );
void ZLARZB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work,
              const MKL_INT* ldwork );
void zlarzb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work,
             const MKL_INT* ldwork );
void zlarzb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* c, const MKL_INT* ldc, MKL_Complex16* work,
              const MKL_INT* ldwork );

void ZLARZ( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const MKL_Complex16* v, const MKL_INT* incv,
            const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
            MKL_Complex16* work );
void ZLARZ_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const MKL_Complex16* v, const MKL_INT* incv,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work );
void zlarz( const char* side, const MKL_INT* m, const MKL_INT* n,
            const MKL_INT* l, const MKL_Complex16* v, const MKL_INT* incv,
            const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
            MKL_Complex16* work );
void zlarz_( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* l, const MKL_Complex16* v, const MKL_INT* incv,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work );

void ZLARZT( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex16* v, const MKL_INT* ldv,
             const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );
void ZLARZT_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );
void zlarzt( const char* direct, const char* storev, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex16* v, const MKL_INT* ldv,
             const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );
void zlarzt_( const char* direct, const char* storev, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex16* v, const MKL_INT* ldv,
              const MKL_Complex16* tau, MKL_Complex16* t, const MKL_INT* ldt );

void ZLASCL( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const double* cfrom, const double* cto, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* info );
void ZLASCL_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const double* cfrom, const double* cto, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );
void zlascl( const char* type, const MKL_INT* kl, const MKL_INT* ku,
             const double* cfrom, const double* cto, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* info );
void zlascl_( const char* type, const MKL_INT* kl, const MKL_INT* ku,
              const double* cfrom, const double* cto, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );

void ZLASCL2( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
              const MKL_INT* ldx );
void ZLASCL2_( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
               const MKL_INT* ldx );
void zlascl2( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
              const MKL_INT* ldx );
void zlascl2_( const MKL_INT* m, const MKL_INT* n, const double* d, MKL_Complex16* x,
               const MKL_INT* ldx );

void ZLASET( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* alpha, const MKL_Complex16* beta,
             MKL_Complex16* a, const MKL_INT* lda );
void ZLASET_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* alpha, const MKL_Complex16* beta,
              MKL_Complex16* a, const MKL_INT* lda );
void zlaset( const char* uplo, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* alpha, const MKL_Complex16* beta,
             MKL_Complex16* a, const MKL_INT* lda );
void zlaset_( const char* uplo, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* alpha, const MKL_Complex16* beta,
              MKL_Complex16* a, const MKL_INT* lda );

void ZLASR( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const double* c,
            const double* s, MKL_Complex16* a, const MKL_INT* lda );
void ZLASR_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const double* c,
             const double* s, MKL_Complex16* a, const MKL_INT* lda );
void zlasr( const char* side, const char* pivot, const char* direct,
            const MKL_INT* m, const MKL_INT* n, const double* c,
            const double* s, MKL_Complex16* a, const MKL_INT* lda );
void zlasr_( const char* side, const char* pivot, const char* direct,
             const MKL_INT* m, const MKL_INT* n, const double* c,
             const double* s, MKL_Complex16* a, const MKL_INT* lda );

void ZLASSQ( const MKL_INT* n, const MKL_Complex16* x, const MKL_INT* incx,
             double* scale, double* sumsq );
void ZLASSQ_( const MKL_INT* n, const MKL_Complex16* x, const MKL_INT* incx,
              double* scale, double* sumsq );
void zlassq( const MKL_INT* n, const MKL_Complex16* x, const MKL_INT* incx,
             double* scale, double* sumsq );
void zlassq_( const MKL_INT* n, const MKL_Complex16* x, const MKL_INT* incx,
              double* scale, double* sumsq );

void ZLASWP( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
             const MKL_INT* incx );
void ZLASWP_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );
void zlaswp( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
             const MKL_INT* incx );
void zlaswp_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              const MKL_INT* k1, const MKL_INT* k2, const MKL_INT* ipiv,
              const MKL_INT* incx );

void ZLASYF( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void ZLASYF_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlasyf( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );
void zlasyf_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_INT* kb, MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
              MKL_Complex16* w, const MKL_INT* ldw, MKL_INT* info );

void ZLAT2C( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void ZLAT2C_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
              MKL_INT* info );
void zlat2c( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
             MKL_INT* info );
void zlat2c_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex8* sa, const MKL_INT* ldsa,
              MKL_INT* info );

void ZLATBS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* x,
             double* scale, double* cnorm, MKL_INT* info );
void ZLATBS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* x,
              double* scale, double* cnorm, MKL_INT* info );
void zlatbs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* x,
             double* scale, double* cnorm, MKL_INT* info );
void zlatbs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* x,
              double* scale, double* cnorm, MKL_INT* info );

void ZLATDF( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* rhs, double* rdsum,
             double* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );
void ZLATDF_( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* rhs, double* rdsum,
              double* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );
void zlatdf( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* rhs, double* rdsum,
             double* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );
void zlatdf_( const MKL_INT* ijob, const MKL_INT* n, const MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* rhs, double* rdsum,
              double* rdscal, const MKL_INT* ipiv, const MKL_INT* jpiv );

void ZLATPS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex16* ap,
             MKL_Complex16* x, double* scale, double* cnorm, MKL_INT* info );
void ZLATPS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex16* ap,
              MKL_Complex16* x, double* scale, double* cnorm, MKL_INT* info );
void zlatps( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex16* ap,
             MKL_Complex16* x, double* scale, double* cnorm, MKL_INT* info );
void zlatps_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex16* ap,
              MKL_Complex16* x, double* scale, double* cnorm, MKL_INT* info );

void ZLATRD( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, double* e,
             MKL_Complex16* tau, MKL_Complex16* w, const MKL_INT* ldw );
void ZLATRD_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, double* e,
              MKL_Complex16* tau, MKL_Complex16* w, const MKL_INT* ldw );
void zlatrd( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
             MKL_Complex16* a, const MKL_INT* lda, double* e,
             MKL_Complex16* tau, MKL_Complex16* w, const MKL_INT* ldw );
void zlatrd_( const char* uplo, const MKL_INT* n, const MKL_INT* nb,
              MKL_Complex16* a, const MKL_INT* lda, double* e,
              MKL_Complex16* tau, MKL_Complex16* w, const MKL_INT* ldw );

void ZLATRS( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* x, double* scale,
             double* cnorm, MKL_INT* info );
void ZLATRS_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* x, double* scale,
              double* cnorm, MKL_INT* info );
void zlatrs( const char* uplo, const char* trans, const char* diag,
             const char* normin, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* x, double* scale,
             double* cnorm, MKL_INT* info );
void zlatrs_( const char* uplo, const char* trans, const char* diag,
              const char* normin, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* x, double* scale,
              double* cnorm, MKL_INT* info );

void ZLATRZ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* work );
void ZLATRZ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* work );
void zlatrz( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
             MKL_Complex16* work );
void zlatrz_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* l,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* tau,
              MKL_Complex16* work );

void ZLATZM( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* v, const MKL_INT* incv,
             const MKL_Complex16* tau, MKL_Complex16* c1, MKL_Complex16* c2,
             const MKL_INT* ldc, MKL_Complex16* work );
void ZLATZM_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* v, const MKL_INT* incv,
              const MKL_Complex16* tau, MKL_Complex16* c1, MKL_Complex16* c2,
              const MKL_INT* ldc, MKL_Complex16* work );
void zlatzm( const char* side, const MKL_INT* m, const MKL_INT* n,
             const MKL_Complex16* v, const MKL_INT* incv,
             const MKL_Complex16* tau, MKL_Complex16* c1, MKL_Complex16* c2,
             const MKL_INT* ldc, MKL_Complex16* work );
void zlatzm_( const char* side, const MKL_INT* m, const MKL_INT* n,
              const MKL_Complex16* v, const MKL_INT* incv,
              const MKL_Complex16* tau, MKL_Complex16* c1, MKL_Complex16* c2,
              const MKL_INT* ldc, MKL_Complex16* work );

void ZLAUU2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void ZLAUU2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );
void zlauu2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void zlauu2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );

void ZLAUUM( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void ZLAUUM_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );
void zlauum( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void zlauum_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );

void ZPBCON( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex16* ab, const MKL_INT* ldab, const double* anorm,
             double* rcond, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ZPBCON_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex16* ab, const MKL_INT* ldab,
              const double* anorm, double* rcond, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zpbcon( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex16* ab, const MKL_INT* ldab, const double* anorm,
             double* rcond, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void zpbcon_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex16* ab, const MKL_INT* ldab,
              const double* anorm, double* rcond, MKL_Complex16* work,
              double* rwork, MKL_INT* info );

void ZPBEQU( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex16* ab, const MKL_INT* ldab, double* s,
             double* scond, double* amax, MKL_INT* info );
void ZPBEQU_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex16* ab, const MKL_INT* ldab, double* s,
              double* scond, double* amax, MKL_INT* info );
void zpbequ( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_Complex16* ab, const MKL_INT* ldab, double* s,
             double* scond, double* amax, MKL_INT* info );
void zpbequ_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_Complex16* ab, const MKL_INT* ldab, double* s,
              double* scond, double* amax, MKL_INT* info );

void ZPBRFS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex16* ab, const MKL_INT* ldab,
             const MKL_Complex16* afb, const MKL_INT* ldafb,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPBRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_Complex16* afb,
              const MKL_INT* ldafb, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpbrfs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex16* ab, const MKL_INT* ldab,
             const MKL_Complex16* afb, const MKL_INT* ldafb,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpbrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, const MKL_Complex16* afb,
              const MKL_INT* ldafb, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPBSTF( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void ZPBSTF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void zpbstf( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void zpbstf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );

void ZPBSV( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZPBSV_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zpbsv( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
            const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zpbsv_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void ZPBSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* afb, const MKL_INT* ldafb,
             char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPBSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* afb, const MKL_INT* ldafb,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zpbsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex16* ab,
             const MKL_INT* ldab, MKL_Complex16* afb, const MKL_INT* ldafb,
             char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpbsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, const MKL_INT* nrhs, MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* afb, const MKL_INT* ldafb,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZPBTF2( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void ZPBTF2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void zpbtf2( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void zpbtf2_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );

void ZPBTRF( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void ZPBTRF_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void zpbtrf( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );
void zpbtrf_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              MKL_Complex16* ab, const MKL_INT* ldab, MKL_INT* info );

void ZPBTRS( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZPBTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );
void zpbtrs( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
             const MKL_INT* nrhs, const MKL_Complex16* ab, const MKL_INT* ldab,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zpbtrs_( const char* uplo, const MKL_INT* n, const MKL_INT* kd,
              const MKL_INT* nrhs, const MKL_Complex16* ab,
              const MKL_INT* ldab, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );

void ZPFTRF( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, MKL_INT* info );
void ZPFTRF_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, MKL_INT* info );
void zpftrf( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, MKL_INT* info );
void zpftrf_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, MKL_INT* info );

void ZPFTRI( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, MKL_INT* info );
void ZPFTRI_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, MKL_INT* info );
void zpftri( const char* transr, const char* uplo, const MKL_INT* n,
             MKL_Complex16* a, MKL_INT* info );
void zpftri_( const char* transr, const char* uplo, const MKL_INT* n,
              MKL_Complex16* a, MKL_INT* info );

void ZPFTRS( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* a, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZPFTRS_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zpftrs( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* a, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zpftrs_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZPOCON( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPOCON_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpocon( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const double* anorm, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpocon_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const double* anorm, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPOEQUB( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              double* s, double* scond, double* amax, MKL_INT* info );
void ZPOEQUB_( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
               double* s, double* scond, double* amax, MKL_INT* info );
void zpoequb( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              double* s, double* scond, double* amax, MKL_INT* info );
void zpoequb_( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
               double* s, double* scond, double* amax, MKL_INT* info );

void ZPOEQU( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             double* s, double* scond, double* amax, MKL_INT* info );
void ZPOEQU_( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              double* s, double* scond, double* amax, MKL_INT* info );
void zpoequ( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             double* s, double* scond, double* amax, MKL_INT* info );
void zpoequ_( const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              double* s, double* scond, double* amax, MKL_INT* info );

void ZPORFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPORFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zporfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zporfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPORFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf, const double* s,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPORFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf, const double* s,
               const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );
void zporfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf, const double* s,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zporfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf, const double* s,
               const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPOSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void ZPOSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zposv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void zposv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );

void ZPOSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPOSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zposvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zposvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPOSVXX( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPOSVXX_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );
void zposvxx( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
              const MKL_INT* n_err_bnds, double* err_bnds_norm,
              double* err_bnds_comp, const MKL_INT* nparams, double* params,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zposvxx_( const char* fact, const char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, char* equed, double* s,
               MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
               const MKL_INT* ldx, double* rcond, double* rpvgrw, double* berr,
               const MKL_INT* n_err_bnds, double* err_bnds_norm,
               double* err_bnds_comp, const MKL_INT* nparams, double* params,
               MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPOTF2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void ZPOTF2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );
void zpotf2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void zpotf2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );

void ZPOTRF( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void ZPOTRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );
void zpotrf( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void zpotrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );

void ZPOTRI( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void ZPOTRI_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );
void zpotri( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* info );
void zpotri_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* info );

void ZPOTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZPOTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zpotrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zpotrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZPPCON( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const double* anorm, double* rcond, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void ZPPCON_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const double* anorm, double* rcond, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zppcon( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const double* anorm, double* rcond, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void zppcon_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const double* anorm, double* rcond, MKL_Complex16* work,
              double* rwork, MKL_INT* info );

void ZPPEQU( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             double* s, double* scond, double* amax, MKL_INT* info );
void ZPPEQU_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              double* s, double* scond, double* amax, MKL_INT* info );
void zppequ( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             double* s, double* scond, double* amax, MKL_INT* info );
void zppequ_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              double* s, double* scond, double* amax, MKL_INT* info );

void ZPPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_Complex16* afp,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_Complex16* afp,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_Complex16* afp,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zpprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_Complex16* afp,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZPPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
            MKL_INT* info );
void ZPPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void zppsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
            MKL_INT* info );
void zppsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );

void ZPPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* ap, MKL_Complex16* afp,
             char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* ap, MKL_Complex16* afp,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zppsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, MKL_Complex16* ap, MKL_Complex16* afp,
             char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void zppsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* ap, MKL_Complex16* afp,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZPPTRF( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* info );
void ZPPTRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* info );
void zpptrf( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* info );
void zpptrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* info );

void ZPPTRI( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* info );
void ZPPTRI_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* info );
void zpptri( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* info );
void zpptri_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* info );

void ZPPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void ZPPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );
void zpptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void zpptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );

void ZPSTF2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
             const double* tol, double* work, MKL_INT* info );
void ZPSTF2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );
void zpstf2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
             const double* tol, double* work, MKL_INT* info );
void zpstf2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );

void ZPSTRF( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
             const double* tol, double* work, MKL_INT* info );
void ZPSTRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );
void zpstrf( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
             const double* tol, double* work, MKL_INT* info );
void zpstrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* piv, MKL_INT* rank,
              const double* tol, double* work, MKL_INT* info );

void ZPTCON( const MKL_INT* n, const double* d, const MKL_Complex16* e,
             const double* anorm, double* rcond, double* rwork,
             MKL_INT* info );
void ZPTCON_( const MKL_INT* n, const double* d, const MKL_Complex16* e,
              const double* anorm, double* rcond, double* rwork,
              MKL_INT* info );
void zptcon( const MKL_INT* n, const double* d, const MKL_Complex16* e,
             const double* anorm, double* rcond, double* rwork,
             MKL_INT* info );
void zptcon_( const MKL_INT* n, const double* d, const MKL_Complex16* e,
              const double* anorm, double* rcond, double* rwork,
              MKL_INT* info );

void ZPTEQR( const char* compz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* z, const MKL_INT* ldz, double* work,
             MKL_INT* info );
void ZPTEQR_( const char* compz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* z, const MKL_INT* ldz, double* work,
              MKL_INT* info );
void zpteqr( const char* compz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* z, const MKL_INT* ldz, double* work,
             MKL_INT* info );
void zpteqr_( const char* compz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* z, const MKL_INT* ldz, double* work,
              MKL_INT* info );

void ZPTRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, const double* df,
             const MKL_Complex16* ef, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* ferr, double* berr, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ZPTRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, const double* df,
              const MKL_Complex16* ef, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zptrfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, const double* df,
             const MKL_Complex16* ef, const MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
             double* ferr, double* berr, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void zptrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, const double* df,
              const MKL_Complex16* ef, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZPTSV( const MKL_INT* n, const MKL_INT* nrhs, double* d, MKL_Complex16* e,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZPTSV_( const MKL_INT* n, const MKL_INT* nrhs, double* d,
             MKL_Complex16* e, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void zptsv( const MKL_INT* n, const MKL_INT* nrhs, double* d, MKL_Complex16* e,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zptsv_( const MKL_INT* n, const MKL_INT* nrhs, double* d,
             MKL_Complex16* e, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );

void ZPTSVX( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, double* df,
             MKL_Complex16* ef, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZPTSVX_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, double* df,
              MKL_Complex16* ef, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zptsvx( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, double* df,
             MKL_Complex16* ef, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void zptsvx_( const char* fact, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, double* df,
              MKL_Complex16* ef, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZPTTRF( const MKL_INT* n, double* d, MKL_Complex16* e, MKL_INT* info );
void ZPTTRF_( const MKL_INT* n, double* d, MKL_Complex16* e, MKL_INT* info );
void zpttrf( const MKL_INT* n, double* d, MKL_Complex16* e, MKL_INT* info );
void zpttrf_( const MKL_INT* n, double* d, MKL_Complex16* e, MKL_INT* info );

void ZPTTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZPTTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zpttrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zpttrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZPTTS2( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, MKL_Complex16* b,
             const MKL_INT* ldb );
void ZPTTS2_( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, MKL_Complex16* b,
              const MKL_INT* ldb );
void zptts2( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
             const double* d, const MKL_Complex16* e, MKL_Complex16* b,
             const MKL_INT* ldb );
void zptts2_( const MKL_INT* iuplo, const MKL_INT* n, const MKL_INT* nrhs,
              const double* d, const MKL_Complex16* e, MKL_Complex16* b,
              const MKL_INT* ldb );

void ZROT( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
           MKL_Complex16* cy, const MKL_INT* incy, const double* c,
           const MKL_Complex16* s );
void ZROT_( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
            MKL_Complex16* cy, const MKL_INT* incy, const double* c,
            const MKL_Complex16* s );
void zrot( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
           MKL_Complex16* cy, const MKL_INT* incy, const double* c,
           const MKL_Complex16* s );
void zrot_( const MKL_INT* n, MKL_Complex16* cx, const MKL_INT* incx,
            MKL_Complex16* cy, const MKL_INT* incy, const double* c,
            const MKL_Complex16* s );

void ZSPCON( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             MKL_Complex16* work, MKL_INT* info );
void ZSPCON_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              MKL_Complex16* work, MKL_INT* info );
void zspcon( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_INT* ipiv, const double* anorm, double* rcond,
             MKL_Complex16* work, MKL_INT* info );
void zspcon_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_INT* ipiv, const double* anorm, double* rcond,
              MKL_Complex16* work, MKL_INT* info );

void ZSPMV( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* ap, const MKL_Complex16* x,
            const MKL_INT* incx, const MKL_Complex16* beta, MKL_Complex16* y,
            const MKL_INT* incy );
void ZSPMV_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
             const MKL_Complex16* ap, const MKL_Complex16* x,
             const MKL_INT* incx, const MKL_Complex16* beta, MKL_Complex16* y,
             const MKL_INT* incy );
void zspmv( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* ap, const MKL_Complex16* x,
            const MKL_INT* incx, const MKL_Complex16* beta, MKL_Complex16* y,
            const MKL_INT* incy );
void zspmv_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
             const MKL_Complex16* ap, const MKL_Complex16* x,
             const MKL_INT* incx, const MKL_Complex16* beta, MKL_Complex16* y,
             const MKL_INT* incy );

void ZSPR( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
           const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* ap );
void ZSPR_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* ap );
void zspr( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
           const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* ap );
void zspr_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* ap );

void ZSPRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_Complex16* afp,
             const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZSPRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_Complex16* afp,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zsprfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_Complex16* afp,
             const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zsprfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_Complex16* afp,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZSPSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void ZSPSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zspsv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
            const MKL_INT* ldb, MKL_INT* info );
void zspsv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* ap, MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );

void ZSPSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
             MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZSPSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
              MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void zspsvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
             MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* x, const MKL_INT* ldx, double* rcond, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void zspsvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* ap, MKL_Complex16* afp,
              MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* ferr, double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZSPTRF( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* ipiv, MKL_INT* info );
void ZSPTRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* ipiv, MKL_INT* info );
void zsptrf( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             MKL_INT* ipiv, MKL_INT* info );
void zsptrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              MKL_INT* ipiv, MKL_INT* info );

void ZSPTRI( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );
void ZSPTRI_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );
void zsptri( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
             const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );
void zsptri_( const char* uplo, const MKL_INT* n, MKL_Complex16* ap,
              const MKL_INT* ipiv, MKL_Complex16* work, MKL_INT* info );

void ZSPTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZSPTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zsptrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zsptrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* ap, const MKL_INT* ipiv, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZSTEDC( const char* compz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ZSTEDC_( const char* compz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void zstedc( const char* compz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
             const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void zstedc_( const char* compz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_Complex16* work,
              const MKL_INT* lwork, double* rwork, const MKL_INT* lrwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void ZSTEGR( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void ZSTEGR_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
              double* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );
void zstegr( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
             MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
             double* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void zstegr_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, const double* abstol, MKL_INT* m, double* w,
              MKL_Complex16* z, const MKL_INT* ldz, MKL_INT* isuppz,
              double* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );

void ZSTEIN( const MKL_INT* n, const double* d, const double* e,
             const MKL_INT* m, const double* w, const MKL_INT* iblock,
             const MKL_INT* isplit, MKL_Complex16* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void ZSTEIN_( const MKL_INT* n, const double* d, const double* e,
              const MKL_INT* m, const double* w, const MKL_INT* iblock,
              const MKL_INT* isplit, MKL_Complex16* z, const MKL_INT* ldz,
              double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zstein( const MKL_INT* n, const double* d, const double* e,
             const MKL_INT* m, const double* w, const MKL_INT* iblock,
             const MKL_INT* isplit, MKL_Complex16* z, const MKL_INT* ldz,
             double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );
void zstein_( const MKL_INT* n, const double* d, const double* e,
              const MKL_INT* m, const double* w, const MKL_INT* iblock,
              const MKL_INT* isplit, MKL_Complex16* z, const MKL_INT* ldz,
              double* work, MKL_INT* iwork, MKL_INT* ifail, MKL_INT* info );

void ZSTEMR( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void ZSTEMR_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, double* w, MKL_Complex16* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void zstemr( const char* jobz, const char* range, const MKL_INT* n, double* d,
             double* e, const double* vl, const double* vu, const MKL_INT* il,
             const MKL_INT* iu, MKL_INT* m, double* w, MKL_Complex16* z,
             const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
             MKL_INT* tryrac, double* work, const MKL_INT* lwork,
             MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );
void zstemr_( const char* jobz, const char* range, const MKL_INT* n, double* d,
              double* e, const double* vl, const double* vu, const MKL_INT* il,
              const MKL_INT* iu, MKL_INT* m, double* w, MKL_Complex16* z,
              const MKL_INT* ldz, const MKL_INT* nzc, MKL_INT* isuppz,
              MKL_INT* tryrac, double* work, const MKL_INT* lwork,
              MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info );

void ZSTEQR( const char* compz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* z, const MKL_INT* ldz, double* work,
             MKL_INT* info );
void ZSTEQR_( const char* compz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* z, const MKL_INT* ldz, double* work,
              MKL_INT* info );
void zsteqr( const char* compz, const MKL_INT* n, double* d, double* e,
             MKL_Complex16* z, const MKL_INT* ldz, double* work,
             MKL_INT* info );
void zsteqr_( const char* compz, const MKL_INT* n, double* d, double* e,
              MKL_Complex16* z, const MKL_INT* ldz, double* work,
              MKL_INT* info );

void ZSYCON( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
             double* rcond, MKL_Complex16* work, MKL_INT* info );
void ZSYCON_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
              double* rcond, MKL_Complex16* work, MKL_INT* info );
void zsycon( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
             double* rcond, MKL_Complex16* work, MKL_INT* info );
void zsycon_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, const double* anorm,
              double* rcond, MKL_Complex16* work, MKL_INT* info );

void ZSYEQUB( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* s, double* scond, double* amax,
              MKL_Complex16* work, MKL_INT* info );
void ZSYEQUB_( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* s, double* scond, double* amax,
               MKL_Complex16* work, MKL_INT* info );
void zsyequb( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, double* s, double* scond, double* amax,
              MKL_Complex16* work, MKL_INT* info );
void zsyequb_( char* uplo, const MKL_INT* n, const MKL_Complex16* a,
               const MKL_INT* lda, double* s, double* scond, double* amax,
               MKL_Complex16* work, MKL_INT* info );

void ZSYMV( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* x,
            const MKL_INT* incx, const MKL_Complex16* beta, MKL_Complex16* y,
            const MKL_INT* incy );
void ZSYMV_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* x, const MKL_INT* incx,
             const MKL_Complex16* beta, MKL_Complex16* y,
             const MKL_INT* incy );
void zsymv( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* x,
            const MKL_INT* incx, const MKL_Complex16* beta, MKL_Complex16* y,
            const MKL_INT* incy );
void zsymv_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* x, const MKL_INT* incx,
             const MKL_Complex16* beta, MKL_Complex16* y,
             const MKL_INT* incy );

void ZSYR( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
           const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* a,
           const MKL_INT* lda );
void ZSYR_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* a,
            const MKL_INT* lda );
void zsyr( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
           const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* a,
           const MKL_INT* lda );
void zsyr_( const char* uplo, const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* x, const MKL_INT* incx, MKL_Complex16* a,
            const MKL_INT* lda );

void ZSYRFS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZSYRFS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void zsyrfs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* af, const MKL_INT* ldaf, const MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* ferr, double* berr,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void zsyrfs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* ferr, double* berr,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZSYRFSX( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ZSYRFSX_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
               double* rcond, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );
void zsyrfsx( const char* uplo, const char* equed, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* af, const MKL_INT* ldaf,
              const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
              double* rcond, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zsyrfsx_( const char* uplo, const char* equed, const MKL_INT* n,
               const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
               const MKL_Complex16* af, const MKL_INT* ldaf,
               const MKL_INT* ipiv, const double* s, const MKL_Complex16* b,
               const MKL_INT* ldb, MKL_Complex16* x, const MKL_INT* ldx,
               double* rcond, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );

void ZSYSV( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
            const MKL_INT* lwork, MKL_INT* info );
void ZSYSV_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zsysv( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
            MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
            MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
            const MKL_INT* lwork, MKL_INT* info );
void zsysv_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );

void ZSYSVX( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void ZSYSVX_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );
void zsysvx( const char* fact, const char* uplo, const MKL_INT* n,
             const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
             const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
             MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
             MKL_INT* info );
void zsysvx_( const char* fact, const char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, const MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* x,
              const MKL_INT* ldx, double* rcond, double* ferr, double* berr,
              MKL_Complex16* work, const MKL_INT* lwork, double* rwork,
              MKL_INT* info );

void ZSYSVXX( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ZSYSVXX_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
               double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );
void zsysvxx( const char* fact, char* uplo, const MKL_INT* n,
              const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
              char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
              double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
              double* err_bnds_norm, double* err_bnds_comp,
              const MKL_INT* nparams, double* params, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void zsysvxx_( const char* fact, char* uplo, const MKL_INT* n,
               const MKL_INT* nrhs, MKL_Complex16* a, const MKL_INT* lda,
               MKL_Complex16* af, const MKL_INT* ldaf, MKL_INT* ipiv,
               char* equed, double* s, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_Complex16* x, const MKL_INT* ldx, double* rcond,
               double* rpvgrw, double* berr, const MKL_INT* n_err_bnds,
               double* err_bnds_norm, double* err_bnds_comp,
               const MKL_INT* nparams, double* params, MKL_Complex16* work,
               double* rwork, MKL_INT* info );

void ZSYTF2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void ZSYTF2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zsytf2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );
void zsytf2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_INT* info );

void ZSYTRF( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZSYTRF_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zsytrf( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zsytrf_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZSYTRI( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
             MKL_INT* info );
void ZSYTRI_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              MKL_INT* info );
void zsytri( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
             MKL_INT* info );
void zsytri_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              MKL_INT* info );

void ZSYTRS( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZSYTRS_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zsytrs( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
             const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void zsytrs_( const char* uplo, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* ipiv,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void ZTBCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_Complex16* ab,
             const MKL_INT* ldab, double* rcond, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void ZTBCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_Complex16* ab,
              const MKL_INT* ldab, double* rcond, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ztbcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_Complex16* ab,
             const MKL_INT* ldab, double* rcond, MKL_Complex16* work,
             double* rwork, MKL_INT* info );
void ztbcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_Complex16* ab,
              const MKL_INT* ldab, double* rcond, MKL_Complex16* work,
              double* rwork, MKL_INT* info );

void ZTBRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex16* ab, const MKL_INT* ldab,
             const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZTBRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex16* ab, const MKL_INT* ldab,
              const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
              double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void ztbrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex16* ab, const MKL_INT* ldab,
             const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztbrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex16* ab, const MKL_INT* ldab,
              const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
              double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZTBTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZTBTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void ztbtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
             const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ztbtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* kd, const MKL_INT* nrhs,
              const MKL_Complex16* ab, const MKL_INT* ldab, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZTFSM( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* a, MKL_Complex16* b, const MKL_INT* ldb );
void ZTFSM_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex16* alpha,
             const MKL_Complex16* a, MKL_Complex16* b, const MKL_INT* ldb );
void ztfsm( const char* transr, const char* side, const char* uplo,
            const char* trans, const char* diag, const MKL_INT* m,
            const MKL_INT* n, const MKL_Complex16* alpha,
            const MKL_Complex16* a, MKL_Complex16* b, const MKL_INT* ldb );
void ztfsm_( const char* transr, const char* side, const char* uplo,
             const char* trans, const char* diag, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex16* alpha,
             const MKL_Complex16* a, MKL_Complex16* b, const MKL_INT* ldb );

void ZTFTRI( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, MKL_Complex16* a, MKL_INT* info );
void ZTFTRI_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, MKL_Complex16* a, MKL_INT* info );
void ztftri( const char* transr, const char* uplo, const char* diag,
             const MKL_INT* n, MKL_Complex16* a, MKL_INT* info );
void ztftri_( const char* transr, const char* uplo, const char* diag,
              const MKL_INT* n, MKL_Complex16* a, MKL_INT* info );

void ZTFTTP( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* arf, MKL_Complex16* ap, MKL_INT* info );
void ZTFTTP_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* arf, MKL_Complex16* ap, MKL_INT* info );
void ztfttp( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* arf, MKL_Complex16* ap, MKL_INT* info );
void ztfttp_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* arf, MKL_Complex16* ap, MKL_INT* info );

void ZTFTTR( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* arf, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* info );
void ZTFTTR_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* arf, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );
void ztfttr( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* arf, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* info );
void ztfttr_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* arf, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* info );

void ZTGEVC( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex16* s, const MKL_INT* lds,
             const MKL_Complex16* p, const MKL_INT* ldp, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ZTGEVC_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex16* s, const MKL_INT* lds,
              const MKL_Complex16* p, const MKL_INT* ldp, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              double* rwork, MKL_INT* info );
void ztgevc( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex16* s, const MKL_INT* lds,
             const MKL_Complex16* p, const MKL_INT* ldp, MKL_Complex16* vl,
             const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
             const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ztgevc_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex16* s, const MKL_INT* lds,
              const MKL_Complex16* p, const MKL_INT* ldp, MKL_Complex16* vl,
              const MKL_INT* ldvl, MKL_Complex16* vr, const MKL_INT* ldvr,
              const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              double* rwork, MKL_INT* info );

void ZTGEX2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* j1,
             MKL_INT* info );
void ZTGEX2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* j1,
              MKL_INT* info );
void ztgex2( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* j1,
             MKL_INT* info );
void ztgex2_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* j1,
              MKL_INT* info );

void ZTGEXC( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* ifst,
             MKL_INT* ilst, MKL_INT* info );
void ZTGEXC_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* ifst,
              MKL_INT* ilst, MKL_INT* info );
void ztgexc( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* ifst,
             MKL_INT* ilst, MKL_INT* info );
void ztgexc_( const MKL_INT* wantq, const MKL_INT* wantz, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* ifst,
              MKL_INT* ilst, MKL_INT* info );

void ZTGSEN( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* q,
             const MKL_INT* ldq, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* m, double* pl, double* pr, double* dif,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void ZTGSEN_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* m, double* pl, double* pr, double* dif,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );
void ztgsen( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
             const MKL_INT* select, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* q,
             const MKL_INT* ldq, MKL_Complex16* z, const MKL_INT* ldz,
             MKL_INT* m, double* pl, double* pr, double* dif,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
             const MKL_INT* liwork, MKL_INT* info );
void ztgsen_( const MKL_INT* ijob, const MKL_INT* wantq, const MKL_INT* wantz,
              const MKL_INT* select, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* alpha, MKL_Complex16* beta, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_Complex16* z, const MKL_INT* ldz,
              MKL_INT* m, double* pl, double* pr, double* dif,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
              const MKL_INT* liwork, MKL_INT* info );

void ZTGSJA( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             const double* tola, const double* tolb, double* alpha,
             double* beta, MKL_Complex16* u, const MKL_INT* ldu,
             MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
             const MKL_INT* ldq, MKL_Complex16* work, MKL_INT* ncycle,
             MKL_INT* info );
void ZTGSJA_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              const double* tola, const double* tolb, double* alpha,
              double* beta, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_Complex16* work, MKL_INT* ncycle,
              MKL_INT* info );
void ztgsja( const char* jobu, const char* jobv, const char* jobq,
             const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             const double* tola, const double* tolb, double* alpha,
             double* beta, MKL_Complex16* u, const MKL_INT* ldu,
             MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
             const MKL_INT* ldq, MKL_Complex16* work, MKL_INT* ncycle,
             MKL_INT* info );
void ztgsja_( const char* jobu, const char* jobv, const char* jobq,
              const MKL_INT* m, const MKL_INT* p, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              const double* tola, const double* tolb, double* alpha,
              double* beta, MKL_Complex16* u, const MKL_INT* ldu,
              MKL_Complex16* v, const MKL_INT* ldv, MKL_Complex16* q,
              const MKL_INT* ldq, MKL_Complex16* work, MKL_INT* ncycle,
              MKL_INT* info );

void ZTGSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* vl, const MKL_INT* ldvl,
             const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
             double* dif, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void ZTGSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* vl, const MKL_INT* ldvl,
              const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
              double* dif, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void ztgsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* vl, const MKL_INT* ldvl,
             const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
             double* dif, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );
void ztgsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* vl, const MKL_INT* ldvl,
              const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
              double* dif, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* iwork, MKL_INT* info );

void ZTGSY2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
             const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
             const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
             const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
             MKL_INT* info );
void ZTGSY2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
              const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
              const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
              const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
              MKL_INT* info );
void ztgsy2( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
             const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
             const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
             const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
             MKL_INT* info );
void ztgsy2_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
              const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
              const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
              const MKL_INT* ldf, double* scale, double* rdsum, double* rdscal,
              MKL_INT* info );

void ZTGSYL( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
             const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
             const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
             const MKL_INT* ldf, double* scale, double* dif,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void ZTGSYL_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
              const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
              const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
              const MKL_INT* ldf, double* scale, double* dif,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );
void ztgsyl( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
             const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
             const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
             const MKL_INT* ldf, double* scale, double* dif,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
             MKL_INT* info );
void ztgsyl_( const char* trans, const MKL_INT* ijob, const MKL_INT* m,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* b, const MKL_INT* ldb, MKL_Complex16* c,
              const MKL_INT* ldc, const MKL_Complex16* d, const MKL_INT* ldd,
              const MKL_Complex16* e, const MKL_INT* lde, MKL_Complex16* f,
              const MKL_INT* ldf, double* scale, double* dif,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* iwork,
              MKL_INT* info );

void ZTPCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex16* ap, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZTPCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex16* ap, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztpcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex16* ap, double* rcond,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztpcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex16* ap, double* rcond,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZTPRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
             const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZTPRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
              const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
              double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void ztprfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
             const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztprfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
              const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
              double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZTPTRI( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex16* ap, MKL_INT* info );
void ZTPTRI_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex16* ap, MKL_INT* info );
void ztptri( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex16* ap, MKL_INT* info );
void ztptri_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex16* ap, MKL_INT* info );

void ZTPTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ZTPTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ztptrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
             MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );
void ztptrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* ap,
              MKL_Complex16* b, const MKL_INT* ldb, MKL_INT* info );

void ZTPTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* ap, MKL_Complex16* arf, MKL_INT* info );
void ZTPTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* ap, MKL_Complex16* arf, MKL_INT* info );
void ztpttf( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* ap, MKL_Complex16* arf, MKL_INT* info );
void ztpttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* ap, MKL_Complex16* arf, MKL_INT* info );

void ZTPTTR( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ZTPTTR_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ztpttr( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ztpttr_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );

void ZTRCON( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             double* rcond, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ZTRCON_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              double* rcond, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void ztrcon( const char* norm, const char* uplo, const char* diag,
             const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
             double* rcond, MKL_Complex16* work, double* rwork,
             MKL_INT* info );
void ztrcon_( const char* norm, const char* uplo, const char* diag,
              const MKL_INT* n, const MKL_Complex16* a, const MKL_INT* lda,
              double* rcond, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZTREVC( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZTREVC_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
              const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
              MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztrevc( const char* side, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
             const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
             MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztrevc_( const char* side, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* vl, const MKL_INT* ldvl, MKL_Complex16* vr,
              const MKL_INT* ldvr, const MKL_INT* mm, MKL_INT* m,
              MKL_Complex16* work, double* rwork, MKL_INT* info );

void ZTREXC( const char* compq, const MKL_INT* n, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* q, const MKL_INT* ldq,
             const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );
void ZTREXC_( const char* compq, const MKL_INT* n, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* q, const MKL_INT* ldq,
              const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );
void ztrexc( const char* compq, const MKL_INT* n, MKL_Complex16* t,
             const MKL_INT* ldt, MKL_Complex16* q, const MKL_INT* ldq,
             const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );
void ztrexc_( const char* compq, const MKL_INT* n, MKL_Complex16* t,
              const MKL_INT* ldt, MKL_Complex16* q, const MKL_INT* ldq,
              const MKL_INT* ifst, const MKL_INT* ilst, MKL_INT* info );

void ZTRRFS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ZTRRFS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
              double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );
void ztrrfs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
             const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
             double* berr, MKL_Complex16* work, double* rwork, MKL_INT* info );
void ztrrfs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
              const MKL_Complex16* x, const MKL_INT* ldx, double* ferr,
              double* berr, MKL_Complex16* work, double* rwork,
              MKL_INT* info );

void ZTRSEN( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* w,
             MKL_INT* m, double* s, double* sep, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZTRSEN_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* w,
              MKL_INT* m, double* s, double* sep, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ztrsen( const char* job, const char* compq, const MKL_INT* select,
             const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* w,
             MKL_INT* m, double* s, double* sep, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ztrsen_( const char* job, const char* compq, const MKL_INT* select,
              const MKL_INT* n, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* q, const MKL_INT* ldq, MKL_Complex16* w,
              MKL_INT* m, double* s, double* sep, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZTRSNA( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex16* t, const MKL_INT* ldt,
             const MKL_Complex16* vl, const MKL_INT* ldvl,
             const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
             double* sep, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
             const MKL_INT* ldwork, double* rwork, MKL_INT* info );
void ZTRSNA_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex16* t, const MKL_INT* ldt,
              const MKL_Complex16* vl, const MKL_INT* ldvl,
              const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
              double* sep, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              const MKL_INT* ldwork, double* rwork, MKL_INT* info );
void ztrsna( const char* job, const char* howmny, const MKL_INT* select,
             const MKL_INT* n, const MKL_Complex16* t, const MKL_INT* ldt,
             const MKL_Complex16* vl, const MKL_INT* ldvl,
             const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
             double* sep, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
             const MKL_INT* ldwork, double* rwork, MKL_INT* info );
void ztrsna_( const char* job, const char* howmny, const MKL_INT* select,
              const MKL_INT* n, const MKL_Complex16* t, const MKL_INT* ldt,
              const MKL_Complex16* vl, const MKL_INT* ldvl,
              const MKL_Complex16* vr, const MKL_INT* ldvr, double* s,
              double* sep, const MKL_INT* mm, MKL_INT* m, MKL_Complex16* work,
              const MKL_INT* ldwork, double* rwork, MKL_INT* info );

void ZTRSYL( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* c, const MKL_INT* ldc, double* scale,
             MKL_INT* info );
void ZTRSYL_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* c, const MKL_INT* ldc, double* scale,
              MKL_INT* info );
void ztrsyl( const char* trana, const char* tranb, const MKL_INT* isgn,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
             MKL_Complex16* c, const MKL_INT* ldc, double* scale,
             MKL_INT* info );
void ztrsyl_( const char* trana, const char* tranb, const MKL_INT* isgn,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* b, const MKL_INT* ldb,
              MKL_Complex16* c, const MKL_INT* ldc, double* scale,
              MKL_INT* info );

void ZTRTI2( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ZTRTI2_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ztrti2( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ztrti2_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );

void ZTRTRI( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ZTRTRI_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ztrtri( const char* uplo, const char* diag, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void ztrtri_( const char* uplo, const char* diag, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );

void ZTRTRS( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void ZTRTRS_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );
void ztrtrs( const char* uplo, const char* trans, const char* diag,
             const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
             MKL_INT* info );
void ztrtrs_( const char* uplo, const char* trans, const char* diag,
              const MKL_INT* n, const MKL_INT* nrhs, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );

void ZTRTTF( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* arf,
             MKL_INT* info );
void ZTRTTF_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* arf,
              MKL_INT* info );
void ztrttf( const char* transr, const char* uplo, const MKL_INT* n,
             const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* arf,
             MKL_INT* info );
void ztrttf_( const char* transr, const char* uplo, const MKL_INT* n,
              const MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* arf,
              MKL_INT* info );

void ZTRTTP( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* ap, MKL_INT* info );
void ZTRTTP_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* ap, MKL_INT* info );
void ztrttp( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* ap, MKL_INT* info );
void ztrttp_( const char* uplo, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* ap, MKL_INT* info );

void ZTZRQF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_INT* info );
void ZTZRQF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_INT* info );
void ztzrqf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_INT* info );
void ztzrqf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_INT* info );

void ZTZRZF( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZTZRZF_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ztzrzf( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ztzrzf_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZUNG2L( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void ZUNG2L_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );
void zung2l( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void zung2l_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );

void ZUNG2R( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void ZUNG2R_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );
void zung2r( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void zung2r_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );

void ZUNGBR( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZUNGBR_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zungbr( const char* vect, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zungbr_( const char* vect, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZUNGHR( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNGHR_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunghr( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunghr_( const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNGL2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void ZUNGL2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );
void zungl2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void zungl2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );

void ZUNGLQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNGLQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunglq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunglq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNGQL( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNGQL_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungql( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungql_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNGQR( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNGQR_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungqr( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungqr_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNGR2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void ZUNGR2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );
void zungr2( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, MKL_INT* info );
void zungr2_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, MKL_INT* info );

void ZUNGRQ( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNGRQ_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungrq( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungrq_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              MKL_Complex16* a, const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNGTR( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void ZUNGTR_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zungtr( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* work,
             const MKL_INT* lwork, MKL_INT* info );
void zungtr_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNM2L( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void ZUNM2L_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunm2l( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunm2l_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );

void ZUNM2R( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void ZUNM2R_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunm2r( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunm2r_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );

void ZUNMBR( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNMBR_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunmbr( const char* vect, const char* side, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunmbr_( const char* vect, const char* side, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_INT* k,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNMHR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNMHR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunmhr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunmhr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* ilo, const MKL_INT* ihi,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNML2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void ZUNML2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunml2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunml2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );

void ZUNMLQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZUNMLQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunmlq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zunmlq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZUNMQL( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZUNMQL_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunmql( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zunmql_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZUNMQR( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZUNMQR_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunmqr( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zunmqr_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZUNMR2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void ZUNMR2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunmr2( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );
void zunmr2_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, MKL_INT* info );

void ZUNMR3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, MKL_INT* info );
void ZUNMR3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, MKL_INT* info );
void zunmr3( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, MKL_INT* info );
void zunmr3_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, MKL_INT* info );

void ZUNMRQ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZUNMRQ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunmrq( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zunmrq_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZUNMRZ( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void ZUNMRZ_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunmrz( const char* side, const char* trans, const MKL_INT* m,
             const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
             const MKL_Complex16* a, const MKL_INT* lda,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );
void zunmrz_( const char* side, const char* trans, const MKL_INT* m,
              const MKL_INT* n, const MKL_INT* k, const MKL_INT* l,
              const MKL_Complex16* a, const MKL_INT* lda,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, const MKL_INT* lwork, MKL_INT* info );

void ZUNMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZUNMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zunmtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
             const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zunmtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* tau, MKL_Complex16* c,
              const MKL_INT* ldc, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

void ZUPGTR( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_Complex16* tau, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* work, MKL_INT* info );
void ZUPGTR_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_Complex16* tau, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* work, MKL_INT* info );
void zupgtr( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_Complex16* tau, MKL_Complex16* q, const MKL_INT* ldq,
             MKL_Complex16* work, MKL_INT* info );
void zupgtr_( const char* uplo, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_Complex16* tau, MKL_Complex16* q, const MKL_INT* ldq,
              MKL_Complex16* work, MKL_INT* info );

void ZUPMTR( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, MKL_INT* info );
void ZUPMTR_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, MKL_INT* info );
void zupmtr( const char* side, const char* uplo, const char* trans,
             const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* ap,
             const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* work, MKL_INT* info );
void zupmtr_( const char* side, const char* uplo, const char* trans,
              const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* ap,
              const MKL_Complex16* tau, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* work, MKL_INT* info );


/* C-declaration of following routines is added in Intel(R) MKL 11.2 */

void CGEQRT2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_INT* info );
void CGEQRT2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
               MKL_INT* info );
void cgeqrt2( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
              MKL_INT* info );
void cgeqrt2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, MKL_Complex8* t, const MKL_INT* ldt,
               MKL_INT* info );

void CHESWAPR( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void CHESWAPR_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void cheswapr( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void cheswapr_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );

void CHETRI2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void CHETRI2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );
void chetri2( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
              const MKL_INT* lwork, MKL_INT* info );
void chetri2_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               const MKL_INT* lwork, MKL_INT* info );

void CHETRI2X( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               const MKL_INT* nb, MKL_INT* info );
void CHETRI2X_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                const MKL_INT* nb, MKL_INT* info );
void chetri2x( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
               const MKL_INT* nb, MKL_INT* info );
void chetri2x_( const char* uplo, const MKL_INT* n, MKL_Complex8* a,
                const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex8* work,
                const MKL_INT* nb, MKL_INT* info );

void CLA_GBAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                const MKL_Complex8* ab, const MKL_INT* ldab,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void CLA_GBAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                 const MKL_Complex8* ab, const MKL_INT* ldab,
                 const MKL_Complex8* x, const MKL_INT* incx,
                 const float* beta, float* y, const MKL_INT* incy );
void cla_gbamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                const MKL_Complex8* ab, const MKL_INT* ldab,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void cla_gbamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                 const MKL_Complex8* ab, const MKL_INT* ldab,
                 const MKL_Complex8* x, const MKL_INT* incx,
                 const float* beta, float* y, const MKL_INT* incy );

float CLA_GBRCOND_C( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                     const MKL_INT* ku, const MKL_Complex8* ab,
                     const MKL_INT* ldab, const MKL_Complex8* afb,
                     const MKL_INT* ldafb, const MKL_INT* ipiv,
                     const float* c, const MKL_INT* capply, MKL_INT* info,
                     MKL_Complex8* work, float* rwork );
float CLA_GBRCOND_C_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex8* ab,
                      const MKL_INT* ldab, const MKL_Complex8* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const float* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_gbrcond_c( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                     const MKL_INT* ku, const MKL_Complex8* ab,
                     const MKL_INT* ldab, const MKL_Complex8* afb,
                     const MKL_INT* ldafb, const MKL_INT* ipiv,
                     const float* c, const MKL_INT* capply, MKL_INT* info,
                     MKL_Complex8* work, float* rwork );
float cla_gbrcond_c_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex8* ab,
                      const MKL_INT* ldab, const MKL_Complex8* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const float* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

float CLA_GBRCOND_X( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                     const MKL_INT* ku, const MKL_Complex8* ab,
                     const MKL_INT* ldab, const MKL_Complex8* afb,
                     const MKL_INT* ldafb, const MKL_INT* ipiv,
                     const MKL_Complex8* x, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float CLA_GBRCOND_X_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex8* ab,
                      const MKL_INT* ldab, const MKL_Complex8* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const MKL_Complex8* x, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_gbrcond_x( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                     const MKL_INT* ku, const MKL_Complex8* ab,
                     const MKL_INT* ldab, const MKL_Complex8* afb,
                     const MKL_INT* ldafb, const MKL_INT* ipiv,
                     const MKL_Complex8* x, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float cla_gbrcond_x_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex8* ab,
                      const MKL_INT* ldab, const MKL_Complex8* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const MKL_Complex8* x, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

void CLA_GBRFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const MKL_Complex8* ab,
                          const MKL_INT* ldab, const MKL_Complex8* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const MKL_Complex8* b, const MKL_INT* ldb,
                          MKL_Complex8* y, const MKL_INT* ldy,
                          float* berr_out, const MKL_INT* n_norms,
                          float* err_bnds_norm, float* err_bnds_comp,
                          MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                          MKL_Complex8* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void CLA_GBRFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const MKL_Complex8* ab,
                           const MKL_INT* ldab, const MKL_Complex8* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const MKL_Complex8* b, const MKL_INT* ldb,
                           MKL_Complex8* y, const MKL_INT* ldy,
                           float* berr_out, const MKL_INT* n_norms,
                           float* err_bnds_norm, float* err_bnds_comp,
                           MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                           MKL_Complex8* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void cla_gbrfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const MKL_Complex8* ab,
                          const MKL_INT* ldab, const MKL_Complex8* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const MKL_Complex8* b, const MKL_INT* ldb,
                          MKL_Complex8* y, const MKL_INT* ldy,
                          float* berr_out, const MKL_INT* n_norms,
                          float* err_bnds_norm, float* err_bnds_comp,
                          MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                          MKL_Complex8* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void cla_gbrfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const MKL_Complex8* ab,
                           const MKL_INT* ldab, const MKL_Complex8* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const MKL_Complex8* b, const MKL_INT* ldb,
                           MKL_Complex8* y, const MKL_INT* ldy,
                           float* berr_out, const MKL_INT* n_norms,
                           float* err_bnds_norm, float* err_bnds_comp,
                           MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                           MKL_Complex8* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

float CLA_GBRPVGRW( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                    const MKL_INT* ncols, const MKL_Complex8* ab,
                    const MKL_INT* ldab, const MKL_Complex8* afb,
                    const MKL_INT* ldafb );
float CLA_GBRPVGRW_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const MKL_Complex8* ab,
                     const MKL_INT* ldab, const MKL_Complex8* afb,
                     const MKL_INT* ldafb );
float cla_gbrpvgrw( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                    const MKL_INT* ncols, const MKL_Complex8* ab,
                    const MKL_INT* ldab, const MKL_Complex8* afb,
                    const MKL_INT* ldafb );
float cla_gbrpvgrw_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const MKL_Complex8* ab,
                     const MKL_INT* ldab, const MKL_Complex8* afb,
                     const MKL_INT* ldafb );

void CLA_GEAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const float* alpha, const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void CLA_GEAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const float* alpha, const MKL_Complex8* a,
                 const MKL_INT* lda, const MKL_Complex8* x,
                 const MKL_INT* incx, const float* beta, float* y,
                 const MKL_INT* incy );
void cla_geamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const float* alpha, const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void cla_geamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const float* alpha, const MKL_Complex8* a,
                 const MKL_INT* lda, const MKL_Complex8* x,
                 const MKL_INT* incx, const float* beta, float* y,
                 const MKL_INT* incy );

float CLA_GERCOND_C( const char* trans, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const float* c,
                     const MKL_INT* capply, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float CLA_GERCOND_C_( const char* trans, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const float* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_gercond_c( const char* trans, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const float* c,
                     const MKL_INT* capply, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float cla_gercond_c_( const char* trans, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const float* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

float CLA_GERCOND_X( const char* trans, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const MKL_Complex8* x,
                     MKL_INT* info, MKL_Complex8* work, float* rwork );
float CLA_GERCOND_X_( const char* trans, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex8* x,
                      MKL_INT* info, MKL_Complex8* work, float* rwork );
float cla_gercond_x( const char* trans, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const MKL_Complex8* x,
                     MKL_INT* info, MKL_Complex8* work, float* rwork );
float cla_gercond_x_( const char* trans, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex8* x,
                      MKL_INT* info, MKL_Complex8* work, float* rwork );

void CLA_GERFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const MKL_Complex8* a,
                          const MKL_INT* lda, const MKL_Complex8* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const MKL_Complex8* b, const MKL_INT* ldb,
                          MKL_Complex8* y, const MKL_INT* ldy,
                          float* berr_out, const MKL_INT* n_norms,
                          float* errs_n, float* errs_c, MKL_Complex8* res,
                          float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                          const float* rcond, const MKL_INT* ithresh,
                          const float* rthresh, const float* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void CLA_GERFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const MKL_Complex8* a,
                           const MKL_INT* lda, const MKL_Complex8* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const MKL_Complex8* b, const MKL_INT* ldb,
                           MKL_Complex8* y, const MKL_INT* ldy,
                           float* berr_out, const MKL_INT* n_norms,
                           float* errs_n, float* errs_c, MKL_Complex8* res,
                           float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                           const float* rcond, const MKL_INT* ithresh,
                           const float* rthresh, const float* dz_ub,
                           const MKL_INT* ignore_cwise, MKL_INT* info );
void cla_gerfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const MKL_Complex8* a,
                          const MKL_INT* lda, const MKL_Complex8* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const MKL_Complex8* b, const MKL_INT* ldb,
                          MKL_Complex8* y, const MKL_INT* ldy,
                          float* berr_out, const MKL_INT* n_norms,
                          float* errs_n, float* errs_c, MKL_Complex8* res,
                          float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                          const float* rcond, const MKL_INT* ithresh,
                          const float* rthresh, const float* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void cla_gerfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const MKL_Complex8* a,
                           const MKL_INT* lda, const MKL_Complex8* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const MKL_Complex8* b, const MKL_INT* ldb,
                           MKL_Complex8* y, const MKL_INT* ldy,
                           float* berr_out, const MKL_INT* n_norms,
                           float* errs_n, float* errs_c, MKL_Complex8* res,
                           float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                           const float* rcond, const MKL_INT* ithresh,
                           const float* rthresh, const float* dz_ub,
                           const MKL_INT* ignore_cwise, MKL_INT* info );

float CLA_GERPVGRW( const MKL_INT* n, const MKL_INT* ncols,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf );
float CLA_GERPVGRW_( const MKL_INT* n, const MKL_INT* ncols,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf );
float cla_gerpvgrw( const MKL_INT* n, const MKL_INT* ncols,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf );
float cla_gerpvgrw_( const MKL_INT* n, const MKL_INT* ncols,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf );

void CLA_HEAMV( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void CLA_HEAMV_( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_Complex8* x, const MKL_INT* incx,
                 const float* beta, float* y, const MKL_INT* incy );
void cla_heamv( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void cla_heamv_( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_Complex8* x, const MKL_INT* incx,
                 const float* beta, float* y, const MKL_INT* incy );

float CLA_HERCOND_C( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const float* c,
                     const MKL_INT* capply, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float CLA_HERCOND_C_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const float* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_hercond_c( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const float* c,
                     const MKL_INT* capply, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float cla_hercond_c_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const float* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

float CLA_HERCOND_X( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const MKL_Complex8* x,
                     MKL_INT* info, MKL_Complex8* work, float* rwork );
float CLA_HERCOND_X_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex8* x,
                      MKL_INT* info, MKL_Complex8* work, float* rwork );
float cla_hercond_x( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const MKL_Complex8* x,
                     MKL_INT* info, MKL_Complex8* work, float* rwork );
float cla_hercond_x_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex8* x,
                      MKL_INT* info, MKL_Complex8* work, float* rwork );

void CLA_HERFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex8* a, const MKL_INT* lda,
                          const MKL_Complex8* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const float* c, const MKL_Complex8* b,
                          const MKL_INT* ldb, MKL_Complex8* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, MKL_Complex8* res, float* ayb,
                          MKL_Complex8* dy, MKL_Complex8* y_tail,
                          const float* rcond, const MKL_INT* ithresh,
                          const float* rthresh, const float* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void CLA_HERFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex8* a, const MKL_INT* lda,
                           const MKL_Complex8* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const float* c, const MKL_Complex8* b,
                           const MKL_INT* ldb, MKL_Complex8* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, MKL_Complex8* res,
                           float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                           const float* rcond, const MKL_INT* ithresh,
                           const float* rthresh, const float* dz_ub,
                           const MKL_INT* ignore_cwise, MKL_INT* info );
void cla_herfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex8* a, const MKL_INT* lda,
                          const MKL_Complex8* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const float* c, const MKL_Complex8* b,
                          const MKL_INT* ldb, MKL_Complex8* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, MKL_Complex8* res, float* ayb,
                          MKL_Complex8* dy, MKL_Complex8* y_tail,
                          const float* rcond, const MKL_INT* ithresh,
                          const float* rthresh, const float* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void cla_herfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex8* a, const MKL_INT* lda,
                           const MKL_Complex8* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const float* c, const MKL_Complex8* b,
                           const MKL_INT* ldb, MKL_Complex8* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, MKL_Complex8* res,
                           float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                           const float* rcond, const MKL_INT* ithresh,
                           const float* rthresh, const float* dz_ub,
                           const MKL_INT* ignore_cwise, MKL_INT* info );

float CLA_HERPVGRW( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, float* work );
float CLA_HERPVGRW_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, float* work );
float cla_herpvgrw( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, float* work );
float cla_herpvgrw_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, float* work );

void CLA_LIN_BERR( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const MKL_Complex8* res, const float* ayb, float* berr );
void CLA_LIN_BERR_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const MKL_Complex8* res, const float* ayb, float* berr );
void cla_lin_berr( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const MKL_Complex8* res, const float* ayb, float* berr );
void cla_lin_berr_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const MKL_Complex8* res, const float* ayb, float* berr );

float CLA_PORCOND_C( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const float* c, const MKL_INT* capply, MKL_INT* info,
                     MKL_Complex8* work, float* rwork );
float CLA_PORCOND_C_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const float* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_porcond_c( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const float* c, const MKL_INT* capply, MKL_INT* info,
                     MKL_Complex8* work, float* rwork );
float cla_porcond_c_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const float* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

float CLA_PORCOND_X( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_Complex8* x, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float CLA_PORCOND_X_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_Complex8* x, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_porcond_x( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_Complex8* x, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float cla_porcond_x_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_Complex8* x, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

void CLA_PORFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex8* a, const MKL_INT* lda,
                          const MKL_Complex8* af, const MKL_INT* ldaf,
                          const MKL_INT* colequ, const float* c,
                          const MKL_Complex8* b, const MKL_INT* ldb,
                          MKL_Complex8* y, const MKL_INT* ldy,
                          float* berr_out, const MKL_INT* n_norms,
                          float* err_bnds_norm, float* err_bnds_comp,
                          MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                          MKL_Complex8* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void CLA_PORFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex8* a, const MKL_INT* lda,
                           const MKL_Complex8* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const float* c,
                           const MKL_Complex8* b, const MKL_INT* ldb,
                           MKL_Complex8* y, const MKL_INT* ldy,
                           float* berr_out, const MKL_INT* n_norms,
                           float* err_bnds_norm, float* err_bnds_comp,
                           MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                           MKL_Complex8* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void cla_porfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex8* a, const MKL_INT* lda,
                          const MKL_Complex8* af, const MKL_INT* ldaf,
                          const MKL_INT* colequ, const float* c,
                          const MKL_Complex8* b, const MKL_INT* ldb,
                          MKL_Complex8* y, const MKL_INT* ldy,
                          float* berr_out, const MKL_INT* n_norms,
                          float* err_bnds_norm, float* err_bnds_comp,
                          MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                          MKL_Complex8* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void cla_porfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex8* a, const MKL_INT* lda,
                           const MKL_Complex8* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const float* c,
                           const MKL_Complex8* b, const MKL_INT* ldb,
                           MKL_Complex8* y, const MKL_INT* ldy,
                           float* berr_out, const MKL_INT* n_norms,
                           float* err_bnds_norm, float* err_bnds_comp,
                           MKL_Complex8* res, float* ayb, MKL_Complex8* dy,
                           MKL_Complex8* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

float CLA_PORPVGRW( const char* uplo, const MKL_INT* ncols,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf, float* work );
float CLA_PORPVGRW_( const char* uplo, const MKL_INT* ncols,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf, float* work );
float cla_porpvgrw( const char* uplo, const MKL_INT* ncols,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf, float* work );
float cla_porpvgrw_( const char* uplo, const MKL_INT* ncols,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf, float* work );

void CLA_SYAMV( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void CLA_SYAMV_( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_Complex8* x, const MKL_INT* incx,
                 const float* beta, float* y, const MKL_INT* incy );
void cla_syamv( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                const MKL_Complex8* a, const MKL_INT* lda,
                const MKL_Complex8* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void cla_syamv_( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                 const MKL_Complex8* a, const MKL_INT* lda,
                 const MKL_Complex8* x, const MKL_INT* incx,
                 const float* beta, float* y, const MKL_INT* incy );

float CLA_SYRCOND_C( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const float* c,
                     const MKL_INT* capply, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float CLA_SYRCOND_C_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const float* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );
float cla_syrcond_c( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const float* c,
                     const MKL_INT* capply, MKL_INT* info, MKL_Complex8* work,
                     float* rwork );
float cla_syrcond_c_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const float* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex8* work, float* rwork );

float CLA_SYRCOND_X( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const MKL_Complex8* x,
                     MKL_INT* info, MKL_Complex8* work, float* rwork );
float CLA_SYRCOND_X_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex8* x,
                      MKL_INT* info, MKL_Complex8* work, float* rwork );
float cla_syrcond_x( const char* uplo, const MKL_INT* n,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, const MKL_Complex8* x,
                     MKL_INT* info, MKL_Complex8* work, float* rwork );
float cla_syrcond_x_( const char* uplo, const MKL_INT* n,
                      const MKL_Complex8* a, const MKL_INT* lda,
                      const MKL_Complex8* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex8* x,
                      MKL_INT* info, MKL_Complex8* work, float* rwork );

void CLA_SYRFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex8* a, const MKL_INT* lda,
                          const MKL_Complex8* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const float* c, const MKL_Complex8* b,
                          const MKL_INT* ldb, MKL_Complex8* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, MKL_Complex8* res, float* ayb,
                          MKL_Complex8* dy, MKL_Complex8* y_tail,
                          const float* rcond, const MKL_INT* ithresh,
                          const float* rthresh, const float* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void CLA_SYRFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex8* a, const MKL_INT* lda,
                           const MKL_Complex8* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const float* c, const MKL_Complex8* b,
                           const MKL_INT* ldb, MKL_Complex8* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, MKL_Complex8* res,
                           float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                           const float* rcond, const MKL_INT* ithresh,
                           const float* rthresh, const float* dz_ub,
                           const MKL_INT* ignore_cwise, MKL_INT* info );
void cla_syrfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex8* a, const MKL_INT* lda,
                          const MKL_Complex8* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const float* c, const MKL_Complex8* b,
                          const MKL_INT* ldb, MKL_Complex8* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, MKL_Complex8* res, float* ayb,
                          MKL_Complex8* dy, MKL_Complex8* y_tail,
                          const float* rcond, const MKL_INT* ithresh,
                          const float* rthresh, const float* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void cla_syrfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex8* a, const MKL_INT* lda,
                           const MKL_Complex8* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const float* c, const MKL_Complex8* b,
                           const MKL_INT* ldb, MKL_Complex8* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, MKL_Complex8* res,
                           float* ayb, MKL_Complex8* dy, MKL_Complex8* y_tail,
                           const float* rcond, const MKL_INT* ithresh,
                           const float* rthresh, const float* dz_ub,
                           const MKL_INT* ignore_cwise, MKL_INT* info );

float CLA_SYRPVGRW( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, float* work );
float CLA_SYRPVGRW_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, float* work );
float cla_syrpvgrw( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                    const MKL_Complex8* a, const MKL_INT* lda,
                    const MKL_Complex8* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, float* work );
float cla_syrpvgrw_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex8* a, const MKL_INT* lda,
                     const MKL_Complex8* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, float* work );

void CLA_WWADDW( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
                 const MKL_Complex8* w );
void CLA_WWADDW_( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
                  const MKL_Complex8* w );
void cla_wwaddw( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
                 const MKL_Complex8* w );
void cla_wwaddw_( const MKL_INT* n, MKL_Complex8* x, MKL_Complex8* y,
                  const MKL_Complex8* w );

void CTPRFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* work, const MKL_INT* ldwork );
void CTPRFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* work, const MKL_INT* ldwork );
void ctprfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
             const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* work, const MKL_INT* ldwork );
void ctprfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex8* v,
              const MKL_INT* ldv, const MKL_Complex8* t, const MKL_INT* ldt,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* work, const MKL_INT* ldwork );

void DGEQRT2( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* t, const MKL_INT* ldt, MKL_INT* info );
void DGEQRT2_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* t, const MKL_INT* ldt,
               MKL_INT* info );
void dgeqrt2( const MKL_INT* m, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* t, const MKL_INT* ldt, MKL_INT* info );
void dgeqrt2_( const MKL_INT* m, const MKL_INT* n, double* a,
               const MKL_INT* lda, double* t, const MKL_INT* ldt,
               MKL_INT* info );

void DLA_GBAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                const double* ab, const MKL_INT* ldab, const double* x,
                const MKL_INT* incx, const double* beta, double* y,
                const MKL_INT* incy );
void DLA_GBAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                 const double* ab, const MKL_INT* ldab, const double* x,
                 const MKL_INT* incx, const double* beta, double* y,
                 const MKL_INT* incy );
void dla_gbamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                const double* ab, const MKL_INT* ldab, const double* x,
                const MKL_INT* incx, const double* beta, double* y,
                const MKL_INT* incy );
void dla_gbamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                 const double* ab, const MKL_INT* ldab, const double* x,
                 const MKL_INT* incx, const double* beta, double* y,
                 const MKL_INT* incy );

double DLA_GBRCOND( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                    const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
                    const double* afb, const MKL_INT* ldafb,
                    const MKL_INT* ipiv, const MKL_INT* cmode,
                    const double* c, MKL_INT* info, double* work,
                    MKL_INT* iwork );
double DLA_GBRCOND_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                     const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
                     const double* afb, const MKL_INT* ldafb,
                     const MKL_INT* ipiv, const MKL_INT* cmode,
                     const double* c, MKL_INT* info, double* work,
                     MKL_INT* iwork );
double dla_gbrcond( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                    const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
                    const double* afb, const MKL_INT* ldafb,
                    const MKL_INT* ipiv, const MKL_INT* cmode,
                    const double* c, MKL_INT* info, double* work,
                    MKL_INT* iwork );
double dla_gbrcond_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                     const MKL_INT* ku, const double* ab, const MKL_INT* ldab,
                     const double* afb, const MKL_INT* ldafb,
                     const MKL_INT* ipiv, const MKL_INT* cmode,
                     const double* c, MKL_INT* info, double* work,
                     MKL_INT* iwork );

void DLA_GBRFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const double* ab,
                          const MKL_INT* ldab, const double* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const double* b, const MKL_INT* ldb, double* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, double* res, double* ayb,
                          double* dy, double* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void DLA_GBRFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const double* ab,
                           const MKL_INT* ldab, const double* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const double* b, const MKL_INT* ldb, double* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, double* res, double* ayb,
                           double* dy, double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void dla_gbrfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const double* ab,
                          const MKL_INT* ldab, const double* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const double* b, const MKL_INT* ldb, double* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, double* res, double* ayb,
                          double* dy, double* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void dla_gbrfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const double* ab,
                           const MKL_INT* ldab, const double* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const double* b, const MKL_INT* ldb, double* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, double* res, double* ayb,
                           double* dy, double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double DLA_GBRPVGRW( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const double* ab,
                     const MKL_INT* ldab, const double* afb,
                     const MKL_INT* ldafb );
double DLA_GBRPVGRW_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                      const MKL_INT* ncols, const double* ab,
                      const MKL_INT* ldab, const double* afb,
                      const MKL_INT* ldafb );
double dla_gbrpvgrw( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const double* ab,
                     const MKL_INT* ldab, const double* afb,
                     const MKL_INT* ldafb );
double dla_gbrpvgrw_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                      const MKL_INT* ncols, const double* ab,
                      const MKL_INT* ldab, const double* afb,
                      const MKL_INT* ldafb );

void DLA_GEAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const double* alpha, const double* a, const MKL_INT* lda,
                const double* x, const MKL_INT* incx, const double* beta,
                double* y, const MKL_INT* incy );
void DLA_GEAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const double* alpha, const double* a, const MKL_INT* lda,
                 const double* x, const MKL_INT* incx, const double* beta,
                 double* y, const MKL_INT* incy );
void dla_geamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const double* alpha, const double* a, const MKL_INT* lda,
                const double* x, const MKL_INT* incx, const double* beta,
                double* y, const MKL_INT* incy );
void dla_geamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const double* alpha, const double* a, const MKL_INT* lda,
                 const double* x, const MKL_INT* incx, const double* beta,
                 double* y, const MKL_INT* incy );

double DLA_GERCOND( const char* trans, const MKL_INT* n, const double* a,
                    const MKL_INT* lda, const double* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode,
                    const double* c, MKL_INT* info, double* work,
                    MKL_INT* iwork );
double DLA_GERCOND_( const char* trans, const MKL_INT* n, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv,
                     const MKL_INT* cmode, const double* c, MKL_INT* info,
                     double* work, MKL_INT* iwork );
double dla_gercond( const char* trans, const MKL_INT* n, const double* a,
                    const MKL_INT* lda, const double* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode,
                    const double* c, MKL_INT* info, double* work,
                    MKL_INT* iwork );
double dla_gercond_( const char* trans, const MKL_INT* n, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv,
                     const MKL_INT* cmode, const double* c, MKL_INT* info,
                     double* work, MKL_INT* iwork );

void DLA_GERFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const double* a,
                          const MKL_INT* lda, const double* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const double* b, const MKL_INT* ldb, double* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* errs_n,
                          double* errs_c, double* res, double* ayb, double* dy,
                          double* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void DLA_GERFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const double* a,
                           const MKL_INT* lda, const double* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const double* b, const MKL_INT* ldb, double* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* errs_n,
                           double* errs_c, double* res, double* ayb,
                           double* dy, double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void dla_gerfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const double* a,
                          const MKL_INT* lda, const double* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const double* b, const MKL_INT* ldb, double* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* errs_n,
                          double* errs_c, double* res, double* ayb, double* dy,
                          double* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void dla_gerfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const double* a,
                           const MKL_INT* lda, const double* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const double* b, const MKL_INT* ldb, double* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* errs_n,
                           double* errs_c, double* res, double* ayb,
                           double* dy, double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double DLA_GERPVGRW( const MKL_INT* n, const MKL_INT* ncols, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf );
double DLA_GERPVGRW_( const MKL_INT* n, const MKL_INT* ncols, const double* a,
                      const MKL_INT* lda, const double* af,
                      const MKL_INT* ldaf );
double dla_gerpvgrw( const MKL_INT* n, const MKL_INT* ncols, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf );
double dla_gerpvgrw_( const MKL_INT* n, const MKL_INT* ncols, const double* a,
                      const MKL_INT* lda, const double* af,
                      const MKL_INT* ldaf );

void DLA_LIN_BERR( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const double* res, const double* ayb, double* berr );
void DLA_LIN_BERR_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const double* res, const double* ayb, double* berr );
void dla_lin_berr( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const double* res, const double* ayb, double* berr );
void dla_lin_berr_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const double* res, const double* ayb, double* berr );

double DLA_PORCOND( const char* uplo, const MKL_INT* n, const double* a,
                    const MKL_INT* lda, const double* af, const MKL_INT* ldaf,
                    const MKL_INT* cmode, const double* c, MKL_INT* info,
                    double* work, MKL_INT* iwork );
double DLA_PORCOND_( const char* uplo, const MKL_INT* n, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* cmode,
                     const double* c, MKL_INT* info, double* work,
                     MKL_INT* iwork );
double dla_porcond( const char* uplo, const MKL_INT* n, const double* a,
                    const MKL_INT* lda, const double* af, const MKL_INT* ldaf,
                    const MKL_INT* cmode, const double* c, MKL_INT* info,
                    double* work, MKL_INT* iwork );
double dla_porcond_( const char* uplo, const MKL_INT* n, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* cmode,
                     const double* c, MKL_INT* info, double* work,
                     MKL_INT* iwork );

void DLA_PORFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const double* a, const MKL_INT* lda,
                          const double* af, const MKL_INT* ldaf,
                          const MKL_INT* colequ, const double* c,
                          const double* b, const MKL_INT* ldb, double* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, double* res, double* ayb,
                          double* dy, double* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void DLA_PORFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const double* a, const MKL_INT* lda,
                           const double* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const double* c,
                           const double* b, const MKL_INT* ldb, double* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, double* res, double* ayb,
                           double* dy, double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void dla_porfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const double* a, const MKL_INT* lda,
                          const double* af, const MKL_INT* ldaf,
                          const MKL_INT* colequ, const double* c,
                          const double* b, const MKL_INT* ldb, double* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, double* res, double* ayb,
                          double* dy, double* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void dla_porfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const double* a, const MKL_INT* lda,
                           const double* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const double* c,
                           const double* b, const MKL_INT* ldb, double* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, double* res, double* ayb,
                           double* dy, double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double DLA_PORPVGRW( const char* uplo, const MKL_INT* ncols, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, double* work );
double DLA_PORPVGRW_( const char* uplo, const MKL_INT* ncols, const double* a,
                      const MKL_INT* lda, const double* af,
                      const MKL_INT* ldaf, double* work );
double dla_porpvgrw( const char* uplo, const MKL_INT* ncols, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, double* work );
double dla_porpvgrw_( const char* uplo, const MKL_INT* ncols, const double* a,
                      const MKL_INT* lda, const double* af,
                      const MKL_INT* ldaf, double* work );

void DLA_SYAMV( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                const double* a, const MKL_INT* lda, const double* x,
                const MKL_INT* incx, const double* beta, double* y,
                const MKL_INT* incy );
void DLA_SYAMV_( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                 const double* a, const MKL_INT* lda, const double* x,
                 const MKL_INT* incx, const double* beta, double* y,
                 const MKL_INT* incy );
void dla_syamv( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                const double* a, const MKL_INT* lda, const double* x,
                const MKL_INT* incx, const double* beta, double* y,
                const MKL_INT* incy );
void dla_syamv_( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                 const double* a, const MKL_INT* lda, const double* x,
                 const MKL_INT* incx, const double* beta, double* y,
                 const MKL_INT* incy );

double DLA_SYRCOND( const char* uplo, const MKL_INT* n, const double* a,
                    const MKL_INT* lda, const double* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode,
                    const double* c, MKL_INT* info, double* work,
                    MKL_INT* iwork );
double DLA_SYRCOND_( const char* uplo, const MKL_INT* n, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv,
                     const MKL_INT* cmode, const double* c, MKL_INT* info,
                     double* work, MKL_INT* iwork );
double dla_syrcond( const char* uplo, const MKL_INT* n, const double* a,
                    const MKL_INT* lda, const double* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode,
                    const double* c, MKL_INT* info, double* work,
                    MKL_INT* iwork );
double dla_syrcond_( const char* uplo, const MKL_INT* n, const double* a,
                     const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv,
                     const MKL_INT* cmode, const double* c, MKL_INT* info,
                     double* work, MKL_INT* iwork );

void DLA_SYRFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const double* a, const MKL_INT* lda,
                          const double* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const double* c, const double* b,
                          const MKL_INT* ldb, double* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* err_bnds_norm, double* err_bnds_comp,
                          double* res, double* ayb, double* dy, double* y_tail,
                          const double* rcond, const MKL_INT* ithresh,
                          const double* rthresh, const double* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void DLA_SYRFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const double* a, const MKL_INT* lda,
                           const double* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const double* c, const double* b,
                           const MKL_INT* ldb, double* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* err_bnds_norm, double* err_bnds_comp,
                           double* res, double* ayb, double* dy,
                           double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void dla_syrfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const double* a, const MKL_INT* lda,
                          const double* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const double* c, const double* b,
                          const MKL_INT* ldb, double* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* err_bnds_norm, double* err_bnds_comp,
                          double* res, double* ayb, double* dy, double* y_tail,
                          const double* rcond, const MKL_INT* ithresh,
                          const double* rthresh, const double* dz_ub,
                          const MKL_INT* ignore_cwise, MKL_INT* info );
void dla_syrfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const double* a, const MKL_INT* lda,
                           const double* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const double* c, const double* b,
                           const MKL_INT* ldb, double* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* err_bnds_norm, double* err_bnds_comp,
                           double* res, double* ayb, double* dy,
                           double* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double DLA_SYRPVGRW( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const double* a, const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv, double* work );
double DLA_SYRPVGRW_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                      const double* a, const MKL_INT* lda, const double* af,
                      const MKL_INT* ldaf, const MKL_INT* ipiv, double* work );
double dla_syrpvgrw( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const double* a, const MKL_INT* lda, const double* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv, double* work );
double dla_syrpvgrw_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                      const double* a, const MKL_INT* lda, const double* af,
                      const MKL_INT* ldaf, const MKL_INT* ipiv, double* work );

void DLA_WWADDW( const MKL_INT* n, double* x, double* y, const double* w );
void DLA_WWADDW_( const MKL_INT* n, double* x, double* y, const double* w );
void dla_wwaddw( const MKL_INT* n, double* x, double* y, const double* w );
void dla_wwaddw_( const MKL_INT* n, double* x, double* y, const double* w );

void DTPRFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const double* v,
             const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* work, const MKL_INT* ldwork );
void DTPRFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const double* v,
              const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* work, const MKL_INT* ldwork );
void dtprfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const double* v,
             const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* work, const MKL_INT* ldwork );
void dtprfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const double* v,
              const MKL_INT* ldv, const double* t, const MKL_INT* ldt,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* work, const MKL_INT* ldwork );

void SGEQRT2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt, MKL_INT* info );
void SGEQRT2_( const MKL_INT* m, const MKL_INT* n, float* a,
               const MKL_INT* lda, float* t, const MKL_INT* ldt, MKL_INT* info );
void sgeqrt2( const MKL_INT* m, const MKL_INT* n, float* a, const MKL_INT* lda,
              float* t, const MKL_INT* ldt, MKL_INT* info );
void sgeqrt2_( const MKL_INT* m, const MKL_INT* n, float* a,
               const MKL_INT* lda, float* t, const MKL_INT* ldt, MKL_INT* info );

void SLA_GBAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                const float* ab, const MKL_INT* ldab, const float* x,
                const MKL_INT* incx, const float* beta, float* y,
                const MKL_INT* incy );
void SLA_GBAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                 const float* ab, const MKL_INT* ldab, const float* x,
                 const MKL_INT* incx, const float* beta, float* y,
                 const MKL_INT* incy );
void sla_gbamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                const float* ab, const MKL_INT* ldab, const float* x,
                const MKL_INT* incx, const float* beta, float* y,
                const MKL_INT* incy );
void sla_gbamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const float* alpha,
                 const float* ab, const MKL_INT* ldab, const float* x,
                 const MKL_INT* incx, const float* beta, float* y,
                 const MKL_INT* incy );

float SLA_GBRCOND( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                   const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
                   const float* afb, const MKL_INT* ldafb,
                   const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                   MKL_INT* info, float* work, MKL_INT* iwork );
float SLA_GBRCOND_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                    const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
                    const float* afb, const MKL_INT* ldafb,
                    const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                    MKL_INT* info, float* work, MKL_INT* iwork );
float sla_gbrcond( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                   const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
                   const float* afb, const MKL_INT* ldafb,
                   const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                   MKL_INT* info, float* work, MKL_INT* iwork );
float sla_gbrcond_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                    const MKL_INT* ku, const float* ab, const MKL_INT* ldab,
                    const float* afb, const MKL_INT* ldafb,
                    const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                    MKL_INT* info, float* work, MKL_INT* iwork );

void SLA_GBRFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const float* ab,
                          const MKL_INT* ldab, const float* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const float* b, const MKL_INT* ldb, float* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, float* res, float* ayb,
                          float* dy, float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void SLA_GBRFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const float* ab,
                           const MKL_INT* ldab, const float* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const float* b, const MKL_INT* ldb, float* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, float* res, float* ayb,
                           float* dy, float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void sla_gbrfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const float* ab,
                          const MKL_INT* ldab, const float* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const float* b, const MKL_INT* ldb, float* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, float* res, float* ayb,
                          float* dy, float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void sla_gbrfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const float* ab,
                           const MKL_INT* ldab, const float* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const float* b, const MKL_INT* ldb, float* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, float* res, float* ayb,
                           float* dy, float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

float SLA_GBRPVGRW( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                    const MKL_INT* ncols, const float* ab,
                    const MKL_INT* ldab, const float* afb,
                    const MKL_INT* ldafb );
float SLA_GBRPVGRW_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const float* ab,
                     const MKL_INT* ldab, const float* afb,
                     const MKL_INT* ldafb );
float sla_gbrpvgrw( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                    const MKL_INT* ncols, const float* ab,
                    const MKL_INT* ldab, const float* afb,
                    const MKL_INT* ldafb );
float sla_gbrpvgrw_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const float* ab,
                     const MKL_INT* ldab, const float* afb,
                     const MKL_INT* ldafb );

void SLA_GEAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const float* alpha, const float* a, const MKL_INT* lda,
                const float* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void SLA_GEAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const float* alpha, const float* a, const MKL_INT* lda,
                 const float* x, const MKL_INT* incx, const float* beta,
                 float* y, const MKL_INT* incy );
void sla_geamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const float* alpha, const float* a, const MKL_INT* lda,
                const float* x, const MKL_INT* incx, const float* beta,
                float* y, const MKL_INT* incy );
void sla_geamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const float* alpha, const float* a, const MKL_INT* lda,
                 const float* x, const MKL_INT* incx, const float* beta,
                 float* y, const MKL_INT* incy );

float SLA_GERCOND( const char* trans, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                   const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                   MKL_INT* info, float* work, MKL_INT* iwork );
float SLA_GERCOND_( const char* trans, const MKL_INT* n, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                    MKL_INT* info, float* work, MKL_INT* iwork );
float sla_gercond( const char* trans, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                   const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                   MKL_INT* info, float* work, MKL_INT* iwork );
float sla_gercond_( const char* trans, const MKL_INT* n, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                    MKL_INT* info, float* work, MKL_INT* iwork );

void SLA_GERFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const float* a,
                          const MKL_INT* lda, const float* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const float* b, const MKL_INT* ldb, float* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* errs_n,
                          float* errs_c, float* res, float* ayb, float* dy,
                          float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void SLA_GERFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const float* a,
                           const MKL_INT* lda, const float* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const float* b, const MKL_INT* ldb, float* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* errs_n,
                           float* errs_c, float* res, float* ayb, float* dy,
                           float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void sla_gerfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const float* a,
                          const MKL_INT* lda, const float* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const float* b, const MKL_INT* ldb, float* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* errs_n,
                          float* errs_c, float* res, float* ayb, float* dy,
                          float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void sla_gerfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const float* a,
                           const MKL_INT* lda, const float* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const float* c,
                           const float* b, const MKL_INT* ldb, float* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* errs_n,
                           float* errs_c, float* res, float* ayb, float* dy,
                           float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

float SLA_GERPVGRW( const MKL_INT* n, const MKL_INT* ncols, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf );
float SLA_GERPVGRW_( const MKL_INT* n, const MKL_INT* ncols, const float* a,
                     const MKL_INT* lda, const float* af, const MKL_INT* ldaf );
float sla_gerpvgrw( const MKL_INT* n, const MKL_INT* ncols, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf );
float sla_gerpvgrw_( const MKL_INT* n, const MKL_INT* ncols, const float* a,
                     const MKL_INT* lda, const float* af, const MKL_INT* ldaf );

void SLA_LIN_BERR( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const float* res, const float* ayb, float* berr );
void SLA_LIN_BERR_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const float* res, const float* ayb, float* berr );
void sla_lin_berr( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const float* res, const float* ayb, float* berr );
void sla_lin_berr_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const float* res, const float* ayb, float* berr );

float SLA_PORCOND( const char* uplo, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                   const MKL_INT* cmode, const float* c, MKL_INT* info,
                   float* work, MKL_INT* iwork );
float SLA_PORCOND_( const char* uplo, const MKL_INT* n, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    const MKL_INT* cmode, const float* c, MKL_INT* info,
                    float* work, MKL_INT* iwork );
float sla_porcond( const char* uplo, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                   const MKL_INT* cmode, const float* c, MKL_INT* info,
                   float* work, MKL_INT* iwork );
float sla_porcond_( const char* uplo, const MKL_INT* n, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    const MKL_INT* cmode, const float* c, MKL_INT* info,
                    float* work, MKL_INT* iwork );

void SLA_PORFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const float* a, const MKL_INT* lda, const float* af,
                          const MKL_INT* ldaf, const MKL_INT* colequ,
                          const float* c, const float* b, const MKL_INT* ldb,
                          float* y, const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, float* res, float* ayb,
                          float* dy, float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void SLA_PORFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const float* a, const MKL_INT* lda,
                           const float* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const float* c,
                           const float* b, const MKL_INT* ldb, float* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, float* res, float* ayb,
                           float* dy, float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void sla_porfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const float* a, const MKL_INT* lda, const float* af,
                          const MKL_INT* ldaf, const MKL_INT* colequ,
                          const float* c, const float* b, const MKL_INT* ldb,
                          float* y, const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, float* res, float* ayb,
                          float* dy, float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void sla_porfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const float* a, const MKL_INT* lda,
                           const float* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const float* c,
                           const float* b, const MKL_INT* ldb, float* y,
                           const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, float* res, float* ayb,
                           float* dy, float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

float SLA_PORPVGRW( const char* uplo, const MKL_INT* ncols, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    float* work );
float SLA_PORPVGRW_( const char* uplo, const MKL_INT* ncols, const float* a,
                     const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                     float* work );
float sla_porpvgrw( const char* uplo, const MKL_INT* ncols, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    float* work );
float sla_porpvgrw_( const char* uplo, const MKL_INT* ncols, const float* a,
                     const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                     float* work );

void SLA_SYAMV( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                const float* a, const MKL_INT* lda, const float* x,
                const MKL_INT* incx, const float* beta, float* y,
                const MKL_INT* incy );
void SLA_SYAMV_( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                 const float* a, const MKL_INT* lda, const float* x,
                 const MKL_INT* incx, const float* beta, float* y,
                 const MKL_INT* incy );
void sla_syamv( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                const float* a, const MKL_INT* lda, const float* x,
                const MKL_INT* incx, const float* beta, float* y,
                const MKL_INT* incy );
void sla_syamv_( const MKL_INT* uplo, const MKL_INT* n, const float* alpha,
                 const float* a, const MKL_INT* lda, const float* x,
                 const MKL_INT* incx, const float* beta, float* y,
                 const MKL_INT* incy );

float SLA_SYRCOND( const char* uplo, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                   const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                   MKL_INT* info, float* work, MKL_INT* iwork );
float SLA_SYRCOND_( const char* uplo, const MKL_INT* n, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                    MKL_INT* info, float* work, MKL_INT* iwork );
float sla_syrcond( const char* uplo, const MKL_INT* n, const float* a,
                   const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                   const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                   MKL_INT* info, float* work, MKL_INT* iwork );
float sla_syrcond_( const char* uplo, const MKL_INT* n, const float* a,
                    const MKL_INT* lda, const float* af, const MKL_INT* ldaf,
                    const MKL_INT* ipiv, const MKL_INT* cmode, const float* c,
                    MKL_INT* info, float* work, MKL_INT* iwork );

void SLA_SYRFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const float* a, const MKL_INT* lda, const float* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const float* b, const MKL_INT* ldb, float* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, float* res, float* ayb,
                          float* dy, float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void SLA_SYRFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const float* a, const MKL_INT* lda,
                           const float* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const float* c, const float* b, const MKL_INT* ldb,
                           float* y, const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, float* res, float* ayb,
                           float* dy, float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void sla_syrfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const float* a, const MKL_INT* lda, const float* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const float* c,
                          const float* b, const MKL_INT* ldb, float* y,
                          const MKL_INT* ldy, float* berr_out,
                          const MKL_INT* n_norms, float* err_bnds_norm,
                          float* err_bnds_comp, float* res, float* ayb,
                          float* dy, float* y_tail, const float* rcond,
                          const MKL_INT* ithresh, const float* rthresh,
                          const float* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void sla_syrfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const float* a, const MKL_INT* lda,
                           const float* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const float* c, const float* b, const MKL_INT* ldb,
                           float* y, const MKL_INT* ldy, float* berr_out,
                           const MKL_INT* n_norms, float* err_bnds_norm,
                           float* err_bnds_comp, float* res, float* ayb,
                           float* dy, float* y_tail, const float* rcond,
                           const MKL_INT* ithresh, const float* rthresh,
                           const float* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

float SLA_SYRPVGRW( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                    const float* a, const MKL_INT* lda, const float* af,
                    const MKL_INT* ldaf, const MKL_INT* ipiv, float* work );
float SLA_SYRPVGRW_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const float* a, const MKL_INT* lda, const float* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv, float* work );
float sla_syrpvgrw( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                    const float* a, const MKL_INT* lda, const float* af,
                    const MKL_INT* ldaf, const MKL_INT* ipiv, float* work );
float sla_syrpvgrw_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const float* a, const MKL_INT* lda, const float* af,
                     const MKL_INT* ldaf, const MKL_INT* ipiv, float* work );

void SLA_WWADDW( const MKL_INT* n, float* x, float* y, const float* w );
void SLA_WWADDW_( const MKL_INT* n, float* x, float* y, const float* w );
void sla_wwaddw( const MKL_INT* n, float* x, float* y, const float* w );
void sla_wwaddw_( const MKL_INT* n, float* x, float* y, const float* w );

void STPRFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const float* v,
             const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* work,
             const MKL_INT* ldwork );
void STPRFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const float* v,
              const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* work,
              const MKL_INT* ldwork );
void stprfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const float* v,
             const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* a,
             const MKL_INT* lda, float* b, const MKL_INT* ldb, float* work,
             const MKL_INT* ldwork );
void stprfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const float* v,
              const MKL_INT* ldv, const float* t, const MKL_INT* ldt, float* a,
              const MKL_INT* lda, float* b, const MKL_INT* ldb, float* work,
              const MKL_INT* ldwork );

void ZGEQRT2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_INT* info );
void ZGEQRT2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
               MKL_INT* info );
void zgeqrt2( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
              MKL_INT* info );
void zgeqrt2_( const MKL_INT* m, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, MKL_Complex16* t, const MKL_INT* ldt,
               MKL_INT* info );

void ZHESWAPR( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void ZHESWAPR_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void zheswapr( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );
void zheswapr_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_INT* i1, const MKL_INT* i2 );

void ZHETRI2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void ZHETRI2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );
void zhetri2( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
              const MKL_INT* lwork, MKL_INT* info );
void zhetri2_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               const MKL_INT* lwork, MKL_INT* info );

void ZHETRI2X( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               const MKL_INT* nb, MKL_INT* info );
void ZHETRI2X_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                const MKL_INT* nb, MKL_INT* info );
void zhetri2x( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
               const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
               const MKL_INT* nb, MKL_INT* info );
void zhetri2x_( const char* uplo, const MKL_INT* n, MKL_Complex16* a,
                const MKL_INT* lda, const MKL_INT* ipiv, MKL_Complex16* work,
                const MKL_INT* nb, MKL_INT* info );

void ZLA_GBAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                const MKL_Complex16* ab, const MKL_INT* ldab,
                const MKL_Complex16* x, const MKL_INT* incx,
                const double* beta, double* y, const MKL_INT* incy );
void ZLA_GBAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                 const MKL_Complex16* ab, const MKL_INT* ldab,
                 const MKL_Complex16* x, const MKL_INT* incx,
                 const double* beta, double* y, const MKL_INT* incy );
void zla_gbamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                const MKL_Complex16* ab, const MKL_INT* ldab,
                const MKL_Complex16* x, const MKL_INT* incx,
                const double* beta, double* y, const MKL_INT* incy );
void zla_gbamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const MKL_INT* kl, const MKL_INT* ku, const double* alpha,
                 const MKL_Complex16* ab, const MKL_INT* ldab,
                 const MKL_Complex16* x, const MKL_INT* incx,
                 const double* beta, double* y, const MKL_INT* incy );

double ZLA_GBRCOND_C( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex16* ab,
                      const MKL_INT* ldab, const MKL_Complex16* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const double* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_GBRCOND_C_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                       const MKL_INT* ku, const MKL_Complex16* ab,
                       const MKL_INT* ldab, const MKL_Complex16* afb,
                       const MKL_INT* ldafb, const MKL_INT* ipiv,
                       const double* c, const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_gbrcond_c( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex16* ab,
                      const MKL_INT* ldab, const MKL_Complex16* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const double* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_gbrcond_c_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                       const MKL_INT* ku, const MKL_Complex16* ab,
                       const MKL_INT* ldab, const MKL_Complex16* afb,
                       const MKL_INT* ldafb, const MKL_INT* ipiv,
                       const double* c, const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

double ZLA_GBRCOND_X( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex16* ab,
                      const MKL_INT* ldab, const MKL_Complex16* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const MKL_Complex16* x, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_GBRCOND_X_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                       const MKL_INT* ku, const MKL_Complex16* ab,
                       const MKL_INT* ldab, const MKL_Complex16* afb,
                       const MKL_INT* ldafb, const MKL_INT* ipiv,
                       const MKL_Complex16* x, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_gbrcond_x( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                      const MKL_INT* ku, const MKL_Complex16* ab,
                      const MKL_INT* ldab, const MKL_Complex16* afb,
                      const MKL_INT* ldafb, const MKL_INT* ipiv,
                      const MKL_Complex16* x, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_gbrcond_x_( const char* trans, const MKL_INT* n, const MKL_INT* kl,
                       const MKL_INT* ku, const MKL_Complex16* ab,
                       const MKL_INT* ldab, const MKL_Complex16* afb,
                       const MKL_INT* ldafb, const MKL_INT* ipiv,
                       const MKL_Complex16* x, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

void ZLA_GBRFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const MKL_Complex16* ab,
                          const MKL_INT* ldab, const MKL_Complex16* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const MKL_Complex16* b, const MKL_INT* ldb,
                          MKL_Complex16* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* err_bnds_norm, double* err_bnds_comp,
                          MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void ZLA_GBRFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const MKL_Complex16* ab,
                           const MKL_INT* ldab, const MKL_Complex16* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const MKL_Complex16* b, const MKL_INT* ldb,
                           MKL_Complex16* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* err_bnds_norm, double* err_bnds_comp,
                           MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void zla_gbrfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* kl, const MKL_INT* ku,
                          const MKL_INT* nrhs, const MKL_Complex16* ab,
                          const MKL_INT* ldab, const MKL_Complex16* afb,
                          const MKL_INT* ldafb, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const MKL_Complex16* b, const MKL_INT* ldb,
                          MKL_Complex16* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* err_bnds_norm, double* err_bnds_comp,
                          MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void zla_gbrfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* kl, const MKL_INT* ku,
                           const MKL_INT* nrhs, const MKL_Complex16* ab,
                           const MKL_INT* ldab, const MKL_Complex16* afb,
                           const MKL_INT* ldafb, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const MKL_Complex16* b, const MKL_INT* ldb,
                           MKL_Complex16* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* err_bnds_norm, double* err_bnds_comp,
                           MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double ZLA_GBRPVGRW( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const MKL_Complex16* ab,
                     const MKL_INT* ldab, const MKL_Complex16* afb,
                     const MKL_INT* ldafb );
double ZLA_GBRPVGRW_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                      const MKL_INT* ncols, const MKL_Complex16* ab,
                      const MKL_INT* ldab, const MKL_Complex16* afb,
                      const MKL_INT* ldafb );
double zla_gbrpvgrw( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                     const MKL_INT* ncols, const MKL_Complex16* ab,
                     const MKL_INT* ldab, const MKL_Complex16* afb,
                     const MKL_INT* ldafb );
double zla_gbrpvgrw_( const MKL_INT* n, const MKL_INT* kl, const MKL_INT* ku,
                      const MKL_INT* ncols, const MKL_Complex16* ab,
                      const MKL_INT* ldab, const MKL_Complex16* afb,
                      const MKL_INT* ldafb );

void ZLA_GEAMV( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const double* alpha, const MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* x,
                const MKL_INT* incx, const double* beta, double* y,
                const MKL_INT* incy );
void ZLA_GEAMV_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const double* alpha, const MKL_Complex16* a,
                 const MKL_INT* lda, const MKL_Complex16* x,
                 const MKL_INT* incx, const double* beta, double* y,
                 const MKL_INT* incy );
void zla_geamv( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                const double* alpha, const MKL_Complex16* a,
                const MKL_INT* lda, const MKL_Complex16* x,
                const MKL_INT* incx, const double* beta, double* y,
                const MKL_INT* incy );
void zla_geamv_( const MKL_INT* trans, const MKL_INT* m, const MKL_INT* n,
                 const double* alpha, const MKL_Complex16* a,
                 const MKL_INT* lda, const MKL_Complex16* x,
                 const MKL_INT* incx, const double* beta, double* y,
                 const MKL_INT* incy );

double ZLA_GERCOND_C( const char* trans, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const double* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_GERCOND_C_( const char* trans, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const double* c,
                       const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_gercond_c( const char* trans, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const double* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_gercond_c_( const char* trans, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const double* c,
                       const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

double ZLA_GERCOND_X( const char* trans, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex16* x,
                      MKL_INT* info, MKL_Complex16* work, double* rwork );
double ZLA_GERCOND_X_( const char* trans, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const MKL_Complex16* x,
                       MKL_INT* info, MKL_Complex16* work, double* rwork );
double zla_gercond_x( const char* trans, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex16* x,
                      MKL_INT* info, MKL_Complex16* work, double* rwork );
double zla_gercond_x_( const char* trans, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const MKL_Complex16* x,
                       MKL_INT* info, MKL_Complex16* work, double* rwork );

void ZLA_GERFSX_EXTENDED( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const MKL_Complex16* a,
                          const MKL_INT* lda, const MKL_Complex16* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const MKL_Complex16* b, const MKL_INT* ldb,
                          MKL_Complex16* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* errs_n, double* errs_c, MKL_Complex16* res,
                          double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void ZLA_GERFSX_EXTENDED_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const MKL_Complex16* a,
                           const MKL_INT* lda, const MKL_Complex16* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const MKL_Complex16* b, const MKL_INT* ldb,
                           MKL_Complex16* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* errs_n, double* errs_c, MKL_Complex16* res,
                           double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void zla_gerfsx_extended( const MKL_INT* prec_type,
                          const MKL_INT* trans_type, const MKL_INT* n,
                          const MKL_INT* nrhs, const MKL_Complex16* a,
                          const MKL_INT* lda, const MKL_Complex16* af,
                          const MKL_INT* ldaf, const MKL_INT* ipiv,
                          const MKL_INT* colequ, const double* c,
                          const MKL_Complex16* b, const MKL_INT* ldb,
                          MKL_Complex16* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* errs_n, double* errs_c, MKL_Complex16* res,
                          double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void zla_gerfsx_extended_( const MKL_INT* prec_type,
                           const MKL_INT* trans_type, const MKL_INT* n,
                           const MKL_INT* nrhs, const MKL_Complex16* a,
                           const MKL_INT* lda, const MKL_Complex16* af,
                           const MKL_INT* ldaf, const MKL_INT* ipiv,
                           const MKL_INT* colequ, const double* c,
                           const MKL_Complex16* b, const MKL_INT* ldb,
                           MKL_Complex16* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* errs_n, double* errs_c, MKL_Complex16* res,
                           double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double ZLA_GERPVGRW( const MKL_INT* n, const MKL_INT* ncols,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf );
double ZLA_GERPVGRW_( const MKL_INT* n, const MKL_INT* ncols,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf );
double zla_gerpvgrw( const MKL_INT* n, const MKL_INT* ncols,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf );
double zla_gerpvgrw_( const MKL_INT* n, const MKL_INT* ncols,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf );

void ZLA_HEAMV( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* x, const MKL_INT* incx,
                const double* beta, double* y, const MKL_INT* incy );
void ZLA_HEAMV_( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_Complex16* x, const MKL_INT* incx,
                 const double* beta, double* y, const MKL_INT* incy );
void zla_heamv( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* x, const MKL_INT* incx,
                const double* beta, double* y, const MKL_INT* incy );
void zla_heamv_( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_Complex16* x, const MKL_INT* incx,
                 const double* beta, double* y, const MKL_INT* incy );

double ZLA_HERCOND_C( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const double* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_HERCOND_C_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const double* c,
                       const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_hercond_c( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const double* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_hercond_c_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const double* c,
                       const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

double ZLA_HERCOND_X( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex16* x,
                      MKL_INT* info, MKL_Complex16* work, double* rwork );
double ZLA_HERCOND_X_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const MKL_Complex16* x,
                       MKL_INT* info, MKL_Complex16* work, double* rwork );
double zla_hercond_x( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex16* x,
                      MKL_INT* info, MKL_Complex16* work, double* rwork );
double zla_hercond_x_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const MKL_Complex16* x,
                       MKL_INT* info, MKL_Complex16* work, double* rwork );

void ZLA_HERFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex16* a, const MKL_INT* lda,
                          const MKL_Complex16* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const double* c, const MKL_Complex16* b,
                          const MKL_INT* ldb, MKL_Complex16* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, MKL_Complex16* res,
                          double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void ZLA_HERFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex16* a, const MKL_INT* lda,
                           const MKL_Complex16* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const double* c, const MKL_Complex16* b,
                           const MKL_INT* ldb, MKL_Complex16* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, MKL_Complex16* res,
                           double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void zla_herfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex16* a, const MKL_INT* lda,
                          const MKL_Complex16* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const double* c, const MKL_Complex16* b,
                          const MKL_INT* ldb, MKL_Complex16* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, MKL_Complex16* res,
                          double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void zla_herfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex16* a, const MKL_INT* lda,
                           const MKL_Complex16* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const double* c, const MKL_Complex16* b,
                           const MKL_INT* ldb, MKL_Complex16* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, MKL_Complex16* res,
                           double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double ZLA_HERPVGRW( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, double* work );
double ZLA_HERPVGRW_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, double* work );
double zla_herpvgrw( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, double* work );
double zla_herpvgrw_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, double* work );

void ZLA_LIN_BERR( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const MKL_Complex16* res, const double* ayb, double* berr );
void ZLA_LIN_BERR_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const MKL_Complex16* res, const double* ayb, double* berr );
void zla_lin_berr( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                   const MKL_Complex16* res, const double* ayb, double* berr );
void zla_lin_berr_( const MKL_INT* n, const MKL_INT* nz, const MKL_INT* nrhs,
                    const MKL_Complex16* res, const double* ayb, double* berr );

double ZLA_PORCOND_C( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const double* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_PORCOND_C_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const double* c, const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_porcond_c( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const double* c, const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_porcond_c_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const double* c, const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

double ZLA_PORCOND_X( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_Complex16* x, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_PORCOND_X_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_Complex16* x, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_porcond_x( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_Complex16* x, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_porcond_x_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_Complex16* x, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

void ZLA_PORFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex16* a, const MKL_INT* lda,
                          const MKL_Complex16* af, const MKL_INT* ldaf,
                          const MKL_INT* colequ, const double* c,
                          const MKL_Complex16* b, const MKL_INT* ldb,
                          MKL_Complex16* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* err_bnds_norm, double* err_bnds_comp,
                          MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void ZLA_PORFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex16* a, const MKL_INT* lda,
                           const MKL_Complex16* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const double* c,
                           const MKL_Complex16* b, const MKL_INT* ldb,
                           MKL_Complex16* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* err_bnds_norm, double* err_bnds_comp,
                           MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void zla_porfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex16* a, const MKL_INT* lda,
                          const MKL_Complex16* af, const MKL_INT* ldaf,
                          const MKL_INT* colequ, const double* c,
                          const MKL_Complex16* b, const MKL_INT* ldb,
                          MKL_Complex16* y, const MKL_INT* ldy,
                          double* berr_out, const MKL_INT* n_norms,
                          double* err_bnds_norm, double* err_bnds_comp,
                          MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void zla_porfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex16* a, const MKL_INT* lda,
                           const MKL_Complex16* af, const MKL_INT* ldaf,
                           const MKL_INT* colequ, const double* c,
                           const MKL_Complex16* b, const MKL_INT* ldb,
                           MKL_Complex16* y, const MKL_INT* ldy,
                           double* berr_out, const MKL_INT* n_norms,
                           double* err_bnds_norm, double* err_bnds_comp,
                           MKL_Complex16* res, double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double ZLA_PORPVGRW( const char* uplo, const MKL_INT* ncols,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf,
                     double* work );
double ZLA_PORPVGRW_( const char* uplo, const MKL_INT* ncols,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      double* work );
double zla_porpvgrw( const char* uplo, const MKL_INT* ncols,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf,
                     double* work );
double zla_porpvgrw_( const char* uplo, const MKL_INT* ncols,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      double* work );

void ZLA_SYAMV( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* x, const MKL_INT* incx,
                const double* beta, double* y, const MKL_INT* incy );
void ZLA_SYAMV_( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_Complex16* x, const MKL_INT* incx,
                 const double* beta, double* y, const MKL_INT* incy );
void zla_syamv( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                const MKL_Complex16* a, const MKL_INT* lda,
                const MKL_Complex16* x, const MKL_INT* incx,
                const double* beta, double* y, const MKL_INT* incy );
void zla_syamv_( const MKL_INT* uplo, const MKL_INT* n, const double* alpha,
                 const MKL_Complex16* a, const MKL_INT* lda,
                 const MKL_Complex16* x, const MKL_INT* incx,
                 const double* beta, double* y, const MKL_INT* incy );

double ZLA_SYRCOND_C( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const double* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double ZLA_SYRCOND_C_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const double* c,
                       const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );
double zla_syrcond_c( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const double* c,
                      const MKL_INT* capply, MKL_INT* info,
                      MKL_Complex16* work, double* rwork );
double zla_syrcond_c_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const double* c,
                       const MKL_INT* capply, MKL_INT* info,
                       MKL_Complex16* work, double* rwork );

double ZLA_SYRCOND_X( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex16* x,
                      MKL_INT* info, MKL_Complex16* work, double* rwork );
double ZLA_SYRCOND_X_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const MKL_Complex16* x,
                       MKL_INT* info, MKL_Complex16* work, double* rwork );
double zla_syrcond_x( const char* uplo, const MKL_INT* n,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, const MKL_Complex16* x,
                      MKL_INT* info, MKL_Complex16* work, double* rwork );
double zla_syrcond_x_( const char* uplo, const MKL_INT* n,
                       const MKL_Complex16* a, const MKL_INT* lda,
                       const MKL_Complex16* af, const MKL_INT* ldaf,
                       const MKL_INT* ipiv, const MKL_Complex16* x,
                       MKL_INT* info, MKL_Complex16* work, double* rwork );

void ZLA_SYRFSX_EXTENDED( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex16* a, const MKL_INT* lda,
                          const MKL_Complex16* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const double* c, const MKL_Complex16* b,
                          const MKL_INT* ldb, MKL_Complex16* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, MKL_Complex16* res,
                          double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void ZLA_SYRFSX_EXTENDED_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex16* a, const MKL_INT* lda,
                           const MKL_Complex16* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const double* c, const MKL_Complex16* b,
                           const MKL_INT* ldb, MKL_Complex16* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, MKL_Complex16* res,
                           double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );
void zla_syrfsx_extended( const MKL_INT* prec_type, const char* uplo,
                          const MKL_INT* n, const MKL_INT* nrhs,
                          const MKL_Complex16* a, const MKL_INT* lda,
                          const MKL_Complex16* af, const MKL_INT* ldaf,
                          const MKL_INT* ipiv, const MKL_INT* colequ,
                          const double* c, const MKL_Complex16* b,
                          const MKL_INT* ldb, MKL_Complex16* y,
                          const MKL_INT* ldy, double* berr_out,
                          const MKL_INT* n_norms, double* err_bnds_norm,
                          double* err_bnds_comp, MKL_Complex16* res,
                          double* ayb, MKL_Complex16* dy,
                          MKL_Complex16* y_tail, const double* rcond,
                          const MKL_INT* ithresh, const double* rthresh,
                          const double* dz_ub, const MKL_INT* ignore_cwise,
                          MKL_INT* info );
void zla_syrfsx_extended_( const MKL_INT* prec_type, const char* uplo,
                           const MKL_INT* n, const MKL_INT* nrhs,
                           const MKL_Complex16* a, const MKL_INT* lda,
                           const MKL_Complex16* af, const MKL_INT* ldaf,
                           const MKL_INT* ipiv, const MKL_INT* colequ,
                           const double* c, const MKL_Complex16* b,
                           const MKL_INT* ldb, MKL_Complex16* y,
                           const MKL_INT* ldy, double* berr_out,
                           const MKL_INT* n_norms, double* err_bnds_norm,
                           double* err_bnds_comp, MKL_Complex16* res,
                           double* ayb, MKL_Complex16* dy,
                           MKL_Complex16* y_tail, const double* rcond,
                           const MKL_INT* ithresh, const double* rthresh,
                           const double* dz_ub, const MKL_INT* ignore_cwise,
                           MKL_INT* info );

double ZLA_SYRPVGRW( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, double* work );
double ZLA_SYRPVGRW_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, double* work );
double zla_syrpvgrw( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                     const MKL_Complex16* a, const MKL_INT* lda,
                     const MKL_Complex16* af, const MKL_INT* ldaf,
                     const MKL_INT* ipiv, double* work );
double zla_syrpvgrw_( const char* uplo, const MKL_INT* n, const MKL_INT* info,
                      const MKL_Complex16* a, const MKL_INT* lda,
                      const MKL_Complex16* af, const MKL_INT* ldaf,
                      const MKL_INT* ipiv, double* work );

void ZLA_WWADDW( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
                 const MKL_Complex16* w );
void ZLA_WWADDW_( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
                  const MKL_Complex16* w );
void zla_wwaddw( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
                 const MKL_Complex16* w );
void zla_wwaddw_( const MKL_INT* n, MKL_Complex16* x, MKL_Complex16* y,
                  const MKL_Complex16* w );

void ZTPRFB( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* work, const MKL_INT* ldwork );
void ZTPRFB_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* work, const MKL_INT* ldwork );
void ztprfb( const char* side, const char* trans, const char* direct,
             const char* storev, const MKL_INT* m, const MKL_INT* n,
             const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
             const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* work, const MKL_INT* ldwork );
void ztprfb_( const char* side, const char* trans, const char* direct,
              const char* storev, const MKL_INT* m, const MKL_INT* n,
              const MKL_INT* k, const MKL_INT* l, const MKL_Complex16* v,
              const MKL_INT* ldv, const MKL_Complex16* t, const MKL_INT* ldt,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* work, const MKL_INT* ldwork );

/* Intel(R) MKL specific routines */

/* Tridiagonalization using Successive Bandwidth Reduction */

void CHERDB( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* a, const MKL_INT* lda, float* d,
             float* e, MKL_Complex8* tau, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void CHERDB_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex8* a, const MKL_INT* lda, float* d,
              float* e, MKL_Complex8* tau, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cherdb( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex8* a, const MKL_INT* lda, float* d,
             float* e, MKL_Complex8* tau, MKL_Complex8* z, const MKL_INT* ldz,
             MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );
void cherdb_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex8* a, const MKL_INT* lda, float* d,
              float* e, MKL_Complex8* tau, MKL_Complex8* z, const MKL_INT* ldz,
              MKL_Complex8* work, const MKL_INT* lwork, MKL_INT* info );

void DSYRDB( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* a, const MKL_INT* lda, double* d,
             double* e, double* tau, double* z, const MKL_INT* ldz,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void DSYRDB_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, double* a, const MKL_INT* lda, double* d,
              double* e, double* tau, double* z, const MKL_INT* ldz,
              double* work, const MKL_INT* lwork, MKL_INT* info );
void dsyrdb( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, double* a, const MKL_INT* lda, double* d,
             double* e, double* tau, double* z, const MKL_INT* ldz,
             double* work, const MKL_INT* lwork, MKL_INT* info );
void dsyrdb_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, double* a, const MKL_INT* lda, double* d,
              double* e, double* tau, double* z, const MKL_INT* ldz,
              double* work, const MKL_INT* lwork, MKL_INT* info );

void SSYRDB( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* a, const MKL_INT* lda, float* d,
             float* e, float* tau, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void SSYRDB_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, float* a, const MKL_INT* lda, float* d,
              float* e, float* tau, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );
void ssyrdb( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, float* a, const MKL_INT* lda, float* d,
             float* e, float* tau, float* z, const MKL_INT* ldz, float* work,
             const MKL_INT* lwork, MKL_INT* info );
void ssyrdb_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, float* a, const MKL_INT* lda, float* d,
              float* e, float* tau, float* z, const MKL_INT* ldz, float* work,
              const MKL_INT* lwork, MKL_INT* info );

void ZHERDB( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* a, const MKL_INT* lda,
             double* d, double* e, MKL_Complex16* tau, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void ZHERDB_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex16* a, const MKL_INT* lda,
              double* d, double* e, MKL_Complex16* tau, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );
void zherdb( const char* jobz, const char* uplo, const MKL_INT* n,
             const MKL_INT* kd, MKL_Complex16* a, const MKL_INT* lda,
             double* d, double* e, MKL_Complex16* tau, MKL_Complex16* z,
             const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
             MKL_INT* info );
void zherdb_( const char* jobz, const char* uplo, const MKL_INT* n,
              const MKL_INT* kd, MKL_Complex16* a, const MKL_INT* lda,
              double* d, double* e, MKL_Complex16* tau, MKL_Complex16* z,
              const MKL_INT* ldz, MKL_Complex16* work, const MKL_INT* lwork,
              MKL_INT* info );

/* Tridiagonal diagonally-dominant linear equations solver
   using the BABE algorithm (Burning At Both Ends); */

void CDTSVB( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
             MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void CDTSVB_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
              MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );
void cdtsvb( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
             MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_INT* info );
void cdtsvb_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex8* dl,
              MKL_Complex8* d, const MKL_Complex8* du, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_INT* info );

void CDTTRFB( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
              const MKL_Complex8* du, MKL_INT* info );
void CDTTRFB_( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
               const MKL_Complex8* du, MKL_INT* info );
void cdttrfb( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
              const MKL_Complex8* du, MKL_INT* info );
void cdttrfb_( const MKL_INT* n, MKL_Complex8* dl, MKL_Complex8* d,
               const MKL_Complex8* du, MKL_INT* info );

void CDTTRSB( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );
void CDTTRSB_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* dl, const MKL_Complex8* d,
               const MKL_Complex8* du, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_INT* info );
void cdttrsb( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex8* dl, const MKL_Complex8* d,
              const MKL_Complex8* du, MKL_Complex8* b, const MKL_INT* ldb,
              MKL_INT* info );
void cdttrsb_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex8* dl, const MKL_Complex8* d,
               const MKL_Complex8* du, MKL_Complex8* b, const MKL_INT* ldb,
               MKL_INT* info );

void DDTSVB( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
             const double* du, double* b, const MKL_INT* ldb, MKL_INT* info );
void DDTSVB_( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
              const double* du, double* b, const MKL_INT* ldb, MKL_INT* info );
void ddtsvb( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
             const double* du, double* b, const MKL_INT* ldb, MKL_INT* info );
void ddtsvb_( const MKL_INT* n, const MKL_INT* nrhs, double* dl, double* d,
              const double* du, double* b, const MKL_INT* ldb, MKL_INT* info );

void DDTTRFB( const MKL_INT* n, double* dl, double* d, const double* du,
              MKL_INT* info );
void DDTTRFB_( const MKL_INT* n, double* dl, double* d, const double* du,
               MKL_INT* info );
void ddttrfb( const MKL_INT* n, double* dl, double* d, const double* du,
              MKL_INT* info );
void ddttrfb_( const MKL_INT* n, double* dl, double* d, const double* du,
               MKL_INT* info );

void DDTTRSB( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void DDTTRSB_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const double* dl, const double* d, const double* du, double* b,
               const MKL_INT* ldb, MKL_INT* info );
void ddttrsb( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const double* dl, const double* d, const double* du, double* b,
              const MKL_INT* ldb, MKL_INT* info );
void ddttrsb_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const double* dl, const double* d, const double* du, double* b,
               const MKL_INT* ldb, MKL_INT* info );

void SDTSVB( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
             const float* du, float* b, const MKL_INT* ldb, MKL_INT* info );
void SDTSVB_( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
              const float* du, float* b, const MKL_INT* ldb, MKL_INT* info );
void sdtsvb( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
             const float* du, float* b, const MKL_INT* ldb, MKL_INT* info );
void sdtsvb_( const MKL_INT* n, const MKL_INT* nrhs, float* dl, float* d,
              const float* du, float* b, const MKL_INT* ldb, MKL_INT* info );

void SDTTRFB( const MKL_INT* n, float* dl, float* d, const float* du,
              MKL_INT* info );
void SDTTRFB_( const MKL_INT* n, float* dl, float* d, const float* du,
               MKL_INT* info );
void sdttrfb( const MKL_INT* n, float* dl, float* d, const float* du,
              MKL_INT* info );
void sdttrfb_( const MKL_INT* n, float* dl, float* d, const float* du,
               MKL_INT* info );

void SDTTRSB( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void SDTTRSB_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const float* dl, const float* d, const float* du, float* b,
               const MKL_INT* ldb, MKL_INT* info );
void sdttrsb( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const float* dl, const float* d, const float* du, float* b,
              const MKL_INT* ldb, MKL_INT* info );
void sdttrsb_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const float* dl, const float* d, const float* du, float* b,
               const MKL_INT* ldb, MKL_INT* info );

void ZDTSVB( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
             MKL_Complex16* d, const MKL_Complex16* du, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void ZDTSVB_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
              MKL_Complex16* d, const MKL_Complex16* du, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );
void zdtsvb( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
             MKL_Complex16* d, const MKL_Complex16* du, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_INT* info );
void zdtsvb_( const MKL_INT* n, const MKL_INT* nrhs, MKL_Complex16* dl,
              MKL_Complex16* d, const MKL_Complex16* du, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_INT* info );

void ZDTTRFB( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
              const MKL_Complex16* du, MKL_INT* info );
void ZDTTRFB_( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
               const MKL_Complex16* du, MKL_INT* info );
void zdttrfb( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
              const MKL_Complex16* du, MKL_INT* info );
void zdttrfb_( const MKL_INT* n, MKL_Complex16* dl, MKL_Complex16* d,
               const MKL_Complex16* du, MKL_INT* info );

void ZDTTRSB( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );
void ZDTTRSB_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex16* dl, const MKL_Complex16* d,
               const MKL_Complex16* du, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_INT* info );
void zdttrsb( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
              const MKL_Complex16* dl, const MKL_Complex16* d,
              const MKL_Complex16* du, MKL_Complex16* b, const MKL_INT* ldb,
              MKL_INT* info );
void zdttrsb_( const char* trans, const MKL_INT* n, const MKL_INT* nrhs,
               const MKL_Complex16* dl, const MKL_Complex16* d,
               const MKL_Complex16* du, MKL_Complex16* b, const MKL_INT* ldb,
               MKL_INT* info );

/* Converters for standard packed format */

void MKL_CTPPACK( const char* uplo, const char* trans, const MKL_INT* n,
                  MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void MKL_CTPPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                   MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ctppack( const char* uplo, const char* trans, const MKL_INT* n,
                  MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ctppack_( const char* uplo, const char* trans, const MKL_INT* n,
                   MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );

void MKL_DTPPACK( const char* uplo, const char* trans, const MKL_INT* n,
                  double* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const double* a, const MKL_INT* lda, MKL_INT* info );
void MKL_DTPPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                   double* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const double* a, const MKL_INT* lda, MKL_INT* info );
void mkl_dtppack( const char* uplo, const char* trans, const MKL_INT* n,
                  double* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const double* a, const MKL_INT* lda, MKL_INT* info );
void mkl_dtppack_( const char* uplo, const char* trans, const MKL_INT* n,
                   double* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const double* a, const MKL_INT* lda, MKL_INT* info );

void MKL_STPPACK( const char* uplo, const char* trans, const MKL_INT* n,
                  float* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const float* a, const MKL_INT* lda, MKL_INT* info );
void MKL_STPPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                   float* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const float* a, const MKL_INT* lda, MKL_INT* info );
void mkl_stppack( const char* uplo, const char* trans, const MKL_INT* n,
                  float* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const float* a, const MKL_INT* lda, MKL_INT* info );
void mkl_stppack_( const char* uplo, const char* trans, const MKL_INT* n,
                   float* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const float* a, const MKL_INT* lda, MKL_INT* info );

void MKL_ZTPPACK( const char* uplo, const char* trans, const MKL_INT* n,
                  MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void MKL_ZTPPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                   MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ztppack( const char* uplo, const char* trans, const MKL_INT* n,
                  MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                  const MKL_INT* rows, const MKL_INT* cols,
                  const MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ztppack_( const char* uplo, const char* trans, const MKL_INT* n,
                   MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                   const MKL_INT* rows, const MKL_INT* cols,
                   const MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );

void MKL_CTPUNPACK( const char* uplo, const char* trans, const MKL_INT* n,
                    const MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void MKL_CTPUNPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                     const MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ctpunpack( const char* uplo, const char* trans, const MKL_INT* n,
                    const MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ctpunpack_( const char* uplo, const char* trans, const MKL_INT* n,
                     const MKL_Complex8* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     MKL_Complex8* a, const MKL_INT* lda, MKL_INT* info );

void MKL_DTPUNPACK( const char* uplo, const char* trans, const MKL_INT* n,
                    const double* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    double* a, const MKL_INT* lda, MKL_INT* info );
void MKL_DTPUNPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                     const double* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     double* a, const MKL_INT* lda, MKL_INT* info );
void mkl_dtpunpack( const char* uplo, const char* trans, const MKL_INT* n,
                    const double* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    double* a, const MKL_INT* lda, MKL_INT* info );
void mkl_dtpunpack_( const char* uplo, const char* trans, const MKL_INT* n,
                     const double* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     double* a, const MKL_INT* lda, MKL_INT* info );

void MKL_STPUNPACK( const char* uplo, const char* trans, const MKL_INT* n,
                    const float* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    float* a, const MKL_INT* lda, MKL_INT* info );
void MKL_STPUNPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                     const float* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     float* a, const MKL_INT* lda, MKL_INT* info );
void mkl_stpunpack( const char* uplo, const char* trans, const MKL_INT* n,
                    const float* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    float* a, const MKL_INT* lda, MKL_INT* info );
void mkl_stpunpack_( const char* uplo, const char* trans, const MKL_INT* n,
                     const float* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     float* a, const MKL_INT* lda, MKL_INT* info );

void MKL_ZTPUNPACK( const char* uplo, const char* trans, const MKL_INT* n,
                    const MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void MKL_ZTPUNPACK_( const char* uplo, const char* trans, const MKL_INT* n,
                     const MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ztpunpack( const char* uplo, const char* trans, const MKL_INT* n,
                    const MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                    const MKL_INT* rows, const MKL_INT* cols,
                    MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );
void mkl_ztpunpack_( const char* uplo, const char* trans, const MKL_INT* n,
                     const MKL_Complex16* ap, const MKL_INT* i, const MKL_INT* j,
                     const MKL_INT* rows, const MKL_INT* cols,
                     MKL_Complex16* a, const MKL_INT* lda, MKL_INT* info );

/* LAPACK MATGEN routines */
void DLATM1( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, double* d,
             const MKL_INT* n, MKL_INT* info );
void DLATM1_( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, double* d,
              const MKL_INT* n, MKL_INT* info );
void dlatm1( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, double* d,
             const MKL_INT* n, MKL_INT* info );
void dlatm1_( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, double* d,
              const MKL_INT* n, MKL_INT* info );

void SLATM1( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, float* d,
             const MKL_INT* n, MKL_INT* info );
void SLATM1_( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, float* d,
              const MKL_INT* n, MKL_INT* info );
void slatm1( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, float* d,
             const MKL_INT* n, MKL_INT* info );
void slatm1_( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, float* d,
              const MKL_INT* n, MKL_INT* info );

void CLATM1( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, MKL_Complex8* d,
             const MKL_INT* n, MKL_INT* info );
void CLATM1_( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, MKL_Complex8* d,
              const MKL_INT* n, MKL_INT* info );
void clatm1( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, MKL_Complex8* d,
             const MKL_INT* n, MKL_INT* info );
void clatm1_( const MKL_INT* mode, const float* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, MKL_Complex8* d,
              const MKL_INT* n, MKL_INT* info );

void ZLATM1( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, MKL_Complex16* d,
             const MKL_INT* n, MKL_INT* info );
void ZLATM1_( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, MKL_Complex16* d,
              const MKL_INT* n, MKL_INT* info );
void zlatm1( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
             const MKL_INT* idist, MKL_INT* iseed, MKL_Complex16* d,
             const MKL_INT* n, MKL_INT* info );
void zlatm1_( const MKL_INT* mode, const double* cond, const MKL_INT* irsign,
              const MKL_INT* idist, MKL_INT* iseed, MKL_Complex16* d,
              const MKL_INT* n, MKL_INT* info );

double DLATM2( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
               const MKL_INT* idist, MKL_INT* iseed, const double* d,
               const MKL_INT* igrade, const double* dl, const double* dr,
               const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );
double DLATM2_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
                const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
                const MKL_INT* idist, MKL_INT* iseed, const double* d,
                const MKL_INT* igrade, const double* dl, const double* dr,
                const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );
double dlatm2( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
               const MKL_INT* idist, MKL_INT* iseed, const double* d,
               const MKL_INT* igrade, const double* dl, const double* dr,
               const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );
double dlatm2_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
                const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
                const MKL_INT* idist, MKL_INT* iseed, const double* d,
                const MKL_INT* igrade, const double* dl, const double* dr,
                const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );

float SLATM2( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
              const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
              const MKL_INT* idist, MKL_INT* iseed, const float* d,
              const MKL_INT* igrade, const float* dl, const float* dr,
              const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );
float SLATM2_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
               const MKL_INT* idist, MKL_INT* iseed, const float* d,
               const MKL_INT* igrade, const float* dl, const float* dr,
               const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );
float slatm2( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
              const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
              const MKL_INT* idist, MKL_INT* iseed, const float* d,
              const MKL_INT* igrade, const float* dl, const float* dr,
              const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );
float slatm2_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, const MKL_INT* kl, const MKL_INT* ku,
               const MKL_INT* idist, MKL_INT* iseed, const float* d,
               const MKL_INT* igrade, const float* dl, const float* dr,
               const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );

void CLATM2( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
             const MKL_Complex8* d, const MKL_INT* igrade,
             const MKL_Complex8* dl, const MKL_Complex8* dr,
             const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );
void CLATM2_( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
              const MKL_Complex8* d, const MKL_INT* igrade,
              const MKL_Complex8* dl, const MKL_Complex8* dr,
              const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );
void clatm2( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
             const MKL_Complex8* d, const MKL_INT* igrade,
             const MKL_Complex8* dl, const MKL_Complex8* dr,
             const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );
void clatm2_( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
              const MKL_Complex8* d, const MKL_INT* igrade,
              const MKL_Complex8* dl, const MKL_Complex8* dr,
              const MKL_INT* ipvtng, MKL_INT* iwork, const float* sparse );

void ZLATM2( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
             const MKL_Complex16* d, const MKL_INT* igrade,
             const MKL_Complex16* dl, const MKL_Complex16* dr,
             const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );
void ZLATM2_( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
              const MKL_Complex16* d, const MKL_INT* igrade,
              const MKL_Complex16* dl, const MKL_Complex16* dr,
              const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );
void zlatm2( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
             const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
             const MKL_Complex16* d, const MKL_INT* igrade,
             const MKL_Complex16* dl, const MKL_Complex16* dr,
             const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );
void zlatm2_( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, const MKL_INT* kl,
              const MKL_INT* ku, const MKL_INT* idist, MKL_INT* iseed,
              const MKL_Complex16* d, const MKL_INT* igrade,
              const MKL_Complex16* dl, const MKL_Complex16* dr,
              const MKL_INT* ipvtng, MKL_INT* iwork, const double* sparse );

double DLATM3( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
               MKL_INT* iseed, const double* d, const MKL_INT* igrade,
               const double* dl, const double* dr, const MKL_INT* ipvtng,
               const MKL_INT* iwork, const double* sparse );
double DLATM3_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
                const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
                const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
                MKL_INT* iseed, const double* d, const MKL_INT* igrade,
                const double* dl, const double* dr, const MKL_INT* ipvtng,
                const MKL_INT* iwork, const double* sparse );
double dlatm3( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
               MKL_INT* iseed, const double* d, const MKL_INT* igrade,
               const double* dl, const double* dr, const MKL_INT* ipvtng,
               const MKL_INT* iwork, const double* sparse );
double dlatm3_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
                const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
                const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
                MKL_INT* iseed, const double* d, const MKL_INT* igrade,
                const double* dl, const double* dr, const MKL_INT* ipvtng,
                const MKL_INT* iwork, const double* sparse );

float SLATM3( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
              const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
              MKL_INT* iseed, const float* d, const MKL_INT* igrade,
              const float* dl, const float* dr, const MKL_INT* ipvtng,
              const MKL_INT* iwork, const float* sparse );
float SLATM3_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
               MKL_INT* iseed, const float* d, const MKL_INT* igrade,
               const float* dl, const float* dr, const MKL_INT* ipvtng,
               const MKL_INT* iwork, const float* sparse );
float slatm3( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
              const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
              MKL_INT* iseed, const float* d, const MKL_INT* igrade,
              const float* dl, const float* dr, const MKL_INT* ipvtng,
              const MKL_INT* iwork, const float* sparse );
float slatm3_( const MKL_INT* m, const MKL_INT* n, MKL_INT* ii,
               const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
               const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
               MKL_INT* iseed, const float* d, const MKL_INT* igrade,
               const float* dl, const float* dr, const MKL_INT* ipvtng,
               const MKL_INT* iwork, const float* sparse );

void CLATM3( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
             MKL_INT* iseed, const MKL_Complex8* d, const MKL_INT* igrade,
             const MKL_Complex8* dl, const MKL_Complex8* dr,
             const MKL_INT* ipvtng, const MKL_INT* iwork,
             const float* sparse );
void CLATM3_( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
              MKL_INT* iseed, const MKL_Complex8* d, const MKL_INT* igrade,
              const MKL_Complex8* dl, const MKL_Complex8* dr,
              const MKL_INT* ipvtng, const MKL_INT* iwork,
              const float* sparse );
void clatm3( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
             MKL_INT* iseed, const MKL_Complex8* d, const MKL_INT* igrade,
             const MKL_Complex8* dl, const MKL_Complex8* dr,
             const MKL_INT* ipvtng, const MKL_INT* iwork,
             const float* sparse );
void clatm3_( MKL_Complex8* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
              MKL_INT* iseed, const MKL_Complex8* d, const MKL_INT* igrade,
              const MKL_Complex8* dl, const MKL_Complex8* dr,
              const MKL_INT* ipvtng, const MKL_INT* iwork,
              const float* sparse );

void ZLATM3( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
             MKL_INT* iseed, const MKL_Complex16* d, const MKL_INT* igrade,
             const MKL_Complex16* dl, const MKL_Complex16* dr,
             const MKL_INT* ipvtng, const MKL_INT* iwork,
             const double* sparse );
void ZLATM3_( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
              MKL_INT* iseed, const MKL_Complex16* d, const MKL_INT* igrade,
              const MKL_Complex16* dl, const MKL_Complex16* dr,
              const MKL_INT* ipvtng, const MKL_INT* iwork,
              const double* sparse );
void zlatm3( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
             MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
             const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
             MKL_INT* iseed, const MKL_Complex16* d, const MKL_INT* igrade,
             const MKL_Complex16* dl, const MKL_Complex16* dr,
             const MKL_INT* ipvtng, const MKL_INT* iwork,
             const double* sparse );
void zlatm3_( MKL_Complex16* retval, const MKL_INT* m, const MKL_INT* n,
              MKL_INT* ii, const MKL_INT* j, MKL_INT* isub, MKL_INT* jsub,
              const MKL_INT* kl, const MKL_INT* ku, const MKL_INT* idist,
              MKL_INT* iseed, const MKL_Complex16* d, const MKL_INT* igrade,
              const MKL_Complex16* dl, const MKL_Complex16* dr,
              const MKL_INT* ipvtng, const MKL_INT* iwork,
              const double* sparse );

void DLATM5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* c, const MKL_INT* ldc, double* d, const MKL_INT* ldd,
             double* e, const MKL_INT* lde, double* f, const MKL_INT* ldf,
             double* r, const MKL_INT* ldr, double* l, const MKL_INT* ldl,
             const double* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void DLATM5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* c, const MKL_INT* ldc, double* d, const MKL_INT* ldd,
              double* e, const MKL_INT* lde, double* f, const MKL_INT* ldf,
              double* r, const MKL_INT* ldr, double* l, const MKL_INT* ldl,
              const double* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );
void dlatm5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
             double* c, const MKL_INT* ldc, double* d, const MKL_INT* ldd,
             double* e, const MKL_INT* lde, double* f, const MKL_INT* ldf,
             double* r, const MKL_INT* ldr, double* l, const MKL_INT* ldl,
             const double* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void dlatm5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              double* a, const MKL_INT* lda, double* b, const MKL_INT* ldb,
              double* c, const MKL_INT* ldc, double* d, const MKL_INT* ldd,
              double* e, const MKL_INT* lde, double* f, const MKL_INT* ldf,
              double* r, const MKL_INT* ldr, double* l, const MKL_INT* ldl,
              const double* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );

void SLATM5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* c, const MKL_INT* ldc, float* d, const MKL_INT* ldd,
             float* e, const MKL_INT* lde, float* f, const MKL_INT* ldf,
             float* r, const MKL_INT* ldr, float* l, const MKL_INT* ldl,
             const float* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void SLATM5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* c, const MKL_INT* ldc, float* d, const MKL_INT* ldd,
              float* e, const MKL_INT* lde, float* f, const MKL_INT* ldf,
              float* r, const MKL_INT* ldr, float* l, const MKL_INT* ldl,
              const float* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );
void slatm5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
             float* c, const MKL_INT* ldc, float* d, const MKL_INT* ldd,
             float* e, const MKL_INT* lde, float* f, const MKL_INT* ldf,
             float* r, const MKL_INT* ldr, float* l, const MKL_INT* ldl,
             const float* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void slatm5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              float* a, const MKL_INT* lda, float* b, const MKL_INT* ldb,
              float* c, const MKL_INT* ldc, float* d, const MKL_INT* ldd,
              float* e, const MKL_INT* lde, float* f, const MKL_INT* ldf,
              float* r, const MKL_INT* ldr, float* l, const MKL_INT* ldl,
              const float* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );

void CLATM5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* d, const MKL_INT* ldd, MKL_Complex8* e,
             const MKL_INT* lde, MKL_Complex8* f, const MKL_INT* ldf,
             MKL_Complex8* r, const MKL_INT* ldr, MKL_Complex8* l,
             const MKL_INT* ldl, const float* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void CLATM5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* d, const MKL_INT* ldd, MKL_Complex8* e,
              const MKL_INT* lde, MKL_Complex8* f, const MKL_INT* ldf,
              MKL_Complex8* r, const MKL_INT* ldr, MKL_Complex8* l,
              const MKL_INT* ldl, const float* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );
void clatm5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
             const MKL_INT* ldb, MKL_Complex8* c, const MKL_INT* ldc,
             MKL_Complex8* d, const MKL_INT* ldd, MKL_Complex8* e,
             const MKL_INT* lde, MKL_Complex8* f, const MKL_INT* ldf,
             MKL_Complex8* r, const MKL_INT* ldr, MKL_Complex8* l,
             const MKL_INT* ldl, const float* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void clatm5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex8* a, const MKL_INT* lda, MKL_Complex8* b,
              const MKL_INT* ldb, MKL_Complex8* c, const MKL_INT* ldc,
              MKL_Complex8* d, const MKL_INT* ldd, MKL_Complex8* e,
              const MKL_INT* lde, MKL_Complex8* f, const MKL_INT* ldf,
              MKL_Complex8* r, const MKL_INT* ldr, MKL_Complex8* l,
              const MKL_INT* ldl, const float* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );

void ZLATM5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* d, const MKL_INT* ldd, MKL_Complex16* e,
             const MKL_INT* lde, MKL_Complex16* f, const MKL_INT* ldf,
             MKL_Complex16* r, const MKL_INT* ldr, MKL_Complex16* l,
             const MKL_INT* ldl, const double* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void ZLATM5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* d, const MKL_INT* ldd, MKL_Complex16* e,
              const MKL_INT* lde, MKL_Complex16* f, const MKL_INT* ldf,
              MKL_Complex16* r, const MKL_INT* ldr, MKL_Complex16* l,
              const MKL_INT* ldl, const double* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );
void zlatm5( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
             const MKL_INT* ldb, MKL_Complex16* c, const MKL_INT* ldc,
             MKL_Complex16* d, const MKL_INT* ldd, MKL_Complex16* e,
             const MKL_INT* lde, MKL_Complex16* f, const MKL_INT* ldf,
             MKL_Complex16* r, const MKL_INT* ldr, MKL_Complex16* l,
             const MKL_INT* ldl, const double* alpha, const MKL_INT* qblcka,
             const MKL_INT* qblckb );
void zlatm5_( const MKL_INT* prtype, const MKL_INT* m, const MKL_INT* n,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* b,
              const MKL_INT* ldb, MKL_Complex16* c, const MKL_INT* ldc,
              MKL_Complex16* d, const MKL_INT* ldd, MKL_Complex16* e,
              const MKL_INT* lde, MKL_Complex16* f, const MKL_INT* ldf,
              MKL_Complex16* r, const MKL_INT* ldr, MKL_Complex16* l,
              const MKL_INT* ldl, const double* alpha, const MKL_INT* qblcka,
              const MKL_INT* qblckb );

void DLATM6( const MKL_INT* type, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, double* x, const MKL_INT* ldx,
             double* y, const MKL_INT* ldy, const double* alpha,
             const double* beta, const double* wx, const double* wy, double* s,
             double* dif );
void DLATM6_( const MKL_INT* type, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, double* x, const MKL_INT* ldx,
              double* y, const MKL_INT* ldy, const double* alpha,
              const double* beta, const double* wx, const double* wy,
              double* s, double* dif );
void dlatm6( const MKL_INT* type, const MKL_INT* n, double* a,
             const MKL_INT* lda, double* b, double* x, const MKL_INT* ldx,
             double* y, const MKL_INT* ldy, const double* alpha,
             const double* beta, const double* wx, const double* wy, double* s,
             double* dif );
void dlatm6_( const MKL_INT* type, const MKL_INT* n, double* a,
              const MKL_INT* lda, double* b, double* x, const MKL_INT* ldx,
              double* y, const MKL_INT* ldy, const double* alpha,
              const double* beta, const double* wx, const double* wy,
              double* s, double* dif );

void SLATM6( const MKL_INT* type, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, float* x, const MKL_INT* ldx,
             float* y, const MKL_INT* ldy, const float* alpha,
             const float* beta, const float* wx, const float* wy, float* s,
             float* dif );
void SLATM6_( const MKL_INT* type, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, float* x, const MKL_INT* ldx,
              float* y, const MKL_INT* ldy, const float* alpha,
              const float* beta, const float* wx, const float* wy, float* s,
              float* dif );
void slatm6( const MKL_INT* type, const MKL_INT* n, float* a,
             const MKL_INT* lda, float* b, float* x, const MKL_INT* ldx,
             float* y, const MKL_INT* ldy, const float* alpha,
             const float* beta, const float* wx, const float* wy, float* s,
             float* dif );
void slatm6_( const MKL_INT* type, const MKL_INT* n, float* a,
              const MKL_INT* lda, float* b, float* x, const MKL_INT* ldx,
              float* y, const MKL_INT* ldy, const float* alpha,
              const float* beta, const float* wx, const float* wy, float* s,
              float* dif );

void CLATM6( const MKL_INT* type, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, MKL_Complex8* x,
             const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy,
             const MKL_Complex8* alpha, const MKL_Complex8* beta,
             const MKL_Complex8* wx, const MKL_Complex8* wy, float* s,
             float* dif );
void CLATM6_( const MKL_INT* type, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, MKL_Complex8* x,
              const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy,
              const MKL_Complex8* alpha, const MKL_Complex8* beta,
              const MKL_Complex8* wx, const MKL_Complex8* wy, float* s,
              float* dif );
void clatm6( const MKL_INT* type, const MKL_INT* n, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* b, MKL_Complex8* x,
             const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy,
             const MKL_Complex8* alpha, const MKL_Complex8* beta,
             const MKL_Complex8* wx, const MKL_Complex8* wy, float* s,
             float* dif );
void clatm6_( const MKL_INT* type, const MKL_INT* n, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* b, MKL_Complex8* x,
              const MKL_INT* ldx, MKL_Complex8* y, const MKL_INT* ldy,
              const MKL_Complex8* alpha, const MKL_Complex8* beta,
              const MKL_Complex8* wx, const MKL_Complex8* wy, float* s,
              float* dif );

void ZLATM6( const MKL_INT* type, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, MKL_Complex16* x,
             const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy,
             const MKL_Complex16* alpha, const MKL_Complex16* beta,
             const MKL_Complex16* wx, const MKL_Complex16* wy, double* s,
             double* dif );
void ZLATM6_( const MKL_INT* type, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, MKL_Complex16* x,
              const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy,
              const MKL_Complex16* alpha, const MKL_Complex16* beta,
              const MKL_Complex16* wx, const MKL_Complex16* wy, double* s,
              double* dif );
void zlatm6( const MKL_INT* type, const MKL_INT* n, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* b, MKL_Complex16* x,
             const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy,
             const MKL_Complex16* alpha, const MKL_Complex16* beta,
             const MKL_Complex16* wx, const MKL_Complex16* wy, double* s,
             double* dif );
void zlatm6_( const MKL_INT* type, const MKL_INT* n, MKL_Complex16* a,
              const MKL_INT* lda, MKL_Complex16* b, MKL_Complex16* x,
              const MKL_INT* ldx, MKL_Complex16* y, const MKL_INT* ldy,
              const MKL_Complex16* alpha, const MKL_Complex16* beta,
              const MKL_Complex16* wx, const MKL_Complex16* wy, double* s,
              double* dif );

void DLATME( const MKL_INT* n, const char* dist, MKL_INT* iseed, double* d,
             const MKL_INT* mode, const double* cond, const double* dmax,
             const char* ei, const char* rsign, const char* upper,
             const char* sim, double* ds, const MKL_INT* modes,
             const double* conds, const MKL_INT* kl, const MKL_INT* ku,
             const double* anorm, double* a, const MKL_INT* lda, double* work,
             MKL_INT* info );
void DLATME_( const MKL_INT* n, const char* dist, MKL_INT* iseed, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const char* ei, const char* rsign, const char* upper,
              const char* sim, double* ds, const MKL_INT* modes,
              const double* conds, const MKL_INT* kl, const MKL_INT* ku,
              const double* anorm, double* a, const MKL_INT* lda,
              double* work, MKL_INT* info );
void dlatme( const MKL_INT* n, const char* dist, MKL_INT* iseed, double* d,
             const MKL_INT* mode, const double* cond, const double* dmax,
             const char* ei, const char* rsign, const char* upper,
             const char* sim, double* ds, const MKL_INT* modes,
             const double* conds, const MKL_INT* kl, const MKL_INT* ku,
             const double* anorm, double* a, const MKL_INT* lda, double* work,
             MKL_INT* info );
void dlatme_( const MKL_INT* n, const char* dist, MKL_INT* iseed, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const char* ei, const char* rsign, const char* upper,
              const char* sim, double* ds, const MKL_INT* modes,
              const double* conds, const MKL_INT* kl, const MKL_INT* ku,
              const double* anorm, double* a, const MKL_INT* lda,
              double* work, MKL_INT* info );

void SLATME( const MKL_INT* n, const char* dist, MKL_INT* iseed, float* d,
             const MKL_INT* mode, const float* cond, const float* dmax,
             const char* ei, const char* rsign, const char* upper,
             const char* sim, float* ds, const MKL_INT* modes,
             const float* conds, const MKL_INT* kl, const MKL_INT* ku,
             const float* anorm, float* a, const MKL_INT* lda, float* work,
             MKL_INT* info );
void SLATME_( const MKL_INT* n, const char* dist, MKL_INT* iseed, float* d,
              const MKL_INT* mode, const float* cond, const float* dmax,
              const char* ei, const char* rsign, const char* upper,
              const char* sim, float* ds, const MKL_INT* modes,
              const float* conds, const MKL_INT* kl, const MKL_INT* ku,
              const float* anorm, float* a, const MKL_INT* lda, float* work,
              MKL_INT* info );
void slatme( const MKL_INT* n, const char* dist, MKL_INT* iseed, float* d,
             const MKL_INT* mode, const float* cond, const float* dmax,
             const char* ei, const char* rsign, const char* upper,
             const char* sim, float* ds, const MKL_INT* modes,
             const float* conds, const MKL_INT* kl, const MKL_INT* ku,
             const float* anorm, float* a, const MKL_INT* lda, float* work,
             MKL_INT* info );
void slatme_( const MKL_INT* n, const char* dist, MKL_INT* iseed, float* d,
              const MKL_INT* mode, const float* cond, const float* dmax,
              const char* ei, const char* rsign, const char* upper,
              const char* sim, float* ds, const MKL_INT* modes,
              const float* conds, const MKL_INT* kl, const MKL_INT* ku,
              const float* anorm, float* a, const MKL_INT* lda, float* work,
              MKL_INT* info );

void CLATME( const MKL_INT* n, const char* dist, MKL_INT* iseed,
             MKL_Complex8* d, const MKL_INT* mode, const float* cond,
             const MKL_Complex8* dmax, const char* rsign, const char* upper,
             const char* sim, float* ds, const MKL_INT* modes,
             const float* conds, const MKL_INT* kl, const MKL_INT* ku,
             const float* anorm, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* work, MKL_INT* info );
void CLATME_( const MKL_INT* n, const char* dist, MKL_INT* iseed,
              MKL_Complex8* d, const MKL_INT* mode, const float* cond,
              const MKL_Complex8* dmax, const char* rsign, const char* upper,
              const char* sim, float* ds, const MKL_INT* modes,
              const float* conds, const MKL_INT* kl, const MKL_INT* ku,
              const float* anorm, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* work, MKL_INT* info );
void clatme( const MKL_INT* n, const char* dist, MKL_INT* iseed,
             MKL_Complex8* d, const MKL_INT* mode, const float* cond,
             const MKL_Complex8* dmax, const char* rsign, const char* upper,
             const char* sim, float* ds, const MKL_INT* modes,
             const float* conds, const MKL_INT* kl, const MKL_INT* ku,
             const float* anorm, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* work, MKL_INT* info );
void clatme_( const MKL_INT* n, const char* dist, MKL_INT* iseed,
              MKL_Complex8* d, const MKL_INT* mode, const float* cond,
              const MKL_Complex8* dmax, const char* rsign, const char* upper,
              const char* sim, float* ds, const MKL_INT* modes,
              const float* conds, const MKL_INT* kl, const MKL_INT* ku,
              const float* anorm, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* work, MKL_INT* info );

void ZLATME( const MKL_INT* n, const char* dist, MKL_INT* iseed,
             MKL_Complex16* d, const MKL_INT* mode, const double* cond,
             const MKL_Complex16* dmax, const char* rsign, const char* upper,
             const char* sim, double* ds, const MKL_INT* modes,
             const double* conds, const MKL_INT* kl, const MKL_INT* ku,
             const double* anorm, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* work, MKL_INT* info );
void ZLATME_( const MKL_INT* n, const char* dist, MKL_INT* iseed,
              MKL_Complex16* d, const MKL_INT* mode, const double* cond,
              const MKL_Complex16* dmax, const char* rsign, const char* upper,
              const char* sim, double* ds, const MKL_INT* modes,
              const double* conds, const MKL_INT* kl, const MKL_INT* ku,
              const double* anorm, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* work, MKL_INT* info );
void zlatme( const MKL_INT* n, const char* dist, MKL_INT* iseed,
             MKL_Complex16* d, const MKL_INT* mode, const double* cond,
             const MKL_Complex16* dmax, const char* rsign, const char* upper,
             const char* sim, double* ds, const MKL_INT* modes,
             const double* conds, const MKL_INT* kl, const MKL_INT* ku,
             const double* anorm, MKL_Complex16* a, const MKL_INT* lda,
             MKL_Complex16* work, MKL_INT* info );
void zlatme_( const MKL_INT* n, const char* dist, MKL_INT* iseed,
              MKL_Complex16* d, const MKL_INT* mode, const double* cond,
              const MKL_Complex16* dmax, const char* rsign, const char* upper,
              const char* sim, double* ds, const MKL_INT* modes,
              const double* conds, const MKL_INT* kl, const MKL_INT* ku,
              const double* anorm, MKL_Complex16* a, const MKL_INT* lda,
              MKL_Complex16* work, MKL_INT* info );

void DLATMR( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, double* d, const MKL_INT* mode,
             const double* cond, const double* dmax, const char* rsign,
             const char* grade, double* dl, const MKL_INT* model,
             const double* condl, double* dr, const MKL_INT* moder,
             const double* condr, const char* pivtng, const MKL_INT* ipivot,
             const MKL_INT* kl, const MKL_INT* ku, const double* sparse,
             const double* anorm, const char* pack, double* a,
             const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );
void DLATMR_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const char* rsign, const char* grade, double* dl,
              const MKL_INT* model, const double* condl, double* dr,
              const MKL_INT* moder, const double* condr, const char* pivtng,
              const MKL_INT* ipivot, const MKL_INT* kl, const MKL_INT* ku,
              const double* sparse, const double* anorm, const char* pack,
              double* a, const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );
void dlatmr( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, double* d, const MKL_INT* mode,
             const double* cond, const double* dmax, const char* rsign,
             const char* grade, double* dl, const MKL_INT* model,
             const double* condl, double* dr, const MKL_INT* moder,
             const double* condr, const char* pivtng, const MKL_INT* ipivot,
             const MKL_INT* kl, const MKL_INT* ku, const double* sparse,
             const double* anorm, const char* pack, double* a,
             const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );
void dlatmr_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const char* rsign, const char* grade, double* dl,
              const MKL_INT* model, const double* condl, double* dr,
              const MKL_INT* moder, const double* condr, const char* pivtng,
              const MKL_INT* ipivot, const MKL_INT* kl, const MKL_INT* ku,
              const double* sparse, const double* anorm, const char* pack,
              double* a, const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );

void SLATMR( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, const float* d,
             const MKL_INT* mode, const float* cond, const float* dmax,
             const char* rsign, const char* grade, float* dl,
             const MKL_INT* model, const float* condl, float* dr,
             const MKL_INT* moder, const float* condr, const char* pivtng,
             const MKL_INT* ipivot, const MKL_INT* kl, const MKL_INT* ku,
             const float* sparse, const float* anorm, const char* pack,
             float* a, const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );
void SLATMR_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, const float* d,
              const MKL_INT* mode, const float* cond, const float* dmax,
              const char* rsign, const char* grade, float* dl,
              const MKL_INT* model, const float* condl, float* dr,
              const MKL_INT* moder, const float* condr, const char* pivtng,
              const MKL_INT* ipivot, const MKL_INT* kl, const MKL_INT* ku,
              const float* sparse, const float* anorm, const char* pack,
              float* a, const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );
void slatmr( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, const float* d,
             const MKL_INT* mode, const float* cond, const float* dmax,
             const char* rsign, const char* grade, float* dl,
             const MKL_INT* model, const float* condl, float* dr,
             const MKL_INT* moder, const float* condr, const char* pivtng,
             const MKL_INT* ipivot, const MKL_INT* kl, const MKL_INT* ku,
             const float* sparse, const float* anorm, const char* pack,
             float* a, const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );
void slatmr_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, const float* d,
              const MKL_INT* mode, const float* cond, const float* dmax,
              const char* rsign, const char* grade, float* dl,
              const MKL_INT* model, const float* condl, float* dr,
              const MKL_INT* moder, const float* condr, const char* pivtng,
              const MKL_INT* ipivot, const MKL_INT* kl, const MKL_INT* ku,
              const float* sparse, const float* anorm, const char* pack,
              float* a, const MKL_INT* lda, MKL_INT* iwork, MKL_INT* info );

void CLATMR( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, MKL_Complex8* d,
             const MKL_INT* mode, const float* cond,
             const MKL_Complex8* dmax, const char* rsign, const char* grade,
             MKL_Complex8* dl, const MKL_INT* model, const float* condl,
             MKL_Complex8* dr, const MKL_INT* moder, const float* condr,
             const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
             const MKL_INT* ku, const float* sparse, const float* anorm,
             const char* pack, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* iwork, MKL_INT* info );
void CLATMR_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, MKL_Complex8* d,
              const MKL_INT* mode, const float* cond,
              const MKL_Complex8* dmax, const char* rsign, const char* grade,
              MKL_Complex8* dl, const MKL_INT* model, const float* condl,
              MKL_Complex8* dr, const MKL_INT* moder, const float* condr,
              const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
              const MKL_INT* ku, const float* sparse, const float* anorm,
              const char* pack, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* iwork, MKL_INT* info );
void clatmr( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, MKL_Complex8* d,
             const MKL_INT* mode, const float* cond,
             const MKL_Complex8* dmax, const char* rsign, const char* grade,
             MKL_Complex8* dl, const MKL_INT* model, const float* condl,
             MKL_Complex8* dr, const MKL_INT* moder, const float* condr,
             const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
             const MKL_INT* ku, const float* sparse, const float* anorm,
             const char* pack, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* iwork, MKL_INT* info );
void clatmr_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, MKL_Complex8* d,
              const MKL_INT* mode, const float* cond,
              const MKL_Complex8* dmax, const char* rsign, const char* grade,
              MKL_Complex8* dl, const MKL_INT* model, const float* condl,
              MKL_Complex8* dr, const MKL_INT* moder, const float* condr,
              const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
              const MKL_INT* ku, const float* sparse, const float* anorm,
              const char* pack, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* iwork, MKL_INT* info );

void ZLATMR( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, MKL_Complex16* d,
             const MKL_INT* mode, const double* cond,
             const MKL_Complex16* dmax, const char* rsign, const char* grade,
             MKL_Complex16* dl, const MKL_INT* model, const double* condl,
             MKL_Complex16* dr, const MKL_INT* moder, const double* condr,
             const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
             const MKL_INT* ku, const double* sparse, const double* anorm,
             const char* pack, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* iwork, MKL_INT* info );
void ZLATMR_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, MKL_Complex16* d,
              const MKL_INT* mode, const double* cond,
              const MKL_Complex16* dmax, const char* rsign, const char* grade,
              MKL_Complex16* dl, const MKL_INT* model, const double* condl,
              MKL_Complex16* dr, const MKL_INT* moder, const double* condr,
              const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
              const MKL_INT* ku, const double* sparse, const double* anorm,
              const char* pack, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* iwork, MKL_INT* info );
void zlatmr( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, MKL_Complex16* d,
             const MKL_INT* mode, const double* cond,
             const MKL_Complex16* dmax, const char* rsign, const char* grade,
             MKL_Complex16* dl, const MKL_INT* model, const double* condl,
             MKL_Complex16* dr, const MKL_INT* moder, const double* condr,
             const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
             const MKL_INT* ku, const double* sparse, const double* anorm,
             const char* pack, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* iwork, MKL_INT* info );
void zlatmr_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, MKL_Complex16* d,
              const MKL_INT* mode, const double* cond,
              const MKL_Complex16* dmax, const char* rsign, const char* grade,
              MKL_Complex16* dl, const MKL_INT* model, const double* condl,
              MKL_Complex16* dr, const MKL_INT* moder, const double* condr,
              const char* pivtng, const MKL_INT* ipivot, const MKL_INT* kl,
              const MKL_INT* ku, const double* sparse, const double* anorm,
              const char* pack, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* iwork, MKL_INT* info );

void DLATMS( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, double* d, const MKL_INT* mode,
             const double* cond, const double* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, double* a,
             const MKL_INT* lda, double* work, MKL_INT* info );
void DLATMS_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const MKL_INT* kl, const MKL_INT* ku, const char* pack,
              double* a, const MKL_INT* lda, double* work, MKL_INT* info );
void dlatms( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, double* d, const MKL_INT* mode,
             const double* cond, const double* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, double* a,
             const MKL_INT* lda, double* work, MKL_INT* info );
void dlatms_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const MKL_INT* kl, const MKL_INT* ku, const char* pack,
              double* a, const MKL_INT* lda, double* work, MKL_INT* info );

void SLATMS( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
             const float* cond, const float* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, float* a,
             const MKL_INT* lda, float* work, MKL_INT* info );
void SLATMS_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
              const float* cond, const float* dmax, const MKL_INT* kl,
              const MKL_INT* ku, const char* pack, float* a,
              const MKL_INT* lda, float* work, MKL_INT* info );
void slatms( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
             const float* cond, const float* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, float* a,
             const MKL_INT* lda, float* work, MKL_INT* info );
void slatms_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
              const float* cond, const float* dmax, const MKL_INT* kl,
              const MKL_INT* ku, const char* pack, float* a,
              const MKL_INT* lda, float* work, MKL_INT* info );

void CLATMS( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
             const float* cond, const float* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* work, MKL_INT* info );
void CLATMS_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
              const float* cond, const float* dmax, const MKL_INT* kl,
              const MKL_INT* ku, const char* pack, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* work, MKL_INT* info );
void clatms( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
             const float* cond, const float* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, MKL_Complex8* a,
             const MKL_INT* lda, MKL_Complex8* work, MKL_INT* info );
void clatms_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, float* d, const MKL_INT* mode,
              const float* cond, const float* dmax, const MKL_INT* kl,
              const MKL_INT* ku, const char* pack, MKL_Complex8* a,
              const MKL_INT* lda, MKL_Complex8* work, MKL_INT* info );

void ZLATMS( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, double* d, const MKL_INT* mode,
             const double* cond, const double* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* work, MKL_INT* info );
void ZLATMS_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const MKL_INT* kl, const MKL_INT* ku, const char* pack,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* work,
              MKL_INT* info );
void zlatms( const MKL_INT* m, const MKL_INT* n, const char* dist,
             MKL_INT* iseed, const char* sym, double* d, const MKL_INT* mode,
             const double* cond, const double* dmax, const MKL_INT* kl,
             const MKL_INT* ku, const char* pack, MKL_Complex16* a,
             const MKL_INT* lda, MKL_Complex16* work, MKL_INT* info );
void zlatms_( const MKL_INT* m, const MKL_INT* n, const char* dist,
              MKL_INT* iseed, const char* sym, double* d,
              const MKL_INT* mode, const double* cond, const double* dmax,
              const MKL_INT* kl, const MKL_INT* ku, const char* pack,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* work,
              MKL_INT* info );

void DLAKF2( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* b, const double* d,
             const double* e, double* z, const MKL_INT* ldz );
void DLAKF2_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* b, const double* d,
              const double* e, double* z, const MKL_INT* ldz );
void dlakf2( const MKL_INT* m, const MKL_INT* n, const double* a,
             const MKL_INT* lda, const double* b, const double* d,
             const double* e, double* z, const MKL_INT* ldz );
void dlakf2_( const MKL_INT* m, const MKL_INT* n, const double* a,
              const MKL_INT* lda, const double* b, const double* d,
              const double* e, double* z, const MKL_INT* ldz );

void SLAKF2( const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* b, const float* d,
             const float* e, float* z, const MKL_INT* ldz );
void SLAKF2_( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* b, const float* d,
              const float* e, float* z, const MKL_INT* ldz );
void slakf2( const MKL_INT* m, const MKL_INT* n, const float* a,
             const MKL_INT* lda, const float* b, const float* d,
             const float* e, float* z, const MKL_INT* ldz );
void slakf2_( const MKL_INT* m, const MKL_INT* n, const float* a,
              const MKL_INT* lda, const float* b, const float* d,
              const float* e, float* z, const MKL_INT* ldz );

void CLAKF2( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* b,
             const MKL_Complex8* d, const MKL_Complex8* e, MKL_Complex8* z,
             const MKL_INT* ldz );
void CLAKF2_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* b,
              const MKL_Complex8* d, const MKL_Complex8* e, MKL_Complex8* z,
              const MKL_INT* ldz );
void clakf2( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
             const MKL_INT* lda, const MKL_Complex8* b,
             const MKL_Complex8* d, const MKL_Complex8* e, MKL_Complex8* z,
             const MKL_INT* ldz );
void clakf2_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex8* a,
              const MKL_INT* lda, const MKL_Complex8* b,
              const MKL_Complex8* d, const MKL_Complex8* e, MKL_Complex8* z,
              const MKL_INT* ldz );

void ZLAKF2( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_Complex16* d, const MKL_Complex16* e,
             MKL_Complex16* z, const MKL_INT* ldz );
void ZLAKF2_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_Complex16* d, const MKL_Complex16* e,
              MKL_Complex16* z, const MKL_INT* ldz );
void zlakf2( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
             const MKL_INT* lda, const MKL_Complex16* b,
             const MKL_Complex16* d, const MKL_Complex16* e,
             MKL_Complex16* z, const MKL_INT* ldz );
void zlakf2_( const MKL_INT* m, const MKL_INT* n, const MKL_Complex16* a,
              const MKL_INT* lda, const MKL_Complex16* b,
              const MKL_Complex16* d, const MKL_Complex16* e,
              MKL_Complex16* z, const MKL_INT* ldz );

void DLARGE( const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* iseed, double* work, MKL_INT* info );
void DLARGE_( const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* iseed, double* work, MKL_INT* info );
void dlarge( const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* iseed, double* work, MKL_INT* info );
void dlarge_( const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* iseed, double* work, MKL_INT* info );

void SLARGE( const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* iseed,
             float* work, MKL_INT* info );
void SLARGE_( const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* iseed, float* work, MKL_INT* info );
void slarge( const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* iseed,
             float* work, MKL_INT* info );
void slarge_( const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* iseed, float* work, MKL_INT* info );

void CLARGE( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex8* work, MKL_INT* info );
void CLARGE_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex8* work, MKL_INT* info );
void clarge( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex8* work, MKL_INT* info );
void clarge_( const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex8* work, MKL_INT* info );

void ZLARGE( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex16* work, MKL_INT* info );
void ZLARGE_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex16* work, MKL_INT* info );
void zlarge( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex16* work, MKL_INT* info );
void zlarge_( const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex16* work, MKL_INT* info );

double DLARND( const MKL_INT* idist, MKL_INT* iseed );
double DLARND_( const MKL_INT* idist, MKL_INT* iseed );
double dlarnd( const MKL_INT* idist, MKL_INT* iseed );
double dlarnd_( const MKL_INT* idist, MKL_INT* iseed );

float SLARND( const MKL_INT* idist, MKL_INT* iseed );
float SLARND_( const MKL_INT* idist, MKL_INT* iseed );
float slarnd( const MKL_INT* idist, MKL_INT* iseed );
float slarnd_( const MKL_INT* idist, MKL_INT* iseed );

void CLARND( MKL_Complex8* retval, const MKL_INT* idist, MKL_INT* iseed );
void CLARND_( MKL_Complex8* retval, const MKL_INT* idist, MKL_INT* iseed );
void clarnd( MKL_Complex8* retval, const MKL_INT* idist, MKL_INT* iseed );
void clarnd_( MKL_Complex8* retval, const MKL_INT* idist, MKL_INT* iseed );

void ZLARND( MKL_Complex16* retval, const MKL_INT* idist, MKL_INT* iseed );
void ZLARND_( MKL_Complex16* retval, const MKL_INT* idist, MKL_INT* iseed );
void zlarnd( MKL_Complex16* retval, const MKL_INT* idist, MKL_INT* iseed );
void zlarnd_( MKL_Complex16* retval, const MKL_INT* idist, MKL_INT* iseed );

void DLAROR( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* iseed, double* x, MKL_INT* info );
void DLAROR_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* iseed, double* x, MKL_INT* info );
void dlaror( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, double* a, const MKL_INT* lda,
             MKL_INT* iseed, double* x, MKL_INT* info );
void dlaror_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, double* a, const MKL_INT* lda,
              MKL_INT* iseed, double* x, MKL_INT* info );

void SLAROR( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* iseed,
             float* x, MKL_INT* info );
void SLAROR_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* iseed, float* x, MKL_INT* info );
void slaror( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, float* a, const MKL_INT* lda, MKL_INT* iseed,
             float* x, MKL_INT* info );
void slaror_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, float* a, const MKL_INT* lda,
              MKL_INT* iseed, float* x, MKL_INT* info );

void CLAROR( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex8* x, MKL_INT* info );
void CLAROR_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex8* x, MKL_INT* info );
void claror( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex8* x, MKL_INT* info );
void claror_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex8* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex8* x, MKL_INT* info );

void ZLAROR( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex16* x, MKL_INT* info );
void ZLAROR_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex16* x, MKL_INT* info );
void zlaror( const char* side, const char* init, const MKL_INT* m,
             const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
             MKL_INT* iseed, MKL_Complex16* x, MKL_INT* info );
void zlaror_( const char* side, const char* init, const MKL_INT* m,
              const MKL_INT* n, MKL_Complex16* a, const MKL_INT* lda,
              MKL_INT* iseed, MKL_Complex16* x, MKL_INT* info );

void DLAROT( const MKL_INT* lrows, const MKL_INT* lleft,
             const MKL_INT* lright, const MKL_INT* nl, const double* c,
             const double* s, double* a, const MKL_INT* lda, double* xleft,
             double* xright );
void DLAROT_( const MKL_INT* lrows, const MKL_INT* lleft,
              const MKL_INT* lright, const MKL_INT* nl, const double* c,
              const double* s, double* a, const MKL_INT* lda, double* xleft,
              double* xright );
void dlarot( const MKL_INT* lrows, const MKL_INT* lleft,
             const MKL_INT* lright, const MKL_INT* nl, const double* c,
             const double* s, double* a, const MKL_INT* lda, double* xleft,
             double* xright );
void dlarot_( const MKL_INT* lrows, const MKL_INT* lleft,
              const MKL_INT* lright, const MKL_INT* nl, const double* c,
              const double* s, double* a, const MKL_INT* lda, double* xleft,
              double* xright );

void SLAROT( const MKL_INT* lrows, const MKL_INT* lleft,
             const MKL_INT* lright, const MKL_INT* nl, const float* c,
             const float* s, float* a, const MKL_INT* lda, float* xleft,
             float* xright );
void SLAROT_( const MKL_INT* lrows, const MKL_INT* lleft,
              const MKL_INT* lright, const MKL_INT* nl, const float* c,
              const float* s, float* a, const MKL_INT* lda, float* xleft,
              float* xright );
void slarot( const MKL_INT* lrows, const MKL_INT* lleft,
             const MKL_INT* lright, const MKL_INT* nl, const float* c,
             const float* s, float* a, const MKL_INT* lda, float* xleft,
             float* xright );
void slarot_( const MKL_INT* lrows, const MKL_INT* lleft,
              const MKL_INT* lright, const MKL_INT* nl, const float* c,
              const float* s, float* a, const MKL_INT* lda, float* xleft,
              float* xright );

void CLAROT( const MKL_INT* lrows, const MKL_INT* lleft, MKL_INT* lright,
             const MKL_INT* nl, const MKL_Complex8* c,
             const MKL_Complex8* s, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* xleft, MKL_Complex8* xright );
void CLAROT_( const MKL_INT* lrows, const MKL_INT* lleft, MKL_INT* lright,
              const MKL_INT* nl, const MKL_Complex8* c,
              const MKL_Complex8* s, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* xleft, MKL_Complex8* xright );
void clarot( const MKL_INT* lrows, const MKL_INT* lleft, MKL_INT* lright,
             const MKL_INT* nl, const MKL_Complex8* c,
             const MKL_Complex8* s, MKL_Complex8* a, const MKL_INT* lda,
             MKL_Complex8* xleft, MKL_Complex8* xright );
void clarot_( const MKL_INT* lrows, const MKL_INT* lleft, MKL_INT* lright,
              const MKL_INT* nl, const MKL_Complex8* c,
              const MKL_Complex8* s, MKL_Complex8* a, const MKL_INT* lda,
              MKL_Complex8* xleft, MKL_Complex8* xright );

void ZLAROT( const MKL_INT* lrows, const MKL_INT* lleft,
             const MKL_INT* lright, const MKL_INT* nl,
             const MKL_Complex16* c, const MKL_Complex16* s,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* xleft,
             MKL_Complex16* xright );
void ZLAROT_( const MKL_INT* lrows, const MKL_INT* lleft,
              const MKL_INT* lright, const MKL_INT* nl,
              const MKL_Complex16* c, const MKL_Complex16* s,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* xleft,
              MKL_Complex16* xright );
void zlarot( const MKL_INT* lrows, const MKL_INT* lleft,
             const MKL_INT* lright, const MKL_INT* nl,
             const MKL_Complex16* c, const MKL_Complex16* s,
             MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* xleft,
             MKL_Complex16* xright );
void zlarot_( const MKL_INT* lrows, const MKL_INT* lleft,
              const MKL_INT* lright, const MKL_INT* nl,
              const MKL_Complex16* c, const MKL_Complex16* s,
              MKL_Complex16* a, const MKL_INT* lda, MKL_Complex16* xleft,
              MKL_Complex16* xright );

double DLARAN( MKL_INT* iseed );
double DLARAN_( MKL_INT* iseed );
double dlaran( MKL_INT* iseed );
double dlaran_( MKL_INT* iseed );

float SLARAN( MKL_INT* iseed );
float SLARAN_( MKL_INT* iseed );
float slaran( MKL_INT* iseed );
float slaran_( MKL_INT* iseed );

void DLAGGE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* d, double* a,
             const MKL_INT* lda, MKL_INT* iseed, double* work,
             MKL_INT* info );
void DLAGGE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* d, double* a,
              const MKL_INT* lda, MKL_INT* iseed, double* work,
              MKL_INT* info );
void dlagge( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* d, double* a,
             const MKL_INT* lda, MKL_INT* iseed, double* work,
             MKL_INT* info );
void dlagge_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* d, double* a,
              const MKL_INT* lda, MKL_INT* iseed, double* work,
              MKL_INT* info );

void SLAGGE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* d, float* a, const MKL_INT* lda,
             MKL_INT* iseed, float* work, MKL_INT* info );
void SLAGGE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* d, float* a,
              const MKL_INT* lda, MKL_INT* iseed, float* work,
              MKL_INT* info );
void slagge( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* d, float* a, const MKL_INT* lda,
             MKL_INT* iseed, float* work, MKL_INT* info );
void slagge_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* d, float* a,
              const MKL_INT* lda, MKL_INT* iseed, float* work,
              MKL_INT* info );

void CLAGGE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* d, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* iseed, MKL_Complex8* work,
             MKL_INT* info );
void CLAGGE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* d, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* iseed, MKL_Complex8* work,
              MKL_INT* info );
void clagge( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const float* d, MKL_Complex8* a,
             const MKL_INT* lda, MKL_INT* iseed, MKL_Complex8* work,
             MKL_INT* info );
void clagge_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const float* d, MKL_Complex8* a,
              const MKL_INT* lda, MKL_INT* iseed, MKL_Complex8* work,
              MKL_INT* info );

void ZLAGGE( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* d, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* iseed, MKL_Complex16* work,
             MKL_INT* info );
void ZLAGGE_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* d, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* iseed, MKL_Complex16* work,
              MKL_INT* info );
void zlagge( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
             const MKL_INT* ku, const double* d, MKL_Complex16* a,
             const MKL_INT* lda, MKL_INT* iseed, MKL_Complex16* work,
             MKL_INT* info );
void zlagge_( const MKL_INT* m, const MKL_INT* n, const MKL_INT* kl,
              const MKL_INT* ku, const double* d, MKL_Complex16* a,
              const MKL_INT* lda, MKL_INT* iseed, MKL_Complex16* work,
              MKL_INT* info );

void CLAGSY( const MKL_INT* n, const MKL_INT* k, const float* d,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex8* work, MKL_INT* info );
void CLAGSY_( const MKL_INT* n, const MKL_INT* k, const float* d,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex8* work, MKL_INT* info );
void clagsy( const MKL_INT* n, const MKL_INT* k, const float* d,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex8* work, MKL_INT* info );
void clagsy_( const MKL_INT* n, const MKL_INT* k, const float* d,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex8* work, MKL_INT* info );

void DLAGSY( const MKL_INT* n, const MKL_INT* k, const double* d,
             double* a, const MKL_INT* lda, MKL_INT* iseed, double* work,
             MKL_INT* info );
void DLAGSY_( const MKL_INT* n, const MKL_INT* k, const double* d,
              double* a, const MKL_INT* lda, MKL_INT* iseed, double* work,
              MKL_INT* info );
void dlagsy( const MKL_INT* n, const MKL_INT* k, const double* d,
             double* a, const MKL_INT* lda, MKL_INT* iseed, double* work,
             MKL_INT* info );
void dlagsy_( const MKL_INT* n, const MKL_INT* k, const double* d,
              double* a, const MKL_INT* lda, MKL_INT* iseed, double* work,
              MKL_INT* info );

void SLAGSY( const MKL_INT* n, const MKL_INT* k, const float* d,
             float* a, const MKL_INT* lda, MKL_INT* iseed, float* work,
             MKL_INT* info );
void SLAGSY_( const MKL_INT* n, const MKL_INT* k, const float* d,
             float* a, const MKL_INT* lda, MKL_INT* iseed, float* work,
             MKL_INT* info );
void slagsy( const MKL_INT* n, const MKL_INT* k, const float* d,
             float* a, const MKL_INT* lda, MKL_INT* iseed, float* work,
             MKL_INT* info );
void slagsy_( const MKL_INT* n, const MKL_INT* k, const float* d,
             float* a, const MKL_INT* lda, MKL_INT* iseed, float* work,
             MKL_INT* info );

void ZLAGSY( const MKL_INT* n, const MKL_INT* k, const double* d,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex16* work, MKL_INT* info );
void ZLAGSY_( const MKL_INT* n, const MKL_INT* k, const double* d,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex16* work, MKL_INT* info );
void zlagsy( const MKL_INT* n, const MKL_INT* k, const double* d,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex16* work, MKL_INT* info );
void zlagsy_( const MKL_INT* n, const MKL_INT* k, const double* d,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex16* work, MKL_INT* info );

void CLAGHE( const MKL_INT* n, const MKL_INT* k, const float* d,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex8* work, MKL_INT* info );
void CLAGHE_( const MKL_INT* n, const MKL_INT* k, const float* d,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
              MKL_Complex8* work, MKL_INT* info );
void claghe( const MKL_INT* n, const MKL_INT* k, const float* d,
             MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex8* work, MKL_INT* info );
void claghe_( const MKL_INT* n, const MKL_INT* k, const float* d,
              MKL_Complex8* a, const MKL_INT* lda, MKL_INT* iseed,
              MKL_Complex8* work, MKL_INT* info );

void ZLAGHE( const MKL_INT* n, const MKL_INT* k, const double* d,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex16* work, MKL_INT* info );
void ZLAGHE_( const MKL_INT* n, const MKL_INT* k, const double* d,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
              MKL_Complex16* work, MKL_INT* info );
void zlaghe( const MKL_INT* n, const MKL_INT* k, const double* d,
             MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
             MKL_Complex16* work, MKL_INT* info );
void zlaghe_( const MKL_INT* n, const MKL_INT* k, const double* d,
              MKL_Complex16* a, const MKL_INT* lda, MKL_INT* iseed,
              MKL_Complex16* work, MKL_INT* info );

/* Intel(R) MKL extensions */

void MKL_CSPFFRT2(  MKL_Complex8 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex8 *work, MKL_Complex8 *work2 );
void mkl_cspffrt2(  MKL_Complex8 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex8 *work, MKL_Complex8 *work2 );
void mkl_cspffrt2_( MKL_Complex8 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex8 *work, MKL_Complex8 *work2 );
void MKL_CSPFFRTX(  MKL_Complex8 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex8 *work, MKL_Complex8 *work2 );
void mkl_cspffrtx(  MKL_Complex8 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex8 *work, MKL_Complex8 *work2 );
void mkl_cspffrtx_( MKL_Complex8 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex8 *work, MKL_Complex8 *work2 );
void MKL_DSPFFRT2(  double *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    double *work, double *work2 );
void mkl_dspffrt2(  double *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    double *work, double *work2 );
void mkl_dspffrt2_( double *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    double *work, double *work2 );
void MKL_DSPFFRTX(  double *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    double *work, double *work2 );
void mkl_dspffrtx(  double *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    double *work, double *work2 );
void mkl_dspffrtx_( double *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    double *work, double *work2 );
void MKL_SSPFFRT2(  float *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    float *work, float *work2 );
void mkl_sspffrt2(  float *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    float *work, float *work2 );
void mkl_sspffrt2_( float *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    float *work, float *work2 );
void MKL_SSPFFRTX(  float *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    float *work, float *work2 );
void mkl_sspffrtx(  float *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    float *work, float *work2 );
void mkl_sspffrtx_( float *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    float *work, float *work2 );
void MKL_ZSPFFRT2(  MKL_Complex16 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex16 *work, MKL_Complex16 *work2 );
void mkl_zspffrt2(  MKL_Complex16 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex16 *work, MKL_Complex16 *work2 );
void mkl_zspffrt2_( MKL_Complex16 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex16 *work, MKL_Complex16 *work2 );
void MKL_ZSPFFRTX(  MKL_Complex16 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex16 *work, MKL_Complex16 *work2 );
void mkl_zspffrtx(  MKL_Complex16 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex16 *work, MKL_Complex16 *work2 );
void mkl_zspffrtx_( MKL_Complex16 *ap, const MKL_INT *n, const MKL_INT *ncolm,
                    MKL_Complex16 *work, MKL_Complex16 *work2 );

/* Intel(R) MKL Progress routine */

#ifndef _MKL_PROGRESS_H_
#define _MKL_PROGRESS_H_
int MKL_PROGRESS( int* thread, int* step, char* stage, int lstage );
int MKL_PROGRESS_( int* thread, int* step, char* stage, int lstage );
int mkl_progress( int* thread, int* step, char* stage, int lstage );
int mkl_progress_( int* thread, int* step, char* stage, int lstage );
#endif /* _MKL_PROGRESS_H_ */

#endif /* MKL_STDCALL */
#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _MKL_LAPACK_H_ */
