#ifndef NVPL_LAPACK_H
#define NVPL_LAPACK_H

// clang-format off

#include "nvpl_lapack_version.h"
#include "nvpl_lapack_service.h"
#include "nvpl_lapack_types.h"
#include "nvpl_lapacke.h"

#ifndef NVPL_LAPACK_CONFIG_H_FILE
#define NVPL_LAPACK_CONFIG_H_FILE "nvpl_lapack_config.h"
#endif

#include NVPL_LAPACK_CONFIG_H_FILE

#ifndef NVPL_LAPACK_DISABLE_DEPRECATION_WARNING
#  ifdef __GNUC__
#    define NVPL_LAPACK_DEPRECATION_WARNING(name) __attribute__((deprecated("Routine " #name " has been deprecated. Consider using the recommended replacements.")))
#  else
#    define NVPL_LAPACK_DEPRECATION_WARNING(name)
#  endif
#else
#  define NVPL_LAPACK_DEPRECATION_WARNING(name)
#endif

#if defined(_WIN32)
#  define NVPL_LAPACK_DLL_EXPORT __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#  define NVPL_LAPACK_DLL_EXPORT __attribute__((visibility("default")))
#else
#  define NVPL_LAPACK_DLL_EXPORT
#endif

#define NVPL_LAPACK_DEPRECATED_API(name)   NVPL_LAPACK_DLL_EXPORT NVPL_LAPACK_DEPRECATION_WARNING(name)
#define NVPL_LAPACK_API                    NVPL_LAPACK_DLL_EXPORT

#define NVPL_LAPACK_GLOBAL(name,NAME) name##_

#include <stdlib.h>
#include <stdarg.h>
#include <inttypes.h>

/* f2c, hence cnvpl_lapack and MacOS Accelerate, returns double instead of float
 * for sdot, slange, clange, etc. */
#if defined(NVPL_LAPACK_F2C)
    typedef double nvpl_lapack_float_return;
#else
    typedef float nvpl_lapack_float_return;
#endif

#ifdef __cplusplus
extern "C" {
#endif


/* Callback logical functions of one, two, or three arguments are used
*  to select eigenvalues to sort to the top left of the Schur form.
*  The value is selected if function returns TRUE (non-zero). */

typedef nvpl_lapack_logical (*NVPL_LAPACK_S_SELECT2) ( const float*, const float* );
typedef nvpl_lapack_logical (*NVPL_LAPACK_S_SELECT3)
    ( const float*, const float*, const float* );
typedef nvpl_lapack_logical (*NVPL_LAPACK_D_SELECT2) ( const double*, const double* );
typedef nvpl_lapack_logical (*NVPL_LAPACK_D_SELECT3)
    ( const double*, const double*, const double* );

typedef nvpl_lapack_logical (*NVPL_LAPACK_C_SELECT1) ( const nvpl_scomplex_t* );
typedef nvpl_lapack_logical (*NVPL_LAPACK_C_SELECT2)
    ( const nvpl_scomplex_t*, const nvpl_scomplex_t* );
typedef nvpl_lapack_logical (*NVPL_LAPACK_Z_SELECT1) ( const nvpl_dcomplex_t* );
typedef nvpl_lapack_logical (*NVPL_LAPACK_Z_SELECT2)
    ( const nvpl_dcomplex_t*, const nvpl_dcomplex_t* );

/*----------------------------------------------------------------------------*/
/* This is in alphabetical order (ignoring leading precision). */

#define NVPL_LAPACK_cbbcsd_base NVPL_LAPACK_GLOBAL(cbbcsd,CBBCSD)
void NVPL_LAPACK_cbbcsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    float* theta,
    float* phi,
    nvpl_scomplex_t* U1, nvpl_int_t const* ldu1,
    nvpl_scomplex_t* U2, nvpl_int_t const* ldu2,
    nvpl_scomplex_t* V1T, nvpl_int_t const* ldv1t,
    nvpl_scomplex_t* V2T, nvpl_int_t const* ldv2t,
    float* B11D,
    float* B11E,
    float* B12D,
    float* B12E,
    float* B21D,
    float* B21E,
    float* B22D,
    float* B22E,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cbbcsd(...) NVPL_LAPACK_cbbcsd_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cbbcsd(...) NVPL_LAPACK_cbbcsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dbbcsd_base NVPL_LAPACK_GLOBAL(dbbcsd,DBBCSD)
void NVPL_LAPACK_dbbcsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    double* theta,
    double* phi,
    double* U1, nvpl_int_t const* ldu1,
    double* U2, nvpl_int_t const* ldu2,
    double* V1T, nvpl_int_t const* ldv1t,
    double* V2T, nvpl_int_t const* ldv2t,
    double* B11D,
    double* B11E,
    double* B12D,
    double* B12E,
    double* b21d,
    double* b21e,
    double* b22d,
    double* b22e,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dbbcsd(...) NVPL_LAPACK_dbbcsd_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dbbcsd(...) NVPL_LAPACK_dbbcsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sbbcsd_base NVPL_LAPACK_GLOBAL(sbbcsd,SBBCSD)
void NVPL_LAPACK_sbbcsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    float* theta,
    float* phi,
    float* U1, nvpl_int_t const* ldu1,
    float* U2, nvpl_int_t const* ldu2,
    float* V1T, nvpl_int_t const* ldv1t,
    float* V2T, nvpl_int_t const* ldv2t,
    float* B11D,
    float* B11E,
    float* B12D,
    float* B12E,
    float* B21D,
    float* B21E,
    float* B22D,
    float* B22E,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sbbcsd(...) NVPL_LAPACK_sbbcsd_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sbbcsd(...) NVPL_LAPACK_sbbcsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zbbcsd_base NVPL_LAPACK_GLOBAL(zbbcsd,ZBBCSD)
void NVPL_LAPACK_zbbcsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    double* theta,
    double* phi,
    nvpl_dcomplex_t* U1, nvpl_int_t const* ldu1,
    nvpl_dcomplex_t* U2, nvpl_int_t const* ldu2,
    nvpl_dcomplex_t* V1T, nvpl_int_t const* ldv1t,
    nvpl_dcomplex_t* V2T, nvpl_int_t const* ldv2t,
    double* B11D,
    double* B11E,
    double* B12D,
    double* B12E,
    double* B21D,
    double* B21E,
    double* B22D,
    double* B22E,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zbbcsd(...) NVPL_LAPACK_zbbcsd_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zbbcsd(...) NVPL_LAPACK_zbbcsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dbdsdc_base NVPL_LAPACK_GLOBAL(dbdsdc,DBDSDC)
void NVPL_LAPACK_dbdsdc_base(
    char const* uplo, char const* compq,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double* U, nvpl_int_t const* ldu,
    double* VT, nvpl_int_t const* ldvt,
    double* Q, nvpl_int_t* IQ,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dbdsdc(...) NVPL_LAPACK_dbdsdc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dbdsdc(...) NVPL_LAPACK_dbdsdc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sbdsdc_base NVPL_LAPACK_GLOBAL(sbdsdc,SBDSDC)
void NVPL_LAPACK_sbdsdc_base(
    char const* uplo, char const* compq,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float* U, nvpl_int_t const* ldu,
    float* VT, nvpl_int_t const* ldvt,
    float* Q, nvpl_int_t* IQ,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sbdsdc(...) NVPL_LAPACK_sbdsdc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sbdsdc(...) NVPL_LAPACK_sbdsdc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cbdsqr_base NVPL_LAPACK_GLOBAL(cbdsqr,CBDSQR)
void NVPL_LAPACK_cbdsqr_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ncvt, nvpl_int_t const* nru, nvpl_int_t const* ncc,
    float* D,
    float* E,
    nvpl_scomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cbdsqr(...) NVPL_LAPACK_cbdsqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cbdsqr(...) NVPL_LAPACK_cbdsqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dbdsqr_base NVPL_LAPACK_GLOBAL(dbdsqr,DBDSQR)
void NVPL_LAPACK_dbdsqr_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ncvt, nvpl_int_t const* nru, nvpl_int_t const* ncc,
    double* D,
    double* E,
    double* VT, nvpl_int_t const* ldvt,
    double* U, nvpl_int_t const* ldu,
    double* C, nvpl_int_t const* ldc,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dbdsqr(...) NVPL_LAPACK_dbdsqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dbdsqr(...) NVPL_LAPACK_dbdsqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sbdsqr_base NVPL_LAPACK_GLOBAL(sbdsqr,SBDSQR)
void NVPL_LAPACK_sbdsqr_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ncvt, nvpl_int_t const* nru, nvpl_int_t const* ncc,
    float* D,
    float* E,
    float* VT, nvpl_int_t const* ldvt,
    float* U, nvpl_int_t const* ldu,
    float* C, nvpl_int_t const* ldc,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sbdsqr(...) NVPL_LAPACK_sbdsqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sbdsqr(...) NVPL_LAPACK_sbdsqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zbdsqr_base NVPL_LAPACK_GLOBAL(zbdsqr,ZBDSQR)
void NVPL_LAPACK_zbdsqr_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ncvt, nvpl_int_t const* nru, nvpl_int_t const* ncc,
    double* D,
    double* E,
    nvpl_dcomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zbdsqr(...) NVPL_LAPACK_zbdsqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zbdsqr(...) NVPL_LAPACK_zbdsqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dbdsvdx_base NVPL_LAPACK_GLOBAL(dbdsvdx,DBDSVDX)
void NVPL_LAPACK_dbdsvdx_base(
    char const* uplo, char const* jobz, char const* range,
    nvpl_int_t const* n,
    double const* D,
    double const* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* ns,
    double* S,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dbdsvdx(...) NVPL_LAPACK_dbdsvdx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dbdsvdx(...) NVPL_LAPACK_dbdsvdx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sbdsvdx_base NVPL_LAPACK_GLOBAL(sbdsvdx,SBDSVDX)
void NVPL_LAPACK_sbdsvdx_base(
    char const* uplo, char const* jobz, char const* range,
    nvpl_int_t const* n,
    float const* D,
    float const* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* ns,
    float* S,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sbdsvdx(...) NVPL_LAPACK_sbdsvdx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sbdsvdx(...) NVPL_LAPACK_sbdsvdx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ddisna_base NVPL_LAPACK_GLOBAL(ddisna,DDISNA)
void NVPL_LAPACK_ddisna_base(
    char const* job,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* D,
    double* SEP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ddisna(...) NVPL_LAPACK_ddisna_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ddisna(...) NVPL_LAPACK_ddisna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sdisna_base NVPL_LAPACK_GLOBAL(sdisna,SDISNA)
void NVPL_LAPACK_sdisna_base(
    char const* job,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* D,
    float* SEP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sdisna(...) NVPL_LAPACK_sdisna_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sdisna(...) NVPL_LAPACK_sdisna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbbrd_base NVPL_LAPACK_GLOBAL(cgbbrd,CGBBRD)
void NVPL_LAPACK_cgbbrd_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ncc, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    float* D,
    float* E,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* PT, nvpl_int_t const* ldpt,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbbrd(...) NVPL_LAPACK_cgbbrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgbbrd(...) NVPL_LAPACK_cgbbrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbbrd_base NVPL_LAPACK_GLOBAL(dgbbrd,DGBBRD)
void NVPL_LAPACK_dgbbrd_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ncc, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double* AB, nvpl_int_t const* ldab,
    double* D,
    double* E,
    double* Q, nvpl_int_t const* ldq,
    double* PT, nvpl_int_t const* ldpt,
    double* C, nvpl_int_t const* ldc,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbbrd(...) NVPL_LAPACK_dgbbrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgbbrd(...) NVPL_LAPACK_dgbbrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbbrd_base NVPL_LAPACK_GLOBAL(sgbbrd,SGBBRD)
void NVPL_LAPACK_sgbbrd_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ncc, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float* AB, nvpl_int_t const* ldab,
    float* D,
    float* E,
    float* Q, nvpl_int_t const* ldq,
    float* PT, nvpl_int_t const* ldpt,
    float* C, nvpl_int_t const* ldc,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbbrd(...) NVPL_LAPACK_sgbbrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgbbrd(...) NVPL_LAPACK_sgbbrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbbrd_base NVPL_LAPACK_GLOBAL(zgbbrd,ZGBBRD)
void NVPL_LAPACK_zgbbrd_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ncc, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    double* D,
    double* E,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* PT, nvpl_int_t const* ldpt,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbbrd(...) NVPL_LAPACK_zgbbrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgbbrd(...) NVPL_LAPACK_zgbbrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbcon_base NVPL_LAPACK_GLOBAL(cgbcon,CGBCON)
void NVPL_LAPACK_cgbcon_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbcon(...) NVPL_LAPACK_cgbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgbcon(...) NVPL_LAPACK_cgbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbcon_base NVPL_LAPACK_GLOBAL(dgbcon,DGBCON)
void NVPL_LAPACK_dgbcon_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbcon(...) NVPL_LAPACK_dgbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgbcon(...) NVPL_LAPACK_dgbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbcon_base NVPL_LAPACK_GLOBAL(sgbcon,SGBCON)
void NVPL_LAPACK_sgbcon_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbcon(...) NVPL_LAPACK_sgbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgbcon(...) NVPL_LAPACK_sgbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbcon_base NVPL_LAPACK_GLOBAL(zgbcon,ZGBCON)
void NVPL_LAPACK_zgbcon_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbcon(...) NVPL_LAPACK_zgbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgbcon(...) NVPL_LAPACK_zgbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbequ NVPL_LAPACK_GLOBAL(cgbequ,CGBEQU)
void NVPL_LAPACK_cgbequ(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgbequ NVPL_LAPACK_GLOBAL(dgbequ,DGBEQU)
void NVPL_LAPACK_dgbequ(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* AB, nvpl_int_t const* ldab,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgbequ NVPL_LAPACK_GLOBAL(sgbequ,SGBEQU)
void NVPL_LAPACK_sgbequ(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* AB, nvpl_int_t const* ldab,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgbequ NVPL_LAPACK_GLOBAL(zgbequ,ZGBEQU)
void NVPL_LAPACK_zgbequ(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgbequb NVPL_LAPACK_GLOBAL(cgbequb,CGBEQUB)
void NVPL_LAPACK_cgbequb(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgbequb NVPL_LAPACK_GLOBAL(dgbequb,DGBEQUB)
void NVPL_LAPACK_dgbequb(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* AB, nvpl_int_t const* ldab,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgbequb NVPL_LAPACK_GLOBAL(sgbequb,SGBEQUB)
void NVPL_LAPACK_sgbequb(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* AB, nvpl_int_t const* ldab,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgbequb NVPL_LAPACK_GLOBAL(zgbequb,ZGBEQUB)
void NVPL_LAPACK_zgbequb(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgbrfs_base NVPL_LAPACK_GLOBAL(cgbrfs,CGBRFS)
void NVPL_LAPACK_cgbrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbrfs(...) NVPL_LAPACK_cgbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgbrfs(...) NVPL_LAPACK_cgbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbrfs_base NVPL_LAPACK_GLOBAL(dgbrfs,DGBRFS)
void NVPL_LAPACK_dgbrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab,
    double const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbrfs(...) NVPL_LAPACK_dgbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgbrfs(...) NVPL_LAPACK_dgbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbrfs_base NVPL_LAPACK_GLOBAL(sgbrfs,SGBRFS)
void NVPL_LAPACK_sgbrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab,
    float const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbrfs(...) NVPL_LAPACK_sgbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgbrfs(...) NVPL_LAPACK_sgbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbrfs_base NVPL_LAPACK_GLOBAL(zgbrfs,ZGBRFS)
void NVPL_LAPACK_zgbrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbrfs(...) NVPL_LAPACK_zgbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgbrfs(...) NVPL_LAPACK_zgbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbrfsx_base NVPL_LAPACK_GLOBAL(cgbrfsx,CGBRFSX)
void NVPL_LAPACK_cgbrfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    const float* R,
    const float* C,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbrfsx(...) NVPL_LAPACK_cgbrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgbrfsx(...) NVPL_LAPACK_cgbrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbrfsx_base NVPL_LAPACK_GLOBAL(dgbrfsx,DGBRFSX)
void NVPL_LAPACK_dgbrfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab,
    double const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    const double* R,
    const double* C,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbrfsx(...) NVPL_LAPACK_dgbrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgbrfsx(...) NVPL_LAPACK_dgbrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbrfsx_base NVPL_LAPACK_GLOBAL(sgbrfsx,SGBRFSX)
void NVPL_LAPACK_sgbrfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab,
    float const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    const float* R,
    const float* C,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbrfsx(...) NVPL_LAPACK_sgbrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgbrfsx(...) NVPL_LAPACK_sgbrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbrfsx_base NVPL_LAPACK_GLOBAL(zgbrfsx,ZGBRFSX)
void NVPL_LAPACK_zgbrfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t const* AFB, nvpl_int_t const* ldafb, nvpl_int_t const* ipiv,
    const double* R,
    const double* C,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbrfsx(...) NVPL_LAPACK_zgbrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgbrfsx(...) NVPL_LAPACK_zgbrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbsv NVPL_LAPACK_GLOBAL(cgbsv,CGBSV)
void NVPL_LAPACK_cgbsv(
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgbsv NVPL_LAPACK_GLOBAL(dgbsv,DGBSV)
void NVPL_LAPACK_dgbsv(
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    double* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgbsv NVPL_LAPACK_GLOBAL(sgbsv,SGBSV)
void NVPL_LAPACK_sgbsv(
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    float* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgbsv NVPL_LAPACK_GLOBAL(zgbsv,ZGBSV)
void NVPL_LAPACK_zgbsv(
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgbsvx_base NVPL_LAPACK_GLOBAL(cgbsvx,CGBSVX)
void NVPL_LAPACK_cgbsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbsvx(...) NVPL_LAPACK_cgbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgbsvx(...) NVPL_LAPACK_cgbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbsvx_base NVPL_LAPACK_GLOBAL(dgbsvx,DGBSVX)
void NVPL_LAPACK_dgbsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    double* AB, nvpl_int_t const* ldab,
    double* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbsvx(...) NVPL_LAPACK_dgbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgbsvx(...) NVPL_LAPACK_dgbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbsvx_base NVPL_LAPACK_GLOBAL(sgbsvx,SGBSVX)
void NVPL_LAPACK_sgbsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    float* AB, nvpl_int_t const* ldab,
    float* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbsvx(...) NVPL_LAPACK_sgbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgbsvx(...) NVPL_LAPACK_sgbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbsvx_base NVPL_LAPACK_GLOBAL(zgbsvx,ZGBSVX)
void NVPL_LAPACK_zgbsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbsvx(...) NVPL_LAPACK_zgbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgbsvx(...) NVPL_LAPACK_zgbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbsvxx_base NVPL_LAPACK_GLOBAL(cgbsvxx,CGBSVXX)
void NVPL_LAPACK_cgbsvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbsvxx(...) NVPL_LAPACK_cgbsvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgbsvxx(...) NVPL_LAPACK_cgbsvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbsvxx_base NVPL_LAPACK_GLOBAL(dgbsvxx,DGBSVXX)
void NVPL_LAPACK_dgbsvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    double* AB, nvpl_int_t const* ldab,
    double* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbsvxx(...) NVPL_LAPACK_dgbsvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgbsvxx(...) NVPL_LAPACK_dgbsvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbsvxx_base NVPL_LAPACK_GLOBAL(sgbsvxx,SGBSVXX)
void NVPL_LAPACK_sgbsvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    float* AB, nvpl_int_t const* ldab,
    float* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbsvxx(...) NVPL_LAPACK_sgbsvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgbsvxx(...) NVPL_LAPACK_sgbsvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbsvxx_base NVPL_LAPACK_GLOBAL(zgbsvxx,ZGBSVXX)
void NVPL_LAPACK_zgbsvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* AFB, nvpl_int_t const* ldafb, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbsvxx(...) NVPL_LAPACK_zgbsvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgbsvxx(...) NVPL_LAPACK_zgbsvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgbtrf NVPL_LAPACK_GLOBAL(cgbtrf,CGBTRF)
void NVPL_LAPACK_cgbtrf(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgbtrf NVPL_LAPACK_GLOBAL(dgbtrf,DGBTRF)
void NVPL_LAPACK_dgbtrf(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgbtrf NVPL_LAPACK_GLOBAL(sgbtrf,SGBTRF)
void NVPL_LAPACK_sgbtrf(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgbtrf NVPL_LAPACK_GLOBAL(zgbtrf,ZGBTRF)
void NVPL_LAPACK_zgbtrf(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgbtrs_base NVPL_LAPACK_GLOBAL(cgbtrs,CGBTRS)
void NVPL_LAPACK_cgbtrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgbtrs(...) NVPL_LAPACK_cgbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgbtrs(...) NVPL_LAPACK_cgbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgbtrs_base NVPL_LAPACK_GLOBAL(dgbtrs,DGBTRS)
void NVPL_LAPACK_dgbtrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgbtrs(...) NVPL_LAPACK_dgbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgbtrs(...) NVPL_LAPACK_dgbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgbtrs_base NVPL_LAPACK_GLOBAL(sgbtrs,SGBTRS)
void NVPL_LAPACK_sgbtrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgbtrs(...) NVPL_LAPACK_sgbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgbtrs(...) NVPL_LAPACK_sgbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgbtrs_base NVPL_LAPACK_GLOBAL(zgbtrs,ZGBTRS)
void NVPL_LAPACK_zgbtrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgbtrs(...) NVPL_LAPACK_zgbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgbtrs(...) NVPL_LAPACK_zgbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgebak_base NVPL_LAPACK_GLOBAL(cgebak,CGEBAK)
void NVPL_LAPACK_cgebak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float const* scale, nvpl_int_t const* m,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgebak(...) NVPL_LAPACK_cgebak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgebak(...) NVPL_LAPACK_cgebak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgebak_base NVPL_LAPACK_GLOBAL(dgebak,DGEBAK)
void NVPL_LAPACK_dgebak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double const* scale, nvpl_int_t const* m,
    double* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgebak(...) NVPL_LAPACK_dgebak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgebak(...) NVPL_LAPACK_dgebak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgebak_base NVPL_LAPACK_GLOBAL(sgebak,SGEBAK)
void NVPL_LAPACK_sgebak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float const* scale, nvpl_int_t const* m,
    float* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgebak(...) NVPL_LAPACK_sgebak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgebak(...) NVPL_LAPACK_sgebak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgebak_base NVPL_LAPACK_GLOBAL(zgebak,ZGEBAK)
void NVPL_LAPACK_zgebak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double const* scale, nvpl_int_t const* m,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgebak(...) NVPL_LAPACK_zgebak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgebak(...) NVPL_LAPACK_zgebak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgebal_base NVPL_LAPACK_GLOBAL(cgebal,CGEBAL)
void NVPL_LAPACK_cgebal_base(
    char const* job,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgebal(...) NVPL_LAPACK_cgebal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgebal(...) NVPL_LAPACK_cgebal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgebal_base NVPL_LAPACK_GLOBAL(dgebal,DGEBAL)
void NVPL_LAPACK_dgebal_base(
    char const* job,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgebal(...) NVPL_LAPACK_dgebal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgebal(...) NVPL_LAPACK_dgebal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgebal_base NVPL_LAPACK_GLOBAL(sgebal,SGEBAL)
void NVPL_LAPACK_sgebal_base(
    char const* job,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgebal(...) NVPL_LAPACK_sgebal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgebal(...) NVPL_LAPACK_sgebal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgebal_base NVPL_LAPACK_GLOBAL(zgebal,ZGEBAL)
void NVPL_LAPACK_zgebal_base(
    char const* job,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgebal(...) NVPL_LAPACK_zgebal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgebal(...) NVPL_LAPACK_zgebal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgebrd NVPL_LAPACK_GLOBAL(cgebrd,CGEBRD)
void NVPL_LAPACK_cgebrd(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* D,
    float* E,
    nvpl_scomplex_t* tauq,
    nvpl_scomplex_t* taup,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgebrd NVPL_LAPACK_GLOBAL(dgebrd,DGEBRD)
void NVPL_LAPACK_dgebrd(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* D,
    double* E,
    double* tauq,
    double* taup,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgebrd NVPL_LAPACK_GLOBAL(sgebrd,SGEBRD)
void NVPL_LAPACK_sgebrd(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* D,
    float* E,
    float* tauq,
    float* taup,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgebrd NVPL_LAPACK_GLOBAL(zgebrd,ZGEBRD)
void NVPL_LAPACK_zgebrd(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* D,
    double* E,
    nvpl_dcomplex_t* tauq,
    nvpl_dcomplex_t* taup,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgecon_base NVPL_LAPACK_GLOBAL(cgecon,CGECON)
void NVPL_LAPACK_cgecon_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgecon(...) NVPL_LAPACK_cgecon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgecon(...) NVPL_LAPACK_cgecon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgecon_base NVPL_LAPACK_GLOBAL(dgecon,DGECON)
void NVPL_LAPACK_dgecon_base(
    char const* norm,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgecon(...) NVPL_LAPACK_dgecon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgecon(...) NVPL_LAPACK_dgecon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgecon_base NVPL_LAPACK_GLOBAL(sgecon,SGECON)
void NVPL_LAPACK_sgecon_base(
    char const* norm,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgecon(...) NVPL_LAPACK_sgecon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgecon(...) NVPL_LAPACK_sgecon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgecon_base NVPL_LAPACK_GLOBAL(zgecon,ZGECON)
void NVPL_LAPACK_zgecon_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgecon(...) NVPL_LAPACK_zgecon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgecon(...) NVPL_LAPACK_zgecon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgeequ NVPL_LAPACK_GLOBAL(cgeequ,CGEEQU)
void NVPL_LAPACK_cgeequ(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeequ NVPL_LAPACK_GLOBAL(dgeequ,DGEEQU)
void NVPL_LAPACK_dgeequ(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeequ NVPL_LAPACK_GLOBAL(sgeequ,SGEEQU)
void NVPL_LAPACK_sgeequ(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeequ NVPL_LAPACK_GLOBAL(zgeequ,ZGEEQU)
void NVPL_LAPACK_zgeequ(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeequb NVPL_LAPACK_GLOBAL(cgeequb,CGEEQUB)
void NVPL_LAPACK_cgeequb(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeequb NVPL_LAPACK_GLOBAL(dgeequb,DGEEQUB)
void NVPL_LAPACK_dgeequb(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeequb NVPL_LAPACK_GLOBAL(sgeequb,SGEEQUB)
void NVPL_LAPACK_sgeequb(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* R,
    float* C,
    float* rowcnd,
    float* colcnd,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeequb NVPL_LAPACK_GLOBAL(zgeequb,ZGEEQUB)
void NVPL_LAPACK_zgeequb(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* R,
    double* C,
    double* rowcnd,
    double* colcnd,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgees_base NVPL_LAPACK_GLOBAL(cgees,CGEES)
void NVPL_LAPACK_cgees_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_C_SELECT1 select,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    nvpl_scomplex_t* W,
    nvpl_scomplex_t* VS, nvpl_int_t const* ldvs,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgees(...) NVPL_LAPACK_cgees_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgees(...) NVPL_LAPACK_cgees_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgees_base NVPL_LAPACK_GLOBAL(dgees,DGEES)
void NVPL_LAPACK_dgees_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_D_SELECT2 select,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    double* WR,
    double* WI,
    double* VS, nvpl_int_t const* ldvs,
    double* work, nvpl_int_t const* lwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgees(...) NVPL_LAPACK_dgees_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgees(...) NVPL_LAPACK_dgees_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgees_base NVPL_LAPACK_GLOBAL(sgees,SGEES)
void NVPL_LAPACK_sgees_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_S_SELECT2 select,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    float* WR,
    float* WI,
    float* VS, nvpl_int_t const* ldvs,
    float* work, nvpl_int_t const* lwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgees(...) NVPL_LAPACK_sgees_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgees(...) NVPL_LAPACK_sgees_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgees_base NVPL_LAPACK_GLOBAL(zgees,ZGEES)
void NVPL_LAPACK_zgees_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_Z_SELECT1 select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    nvpl_dcomplex_t* W,
    nvpl_dcomplex_t* VS, nvpl_int_t const* ldvs,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgees(...) NVPL_LAPACK_zgees_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgees(...) NVPL_LAPACK_zgees_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgeesx_base NVPL_LAPACK_GLOBAL(cgeesx,CGEESX)
void NVPL_LAPACK_cgeesx_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_C_SELECT1 select, char const* sense,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    nvpl_scomplex_t* W,
    nvpl_scomplex_t* VS, nvpl_int_t const* ldvs,
    float* rconde,
    float* rcondv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgeesx(...) NVPL_LAPACK_cgeesx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgeesx(...) NVPL_LAPACK_cgeesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgeesx_base NVPL_LAPACK_GLOBAL(dgeesx,DGEESX)
void NVPL_LAPACK_dgeesx_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_D_SELECT2 select, char const* sense,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    double* WR,
    double* WI,
    double* VS, nvpl_int_t const* ldvs,
    double* rconde,
    double* rcondv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgeesx(...) NVPL_LAPACK_dgeesx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgeesx(...) NVPL_LAPACK_dgeesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgeesx_base NVPL_LAPACK_GLOBAL(sgeesx,SGEESX)
void NVPL_LAPACK_sgeesx_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_S_SELECT2 select, char const* sense,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    float* WR,
    float* WI,
    float* VS, nvpl_int_t const* ldvs,
    float* rconde,
    float* rcondv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgeesx(...) NVPL_LAPACK_sgeesx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgeesx(...) NVPL_LAPACK_sgeesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgeesx_base NVPL_LAPACK_GLOBAL(zgeesx,ZGEESX)
void NVPL_LAPACK_zgeesx_base(
    char const* jobvs, char const* sort, NVPL_LAPACK_Z_SELECT1 select, char const* sense,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* sdim,
    nvpl_dcomplex_t* W,
    nvpl_dcomplex_t* VS, nvpl_int_t const* ldvs,
    double* rconde,
    double* rcondv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgeesx(...) NVPL_LAPACK_zgeesx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgeesx(...) NVPL_LAPACK_zgeesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgeev_base NVPL_LAPACK_GLOBAL(cgeev,CGEEV)
void NVPL_LAPACK_cgeev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* W,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgeev(...) NVPL_LAPACK_cgeev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgeev(...) NVPL_LAPACK_cgeev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgeev_base NVPL_LAPACK_GLOBAL(dgeev,DGEEV)
void NVPL_LAPACK_dgeev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* WR,
    double* WI,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgeev(...) NVPL_LAPACK_dgeev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgeev(...) NVPL_LAPACK_dgeev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgeev_base NVPL_LAPACK_GLOBAL(sgeev,SGEEV)
void NVPL_LAPACK_sgeev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* WR,
    float* WI,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgeev(...) NVPL_LAPACK_sgeev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgeev(...) NVPL_LAPACK_sgeev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgeev_base NVPL_LAPACK_GLOBAL(zgeev,ZGEEV)
void NVPL_LAPACK_zgeev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* W,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgeev(...) NVPL_LAPACK_zgeev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgeev(...) NVPL_LAPACK_zgeev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgeevx_base NVPL_LAPACK_GLOBAL(cgeevx,CGEEVX)
void NVPL_LAPACK_cgeevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* W,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* scale,
    float* abnrm,
    float* rconde,
    float* rcondv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgeevx(...) NVPL_LAPACK_cgeevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgeevx(...) NVPL_LAPACK_cgeevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgeevx_base NVPL_LAPACK_GLOBAL(dgeevx,DGEEVX)
void NVPL_LAPACK_dgeevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* WR,
    double* WI,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* scale,
    double* abnrm,
    double* rconde,
    double* rcondv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgeevx(...) NVPL_LAPACK_dgeevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgeevx(...) NVPL_LAPACK_dgeevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgeevx_base NVPL_LAPACK_GLOBAL(sgeevx,SGEEVX)
void NVPL_LAPACK_sgeevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* WR,
    float* WI,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* scale,
    float* abnrm,
    float* rconde,
    float* rcondv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgeevx(...) NVPL_LAPACK_sgeevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgeevx(...) NVPL_LAPACK_sgeevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgeevx_base NVPL_LAPACK_GLOBAL(zgeevx,ZGEEVX)
void NVPL_LAPACK_zgeevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* W,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* scale,
    double* abnrm,
    double* rconde,
    double* rcondv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgeevx(...) NVPL_LAPACK_zgeevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgeevx(...) NVPL_LAPACK_zgeevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgehrd NVPL_LAPACK_GLOBAL(cgehrd,CGEHRD)
void NVPL_LAPACK_cgehrd(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgehrd NVPL_LAPACK_GLOBAL(dgehrd,DGEHRD)
void NVPL_LAPACK_dgehrd(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgehrd NVPL_LAPACK_GLOBAL(sgehrd,SGEHRD)
void NVPL_LAPACK_sgehrd(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgehrd NVPL_LAPACK_GLOBAL(zgehrd,ZGEHRD)
void NVPL_LAPACK_zgehrd(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgejsv_base NVPL_LAPACK_GLOBAL(cgejsv,CGEJSV)
void NVPL_LAPACK_cgejsv_base(
    char const* joba, char const* jobu, char const* jobv, char const* jobr, char const* jobt, char const* jobp,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* SVA,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t* cwork, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgejsv(...) NVPL_LAPACK_cgejsv_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgejsv(...) NVPL_LAPACK_cgejsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgejsv_base NVPL_LAPACK_GLOBAL(dgejsv,DGEJSV)
void NVPL_LAPACK_dgejsv_base(
    char const* joba, char const* jobu, char const* jobv, char const* jobr, char const* jobt, char const* jobp,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* SVA,
    double* U, nvpl_int_t const* ldu,
    double* V, nvpl_int_t const* ldv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgejsv(...) NVPL_LAPACK_dgejsv_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgejsv(...) NVPL_LAPACK_dgejsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgejsv_base NVPL_LAPACK_GLOBAL(sgejsv,SGEJSV)
void NVPL_LAPACK_sgejsv_base(
    char const* joba, char const* jobu, char const* jobv, char const* jobr, char const* jobt, char const* jobp,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* SVA,
    float* U, nvpl_int_t const* ldu,
    float* V, nvpl_int_t const* ldv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgejsv(...) NVPL_LAPACK_sgejsv_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgejsv(...) NVPL_LAPACK_sgejsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgejsv_base NVPL_LAPACK_GLOBAL(zgejsv,ZGEJSV)
void NVPL_LAPACK_zgejsv_base(
    char const* joba, char const* jobu, char const* jobv, char const* jobr, char const* jobt, char const* jobp,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* SVA,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* cwork, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgejsv(...) NVPL_LAPACK_zgejsv_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgejsv(...) NVPL_LAPACK_zgejsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgelq NVPL_LAPACK_GLOBAL(cgelq,CGELQ)
void NVPL_LAPACK_cgelq(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* T, nvpl_int_t const* tsize,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgelq NVPL_LAPACK_GLOBAL(dgelq,DGELQ)
void NVPL_LAPACK_dgelq(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* T, nvpl_int_t const* tsize,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgelq NVPL_LAPACK_GLOBAL(sgelq,SGELQ)
void NVPL_LAPACK_sgelq(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* T, nvpl_int_t const* tsize,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgelq NVPL_LAPACK_GLOBAL(zgelq,ZGELQ)
void NVPL_LAPACK_zgelq(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* T, nvpl_int_t const* tsize,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgelq2 NVPL_LAPACK_GLOBAL(cgelq2,CGELQ2)
void NVPL_LAPACK_cgelq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgelq2 NVPL_LAPACK_GLOBAL(dgelq2,DGELQ2)
void NVPL_LAPACK_dgelq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgelq2 NVPL_LAPACK_GLOBAL(sgelq2,SGELQ2)
void NVPL_LAPACK_sgelq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgelq2 NVPL_LAPACK_GLOBAL(zgelq2,ZGELQ2)
void NVPL_LAPACK_zgelq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgelqf NVPL_LAPACK_GLOBAL(cgelqf,CGELQF)
void NVPL_LAPACK_cgelqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgelqf NVPL_LAPACK_GLOBAL(dgelqf,DGELQF)
void NVPL_LAPACK_dgelqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgelqf NVPL_LAPACK_GLOBAL(sgelqf,SGELQF)
void NVPL_LAPACK_sgelqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgelqf NVPL_LAPACK_GLOBAL(zgelqf,ZGELQF)
void NVPL_LAPACK_zgelqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgels_base NVPL_LAPACK_GLOBAL(cgels,CGELS)
void NVPL_LAPACK_cgels_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgels(...) NVPL_LAPACK_cgels_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgels(...) NVPL_LAPACK_cgels_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgels_base NVPL_LAPACK_GLOBAL(dgels,DGELS)
void NVPL_LAPACK_dgels_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgels(...) NVPL_LAPACK_dgels_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgels(...) NVPL_LAPACK_dgels_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgels_base NVPL_LAPACK_GLOBAL(sgels,SGELS)
void NVPL_LAPACK_sgels_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgels(...) NVPL_LAPACK_sgels_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgels(...) NVPL_LAPACK_sgels_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgels_base NVPL_LAPACK_GLOBAL(zgels,ZGELS)
void NVPL_LAPACK_zgels_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgels(...) NVPL_LAPACK_zgels_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgels(...) NVPL_LAPACK_zgels_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgelsd NVPL_LAPACK_GLOBAL(cgelsd,CGELSD)
void NVPL_LAPACK_cgelsd(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float* S,
    float const* rcond, nvpl_int_t* rank,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgelsd NVPL_LAPACK_GLOBAL(dgelsd,DGELSD)
void NVPL_LAPACK_dgelsd(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* S,
    double const* rcond, nvpl_int_t* rank,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgelsd NVPL_LAPACK_GLOBAL(sgelsd,SGELSD)
void NVPL_LAPACK_sgelsd(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* S,
    float const* rcond, nvpl_int_t* rank,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgelsd NVPL_LAPACK_GLOBAL(zgelsd,ZGELSD)
void NVPL_LAPACK_zgelsd(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double* S,
    double const* rcond, nvpl_int_t* rank,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgelss NVPL_LAPACK_GLOBAL(cgelss,CGELSS)
void NVPL_LAPACK_cgelss(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float* S,
    float const* rcond, nvpl_int_t* rank,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgelss NVPL_LAPACK_GLOBAL(dgelss,DGELSS)
void NVPL_LAPACK_dgelss(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* S,
    double const* rcond, nvpl_int_t* rank,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgelss NVPL_LAPACK_GLOBAL(sgelss,SGELSS)
void NVPL_LAPACK_sgelss(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* S,
    float const* rcond, nvpl_int_t* rank,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgelss NVPL_LAPACK_GLOBAL(zgelss,ZGELSS)
void NVPL_LAPACK_zgelss(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double* S,
    double const* rcond, nvpl_int_t* rank,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgelsy NVPL_LAPACK_GLOBAL(cgelsy,CGELSY)
void NVPL_LAPACK_cgelsy(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    float const* rcond, nvpl_int_t* rank,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgelsy NVPL_LAPACK_GLOBAL(dgelsy,DGELSY)
void NVPL_LAPACK_dgelsy(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    double const* rcond, nvpl_int_t* rank,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgelsy NVPL_LAPACK_GLOBAL(sgelsy,SGELSY)
void NVPL_LAPACK_sgelsy(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    float const* rcond, nvpl_int_t* rank,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgelsy NVPL_LAPACK_GLOBAL(zgelsy,ZGELSY)
void NVPL_LAPACK_zgelsy(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    double const* rcond, nvpl_int_t* rank,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgemlq_base NVPL_LAPACK_GLOBAL(cgemlq,CGEMLQ)
void NVPL_LAPACK_cgemlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* T, nvpl_int_t const* tsize,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgemlq(...) NVPL_LAPACK_cgemlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgemlq(...) NVPL_LAPACK_cgemlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgemlq_base NVPL_LAPACK_GLOBAL(dgemlq,DGEMLQ)
void NVPL_LAPACK_dgemlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* T, nvpl_int_t const* tsize,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgemlq(...) NVPL_LAPACK_dgemlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgemlq(...) NVPL_LAPACK_dgemlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgemlq_base NVPL_LAPACK_GLOBAL(sgemlq,SGEMLQ)
void NVPL_LAPACK_sgemlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* T, nvpl_int_t const* tsize,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgemlq(...) NVPL_LAPACK_sgemlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgemlq(...) NVPL_LAPACK_sgemlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgemlq_base NVPL_LAPACK_GLOBAL(zgemlq,ZGEMLQ)
void NVPL_LAPACK_zgemlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* T, nvpl_int_t const* tsize,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgemlq(...) NVPL_LAPACK_zgemlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgemlq(...) NVPL_LAPACK_zgemlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgemqr_base NVPL_LAPACK_GLOBAL(cgemqr,CGEMQR)
void NVPL_LAPACK_cgemqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* T, nvpl_int_t const* tsize,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgemqr(...) NVPL_LAPACK_cgemqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgemqr(...) NVPL_LAPACK_cgemqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgemqr_base NVPL_LAPACK_GLOBAL(dgemqr,DGEMQR)
void NVPL_LAPACK_dgemqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* T, nvpl_int_t const* tsize,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgemqr(...) NVPL_LAPACK_dgemqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgemqr(...) NVPL_LAPACK_dgemqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgemqr_base NVPL_LAPACK_GLOBAL(sgemqr,SGEMQR)
void NVPL_LAPACK_sgemqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* T, nvpl_int_t const* tsize,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgemqr(...) NVPL_LAPACK_sgemqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgemqr(...) NVPL_LAPACK_sgemqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgemqr_base NVPL_LAPACK_GLOBAL(zgemqr,ZGEMQR)
void NVPL_LAPACK_zgemqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* T, nvpl_int_t const* tsize,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgemqr(...) NVPL_LAPACK_zgemqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgemqr(...) NVPL_LAPACK_zgemqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgemqrt_base NVPL_LAPACK_GLOBAL(cgemqrt,CGEMQRT)
void NVPL_LAPACK_cgemqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* nb,
    nvpl_scomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgemqrt(...) NVPL_LAPACK_cgemqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgemqrt(...) NVPL_LAPACK_cgemqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgemqrt_base NVPL_LAPACK_GLOBAL(dgemqrt,DGEMQRT)
void NVPL_LAPACK_dgemqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* nb,
    double const* V, nvpl_int_t const* ldv,
    double const* T, nvpl_int_t const* ldt,
    double* C, nvpl_int_t const* ldc,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgemqrt(...) NVPL_LAPACK_dgemqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgemqrt(...) NVPL_LAPACK_dgemqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgemqrt_base NVPL_LAPACK_GLOBAL(sgemqrt,SGEMQRT)
void NVPL_LAPACK_sgemqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* nb,
    float const* V, nvpl_int_t const* ldv,
    float const* T, nvpl_int_t const* ldt,
    float* C, nvpl_int_t const* ldc,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgemqrt(...) NVPL_LAPACK_sgemqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgemqrt(...) NVPL_LAPACK_sgemqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgemqrt_base NVPL_LAPACK_GLOBAL(zgemqrt,ZGEMQRT)
void NVPL_LAPACK_zgemqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* nb,
    nvpl_dcomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgemqrt(...) NVPL_LAPACK_zgemqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgemqrt(...) NVPL_LAPACK_zgemqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgeql2 NVPL_LAPACK_GLOBAL(cgeql2,CGEQL2)
void NVPL_LAPACK_cgeql2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeql2 NVPL_LAPACK_GLOBAL(dgeql2,DGEQL2)
void NVPL_LAPACK_dgeql2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeql2 NVPL_LAPACK_GLOBAL(sgeql2,SGEQL2)
void NVPL_LAPACK_sgeql2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeql2 NVPL_LAPACK_GLOBAL(zgeql2,ZGEQL2)
void NVPL_LAPACK_zgeql2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqlf NVPL_LAPACK_GLOBAL(cgeqlf,CGEQLF)
void NVPL_LAPACK_cgeqlf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqlf NVPL_LAPACK_GLOBAL(dgeqlf,DGEQLF)
void NVPL_LAPACK_dgeqlf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqlf NVPL_LAPACK_GLOBAL(sgeqlf,SGEQLF)
void NVPL_LAPACK_sgeqlf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqlf NVPL_LAPACK_GLOBAL(zgeqlf,ZGEQLF)
void NVPL_LAPACK_zgeqlf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqpf NVPL_LAPACK_GLOBAL(cgeqpf,CGEQPF)
void NVPL_LAPACK_cgeqpf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(cgeqpf,CGEQPF));

#define NVPL_LAPACK_dgeqpf NVPL_LAPACK_GLOBAL(dgeqpf,DGEQPF)
void NVPL_LAPACK_dgeqpf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    double* tau,
    double* work,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dgeqpf,DGEQPF));

#define NVPL_LAPACK_sgeqpf NVPL_LAPACK_GLOBAL(sgeqpf,SGEQPF)
void NVPL_LAPACK_sgeqpf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    float* tau,
    float* work,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(sgeqpf,SGEQPF));

#define NVPL_LAPACK_zgeqpf NVPL_LAPACK_GLOBAL(zgeqpf,ZGEQPF)
void NVPL_LAPACK_zgeqpf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zgeqpf,ZGEQPF));

#define NVPL_LAPACK_cgeqp3 NVPL_LAPACK_GLOBAL(cgeqp3,CGEQP3)
void NVPL_LAPACK_cgeqp3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqp3 NVPL_LAPACK_GLOBAL(dgeqp3,DGEQP3)
void NVPL_LAPACK_dgeqp3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqp3 NVPL_LAPACK_GLOBAL(sgeqp3,SGEQP3)
void NVPL_LAPACK_sgeqp3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqp3 NVPL_LAPACK_GLOBAL(zgeqp3,ZGEQP3)
void NVPL_LAPACK_zgeqp3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* JPVT,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqr NVPL_LAPACK_GLOBAL(cgeqr,CGEQR)
void NVPL_LAPACK_cgeqr(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* T, nvpl_int_t const* tsize,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqr NVPL_LAPACK_GLOBAL(dgeqr,DGEQR)
void NVPL_LAPACK_dgeqr(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* T, nvpl_int_t const* tsize,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqr NVPL_LAPACK_GLOBAL(sgeqr,SGEQR)
void NVPL_LAPACK_sgeqr(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* T, nvpl_int_t const* tsize,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqr NVPL_LAPACK_GLOBAL(zgeqr,ZGEQR)
void NVPL_LAPACK_zgeqr(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* T, nvpl_int_t const* tsize,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqr2 NVPL_LAPACK_GLOBAL(cgeqr2,CGEQR2)
void NVPL_LAPACK_cgeqr2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqr2 NVPL_LAPACK_GLOBAL(dgeqr2,DGEQR2)
void NVPL_LAPACK_dgeqr2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqr2 NVPL_LAPACK_GLOBAL(sgeqr2,SGEQR2)
void NVPL_LAPACK_sgeqr2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqr2 NVPL_LAPACK_GLOBAL(zgeqr2,ZGEQR2)
void NVPL_LAPACK_zgeqr2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqrf NVPL_LAPACK_GLOBAL(cgeqrf,CGEQRF)
void NVPL_LAPACK_cgeqrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqrf NVPL_LAPACK_GLOBAL(dgeqrf,DGEQRF)
void NVPL_LAPACK_dgeqrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqrf NVPL_LAPACK_GLOBAL(sgeqrf,SGEQRF)
void NVPL_LAPACK_sgeqrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqrf NVPL_LAPACK_GLOBAL(zgeqrf,ZGEQRF)
void NVPL_LAPACK_zgeqrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqrfp NVPL_LAPACK_GLOBAL(cgeqrfp,CGEQRFP)
void NVPL_LAPACK_cgeqrfp(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqrfp NVPL_LAPACK_GLOBAL(dgeqrfp,DGEQRFP)
void NVPL_LAPACK_dgeqrfp(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqrfp NVPL_LAPACK_GLOBAL(sgeqrfp,SGEQRFP)
void NVPL_LAPACK_sgeqrfp(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqrfp NVPL_LAPACK_GLOBAL(zgeqrfp,ZGEQRFP)
void NVPL_LAPACK_zgeqrfp(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqrt NVPL_LAPACK_GLOBAL(cgeqrt,CGEQRT)
void NVPL_LAPACK_cgeqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nb,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqrt NVPL_LAPACK_GLOBAL(dgeqrt,DGEQRT)
void NVPL_LAPACK_dgeqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nb,
    double* A, nvpl_int_t const* lda,
    double* T, nvpl_int_t const* ldt,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqrt NVPL_LAPACK_GLOBAL(sgeqrt,SGEQRT)
void NVPL_LAPACK_sgeqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nb,
    float* A, nvpl_int_t const* lda,
    float* T, nvpl_int_t const* ldt,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqrt NVPL_LAPACK_GLOBAL(zgeqrt,ZGEQRT)
void NVPL_LAPACK_zgeqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nb,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqrt2 NVPL_LAPACK_GLOBAL(cgeqrt2,CGEQRT2)
void NVPL_LAPACK_cgeqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqrt2 NVPL_LAPACK_GLOBAL(dgeqrt2,DGEQRT2)
void NVPL_LAPACK_dgeqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqrt2 NVPL_LAPACK_GLOBAL(sgeqrt2,SGEQRT2)
void NVPL_LAPACK_sgeqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqrt2 NVPL_LAPACK_GLOBAL(zgeqrt2,ZGEQRT2)
void NVPL_LAPACK_zgeqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgeqrt3 NVPL_LAPACK_GLOBAL(cgeqrt3,CGEQRT3)
void NVPL_LAPACK_cgeqrt3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgeqrt3 NVPL_LAPACK_GLOBAL(dgeqrt3,DGEQRT3)
void NVPL_LAPACK_dgeqrt3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgeqrt3 NVPL_LAPACK_GLOBAL(sgeqrt3,SGEQRT3)
void NVPL_LAPACK_sgeqrt3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgeqrt3 NVPL_LAPACK_GLOBAL(zgeqrt3,ZGEQRT3)
void NVPL_LAPACK_zgeqrt3(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgerfs_base NVPL_LAPACK_GLOBAL(cgerfs,CGERFS)
void NVPL_LAPACK_cgerfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgerfs(...) NVPL_LAPACK_cgerfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgerfs(...) NVPL_LAPACK_cgerfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgerfs_base NVPL_LAPACK_GLOBAL(dgerfs,DGERFS)
void NVPL_LAPACK_dgerfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgerfs(...) NVPL_LAPACK_dgerfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgerfs(...) NVPL_LAPACK_dgerfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgerfs_base NVPL_LAPACK_GLOBAL(sgerfs,SGERFS)
void NVPL_LAPACK_sgerfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgerfs(...) NVPL_LAPACK_sgerfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgerfs(...) NVPL_LAPACK_sgerfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgerfs_base NVPL_LAPACK_GLOBAL(zgerfs,ZGERFS)
void NVPL_LAPACK_zgerfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgerfs(...) NVPL_LAPACK_zgerfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgerfs(...) NVPL_LAPACK_zgerfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgerfsx_base NVPL_LAPACK_GLOBAL(cgerfsx,CGERFSX)
void NVPL_LAPACK_cgerfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    float const* R,
    float const* C,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgerfsx(...) NVPL_LAPACK_cgerfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgerfsx(...) NVPL_LAPACK_cgerfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgerfsx_base NVPL_LAPACK_GLOBAL(dgerfsx,DGERFSX)
void NVPL_LAPACK_dgerfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    double const* R,
    double const* C,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgerfsx(...) NVPL_LAPACK_dgerfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgerfsx(...) NVPL_LAPACK_dgerfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgerfsx_base NVPL_LAPACK_GLOBAL(sgerfsx,SGERFSX)
void NVPL_LAPACK_sgerfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    float const* R,
    float const* C,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgerfsx(...) NVPL_LAPACK_sgerfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgerfsx(...) NVPL_LAPACK_sgerfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgerfsx_base NVPL_LAPACK_GLOBAL(zgerfsx,ZGERFSX)
void NVPL_LAPACK_zgerfsx_base(
    char const* trans, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    double const* R,
    double const* C,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgerfsx(...) NVPL_LAPACK_zgerfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgerfsx(...) NVPL_LAPACK_zgerfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgerq2 NVPL_LAPACK_GLOBAL(cgerq2,CGERQ2)
void NVPL_LAPACK_cgerq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgerq2 NVPL_LAPACK_GLOBAL(dgerq2,DGERQ2)
void NVPL_LAPACK_dgerq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgerq2 NVPL_LAPACK_GLOBAL(sgerq2,SGERQ2)
void NVPL_LAPACK_sgerq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgerq2 NVPL_LAPACK_GLOBAL(zgerq2,ZGERQ2)
void NVPL_LAPACK_zgerq2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgerqf NVPL_LAPACK_GLOBAL(cgerqf,CGERQF)
void NVPL_LAPACK_cgerqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgerqf NVPL_LAPACK_GLOBAL(dgerqf,DGERQF)
void NVPL_LAPACK_dgerqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgerqf NVPL_LAPACK_GLOBAL(sgerqf,SGERQF)
void NVPL_LAPACK_sgerqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgerqf NVPL_LAPACK_GLOBAL(zgerqf,ZGERQF)
void NVPL_LAPACK_zgerqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgesdd_base NVPL_LAPACK_GLOBAL(cgesdd,CGESDD)
void NVPL_LAPACK_cgesdd_base(
    char const* jobz,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* S,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesdd(...) NVPL_LAPACK_cgesdd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgesdd(...) NVPL_LAPACK_cgesdd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgesdd_base NVPL_LAPACK_GLOBAL(dgesdd,DGESDD)
void NVPL_LAPACK_dgesdd_base(
    char const* jobz,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* S,
    double* U, nvpl_int_t const* ldu,
    double* VT, nvpl_int_t const* ldvt,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesdd(...) NVPL_LAPACK_dgesdd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgesdd(...) NVPL_LAPACK_dgesdd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesdd_base NVPL_LAPACK_GLOBAL(sgesdd,SGESDD)
void NVPL_LAPACK_sgesdd_base(
    char const* jobz,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* S,
    float* U, nvpl_int_t const* ldu,
    float* VT, nvpl_int_t const* ldvt,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesdd(...) NVPL_LAPACK_sgesdd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgesdd(...) NVPL_LAPACK_sgesdd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesdd_base NVPL_LAPACK_GLOBAL(zgesdd,ZGESDD)
void NVPL_LAPACK_zgesdd_base(
    char const* jobz,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* S,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesdd(...) NVPL_LAPACK_zgesdd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgesdd(...) NVPL_LAPACK_zgesdd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgesv NVPL_LAPACK_GLOBAL(cgesv,CGESV)
void NVPL_LAPACK_cgesv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgesv NVPL_LAPACK_GLOBAL(dgesv,DGESV)
void NVPL_LAPACK_dgesv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgesv NVPL_LAPACK_GLOBAL(sgesv,SGESV)
void NVPL_LAPACK_sgesv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgesv NVPL_LAPACK_GLOBAL(zgesv,ZGESV)
void NVPL_LAPACK_zgesv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dsgesv NVPL_LAPACK_GLOBAL(dsgesv,DSGESV)
void NVPL_LAPACK_dsgesv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* work,
    float* swork, nvpl_int_t* iter,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zcgesv NVPL_LAPACK_GLOBAL(zcgesv,ZCGESV)
void NVPL_LAPACK_zcgesv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    nvpl_dcomplex_t* work,
    nvpl_scomplex_t* swork,
    double* rwork, nvpl_int_t* iter,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgesvd_base NVPL_LAPACK_GLOBAL(cgesvd,CGESVD)
void NVPL_LAPACK_cgesvd_base(
    char const* jobu, char const* jobvt,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* S,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesvd(...) NVPL_LAPACK_cgesvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgesvd(...) NVPL_LAPACK_cgesvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgesvd_base NVPL_LAPACK_GLOBAL(dgesvd,DGESVD)
void NVPL_LAPACK_dgesvd_base(
    char const* jobu, char const* jobvt,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* S,
    double* U, nvpl_int_t const* ldu,
    double* VT, nvpl_int_t const* ldvt,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesvd(...) NVPL_LAPACK_dgesvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgesvd(...) NVPL_LAPACK_dgesvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesvd_base NVPL_LAPACK_GLOBAL(sgesvd,SGESVD)
void NVPL_LAPACK_sgesvd_base(
    char const* jobu, char const* jobvt,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* S,
    float* U, nvpl_int_t const* ldu,
    float* VT, nvpl_int_t const* ldvt,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesvd(...) NVPL_LAPACK_sgesvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgesvd(...) NVPL_LAPACK_sgesvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesvd_base NVPL_LAPACK_GLOBAL(zgesvd,ZGESVD)
void NVPL_LAPACK_zgesvd_base(
    char const* jobu, char const* jobvt,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* S,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesvd(...) NVPL_LAPACK_zgesvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgesvd(...) NVPL_LAPACK_zgesvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgesvdq_base NVPL_LAPACK_GLOBAL(cgesvdq,CGESVDQ)
void NVPL_LAPACK_cgesvdq_base(
    char const* joba, char const* jobp, char const* jobr, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* S,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv, nvpl_int_t* numrank,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_scomplex_t* cwork, nvpl_int_t* lcwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesvdq(...) NVPL_LAPACK_cgesvdq_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgesvdq(...) NVPL_LAPACK_cgesvdq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgesvdq_base NVPL_LAPACK_GLOBAL(dgesvdq,DGESVDQ)
void NVPL_LAPACK_dgesvdq_base(
    char const* joba, char const* jobp, char const* jobr, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* S,
    double* U, nvpl_int_t const* ldu,
    double* V, nvpl_int_t const* ldv, nvpl_int_t* numrank,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    double* work, nvpl_int_t* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesvdq(...) NVPL_LAPACK_dgesvdq_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgesvdq(...) NVPL_LAPACK_dgesvdq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesvdq_base NVPL_LAPACK_GLOBAL(sgesvdq,SGESVDQ)
void NVPL_LAPACK_sgesvdq_base(
    char const* joba, char const* jobp, char const* jobr, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* S,
    float* U, nvpl_int_t const* ldu,
    float* V, nvpl_int_t const* ldv, nvpl_int_t* numrank,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    float* work, nvpl_int_t* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesvdq(...) NVPL_LAPACK_sgesvdq_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgesvdq(...) NVPL_LAPACK_sgesvdq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesvdq_base NVPL_LAPACK_GLOBAL(zgesvdq,ZGESVDQ)
void NVPL_LAPACK_zgesvdq_base(
    char const* joba, char const* jobp, char const* jobr, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* S,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv, nvpl_int_t* numrank,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_dcomplex_t* cwork, nvpl_int_t* lcwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesvdq(...) NVPL_LAPACK_zgesvdq_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgesvdq(...) NVPL_LAPACK_zgesvdq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgesvdx_base NVPL_LAPACK_GLOBAL(cgesvdx,CGESVDX)
void NVPL_LAPACK_cgesvdx_base(
    char const* jobu, char const* jobvt, char const* range,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* ns,
    float* S,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesvdx(...) NVPL_LAPACK_cgesvdx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgesvdx(...) NVPL_LAPACK_cgesvdx_base(__VA_ARGS__)
#endif


#define NVPL_LAPACK_dgesvdx_base NVPL_LAPACK_GLOBAL(dgesvdx,DGESVDX)
void NVPL_LAPACK_dgesvdx_base(
    char const* jobu, char const* jobvt, char const* range,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* ns,
    double* S,
    double* U, nvpl_int_t const* ldu,
    double* VT, nvpl_int_t const* ldvt,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesvdx(...) NVPL_LAPACK_dgesvdx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgesvdx(...) NVPL_LAPACK_dgesvdx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesvdx_base NVPL_LAPACK_GLOBAL(sgesvdx,SGESVDX)
void NVPL_LAPACK_sgesvdx_base(
    char const* jobu, char const* jobvt, char const* range,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* ns,
    float* S,
    float* U, nvpl_int_t const* ldu,
    float* VT, nvpl_int_t const* ldvt,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesvdx(...) NVPL_LAPACK_sgesvdx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgesvdx(...) NVPL_LAPACK_sgesvdx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesvdx_base NVPL_LAPACK_GLOBAL(zgesvdx,ZGESVDX)
void NVPL_LAPACK_zgesvdx_base(
    char const* jobu, char const* jobvt, char const* range,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* ns,
    double* S,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* VT, nvpl_int_t const* ldvt,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesvdx(...) NVPL_LAPACK_zgesvdx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgesvdx(...) NVPL_LAPACK_zgesvdx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgesvj_base NVPL_LAPACK_GLOBAL(cgesvj,CGESVJ)
void NVPL_LAPACK_cgesvj_base(
    char const* joba, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* SVA, nvpl_int_t const* mv,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t* cwork, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesvj(...) NVPL_LAPACK_cgesvj_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgesvj(...) NVPL_LAPACK_cgesvj_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgesvj_base NVPL_LAPACK_GLOBAL(dgesvj,DGESVJ)
void NVPL_LAPACK_dgesvj_base(
    char const* joba, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* SVA, nvpl_int_t const* mv,
    double* V, nvpl_int_t const* ldv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesvj(...) NVPL_LAPACK_dgesvj_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgesvj(...) NVPL_LAPACK_dgesvj_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesvj_base NVPL_LAPACK_GLOBAL(sgesvj,SGESVJ)
void NVPL_LAPACK_sgesvj_base(
    char const* joba, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* SVA, nvpl_int_t const* mv,
    float* V, nvpl_int_t const* ldv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesvj(...) NVPL_LAPACK_sgesvj_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgesvj(...) NVPL_LAPACK_sgesvj_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesvj_base NVPL_LAPACK_GLOBAL(zgesvj,ZGESVJ)
void NVPL_LAPACK_zgesvj_base(
    char const* joba, char const* jobu, char const* jobv,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* SVA, nvpl_int_t const* mv,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* cwork, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesvj(...) NVPL_LAPACK_zgesvj_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgesvj(...) NVPL_LAPACK_zgesvj_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgesvx_base NVPL_LAPACK_GLOBAL(cgesvx,CGESVX)
void NVPL_LAPACK_cgesvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesvx(...) NVPL_LAPACK_cgesvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgesvx(...) NVPL_LAPACK_cgesvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgesvx_base NVPL_LAPACK_GLOBAL(dgesvx,DGESVX)
void NVPL_LAPACK_dgesvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesvx(...) NVPL_LAPACK_dgesvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgesvx(...) NVPL_LAPACK_dgesvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesvx_base NVPL_LAPACK_GLOBAL(sgesvx,SGESVX)
void NVPL_LAPACK_sgesvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesvx(...) NVPL_LAPACK_sgesvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgesvx(...) NVPL_LAPACK_sgesvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesvx_base NVPL_LAPACK_GLOBAL(zgesvx,ZGESVX)
void NVPL_LAPACK_zgesvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesvx(...) NVPL_LAPACK_zgesvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgesvx(...) NVPL_LAPACK_zgesvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgesvxx_base NVPL_LAPACK_GLOBAL(cgesvxx,CGESVXX)
void NVPL_LAPACK_cgesvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgesvxx(...) NVPL_LAPACK_cgesvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgesvxx(...) NVPL_LAPACK_cgesvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgesvxx_base NVPL_LAPACK_GLOBAL(dgesvxx,DGESVXX)
void NVPL_LAPACK_dgesvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgesvxx(...) NVPL_LAPACK_dgesvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgesvxx(...) NVPL_LAPACK_dgesvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgesvxx_base NVPL_LAPACK_GLOBAL(sgesvxx,SGESVXX)
void NVPL_LAPACK_sgesvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* R,
    float* C,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgesvxx(...) NVPL_LAPACK_sgesvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgesvxx(...) NVPL_LAPACK_sgesvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgesvxx_base NVPL_LAPACK_GLOBAL(zgesvxx,ZGESVXX)
void NVPL_LAPACK_zgesvxx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* R,
    double* C,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgesvxx(...) NVPL_LAPACK_zgesvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgesvxx(...) NVPL_LAPACK_zgesvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgetf2 NVPL_LAPACK_GLOBAL(cgetf2,CGETF2)
void NVPL_LAPACK_cgetf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgetf2 NVPL_LAPACK_GLOBAL(dgetf2,DGETF2)
void NVPL_LAPACK_dgetf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgetf2 NVPL_LAPACK_GLOBAL(sgetf2,SGETF2)
void NVPL_LAPACK_sgetf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgetf2 NVPL_LAPACK_GLOBAL(zgetf2,ZGETF2)
void NVPL_LAPACK_zgetf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgetrf NVPL_LAPACK_GLOBAL(cgetrf,CGETRF)
void NVPL_LAPACK_cgetrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgetrf NVPL_LAPACK_GLOBAL(dgetrf,DGETRF)
void NVPL_LAPACK_dgetrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgetrf NVPL_LAPACK_GLOBAL(sgetrf,SGETRF)
void NVPL_LAPACK_sgetrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgetrf NVPL_LAPACK_GLOBAL(zgetrf,ZGETRF)
void NVPL_LAPACK_zgetrf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgetrf2 NVPL_LAPACK_GLOBAL(cgetrf2,CGETRF2)
void NVPL_LAPACK_cgetrf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgetrf2 NVPL_LAPACK_GLOBAL(dgetrf2,DGETRF2)
void NVPL_LAPACK_dgetrf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgetrf2 NVPL_LAPACK_GLOBAL(sgetrf2,SGETRF2)
void NVPL_LAPACK_sgetrf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgetrf2 NVPL_LAPACK_GLOBAL(zgetrf2,ZGETRF2)
void NVPL_LAPACK_zgetrf2(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgetri NVPL_LAPACK_GLOBAL(cgetri,CGETRI)
void NVPL_LAPACK_cgetri(
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgetri NVPL_LAPACK_GLOBAL(dgetri,DGETRI)
void NVPL_LAPACK_dgetri(
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgetri NVPL_LAPACK_GLOBAL(sgetri,SGETRI)
void NVPL_LAPACK_sgetri(
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgetri NVPL_LAPACK_GLOBAL(zgetri,ZGETRI)
void NVPL_LAPACK_zgetri(
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgetrs_base NVPL_LAPACK_GLOBAL(cgetrs,CGETRS)
void NVPL_LAPACK_cgetrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgetrs(...) NVPL_LAPACK_cgetrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgetrs(...) NVPL_LAPACK_cgetrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgetrs_base NVPL_LAPACK_GLOBAL(dgetrs,DGETRS)
void NVPL_LAPACK_dgetrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgetrs(...) NVPL_LAPACK_dgetrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgetrs(...) NVPL_LAPACK_dgetrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgetrs_base NVPL_LAPACK_GLOBAL(sgetrs,SGETRS)
void NVPL_LAPACK_sgetrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgetrs(...) NVPL_LAPACK_sgetrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgetrs(...) NVPL_LAPACK_sgetrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgetrs_base NVPL_LAPACK_GLOBAL(zgetrs,ZGETRS)
void NVPL_LAPACK_zgetrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgetrs(...) NVPL_LAPACK_zgetrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgetrs(...) NVPL_LAPACK_zgetrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgetsls_base NVPL_LAPACK_GLOBAL(cgetsls,CGETSLS)
void NVPL_LAPACK_cgetsls_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgetsls(...) NVPL_LAPACK_cgetsls_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgetsls(...) NVPL_LAPACK_cgetsls_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgetsls_base NVPL_LAPACK_GLOBAL(dgetsls,DGETSLS)
void NVPL_LAPACK_dgetsls_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgetsls(...) NVPL_LAPACK_dgetsls_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgetsls(...) NVPL_LAPACK_dgetsls_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgetsls_base NVPL_LAPACK_GLOBAL(sgetsls,SGETSLS)
void NVPL_LAPACK_sgetsls_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgetsls(...) NVPL_LAPACK_sgetsls_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgetsls(...) NVPL_LAPACK_sgetsls_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgetsls_base NVPL_LAPACK_GLOBAL(zgetsls,ZGETSLS)
void NVPL_LAPACK_zgetsls_base(
    char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgetsls(...) NVPL_LAPACK_zgetsls_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgetsls(...) NVPL_LAPACK_zgetsls_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgetsqrhrt NVPL_LAPACK_GLOBAL(cgetsqrhrt,CGETSQRHRT)
void NVPL_LAPACK_cgetsqrhrt(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb1, nvpl_int_t const* nb1, nvpl_int_t const* nb2,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgetsqrhrt NVPL_LAPACK_GLOBAL(dgetsqrhrt,DGETSQRHRT)
void NVPL_LAPACK_dgetsqrhrt(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb1, nvpl_int_t const* nb1, nvpl_int_t const* nb2,
    double* A, nvpl_int_t const* lda,
    double* T, nvpl_int_t const* ldt,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgetsqrhrt NVPL_LAPACK_GLOBAL(sgetsqrhrt,SGETSQRHRT)
void NVPL_LAPACK_sgetsqrhrt(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb1, nvpl_int_t const* nb1, nvpl_int_t const* nb2,
    float* A, nvpl_int_t const* lda,
    float* T, nvpl_int_t const* ldt,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgetsqrhrt NVPL_LAPACK_GLOBAL(zgetsqrhrt,ZGETSQRHRT)
void NVPL_LAPACK_zgetsqrhrt(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb1, nvpl_int_t const* nb1, nvpl_int_t const* nb2,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cggbak_base NVPL_LAPACK_GLOBAL(cggbak,CGGBAK)
void NVPL_LAPACK_cggbak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float const* lscale,
    float const* rscale, nvpl_int_t const* m,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggbak(...) NVPL_LAPACK_cggbak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cggbak(...) NVPL_LAPACK_cggbak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggbak_base NVPL_LAPACK_GLOBAL(dggbak,DGGBAK)
void NVPL_LAPACK_dggbak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double const* lscale,
    double const* rscale, nvpl_int_t const* m,
    double* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggbak(...) NVPL_LAPACK_dggbak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dggbak(...) NVPL_LAPACK_dggbak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggbak_base NVPL_LAPACK_GLOBAL(sggbak,SGGBAK)
void NVPL_LAPACK_sggbak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float const* lscale,
    float const* rscale, nvpl_int_t const* m,
    float* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggbak(...) NVPL_LAPACK_sggbak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sggbak(...) NVPL_LAPACK_sggbak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggbak_base NVPL_LAPACK_GLOBAL(zggbak,ZGGBAK)
void NVPL_LAPACK_zggbak_base(
    char const* job, char const* side,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double const* lscale,
    double const* rscale, nvpl_int_t const* m,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggbak(...) NVPL_LAPACK_zggbak_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zggbak(...) NVPL_LAPACK_zggbak_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggbal_base NVPL_LAPACK_GLOBAL(cggbal,CGGBAL)
void NVPL_LAPACK_cggbal_base(
    char const* job,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* lscale,
    float* rscale,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggbal(...) NVPL_LAPACK_cggbal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cggbal(...) NVPL_LAPACK_cggbal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggbal_base NVPL_LAPACK_GLOBAL(dggbal,DGGBAL)
void NVPL_LAPACK_dggbal_base(
    char const* job,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* lscale,
    double* rscale,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggbal(...) NVPL_LAPACK_dggbal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dggbal(...) NVPL_LAPACK_dggbal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggbal_base NVPL_LAPACK_GLOBAL(sggbal,SGGBAL)
void NVPL_LAPACK_sggbal_base(
    char const* job,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* lscale,
    float* rscale,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggbal(...) NVPL_LAPACK_sggbal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sggbal(...) NVPL_LAPACK_sggbal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggbal_base NVPL_LAPACK_GLOBAL(zggbal,ZGGBAL)
void NVPL_LAPACK_zggbal_base(
    char const* job,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* lscale,
    double* rscale,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggbal(...) NVPL_LAPACK_zggbal_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zggbal(...) NVPL_LAPACK_zggbal_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgges_base NVPL_LAPACK_GLOBAL(cgges,CGGES)
void NVPL_LAPACK_cgges_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_C_SELECT2 selctg,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_scomplex_t* VSR, nvpl_int_t const* ldvsr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgges(...) NVPL_LAPACK_cgges_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgges(...) NVPL_LAPACK_cgges_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgges_base NVPL_LAPACK_GLOBAL(dgges,DGGES)
void NVPL_LAPACK_dgges_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_D_SELECT3 selctg,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    double* alphar,
    double* alphai,
    double* beta,
    double* VSL, nvpl_int_t const* ldvsl,
    double* VSR, nvpl_int_t const* ldvsr,
    double* work, nvpl_int_t const* lwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgges(...) NVPL_LAPACK_dgges_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgges(...) NVPL_LAPACK_dgges_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgges_base NVPL_LAPACK_GLOBAL(sgges,SGGES)
void NVPL_LAPACK_sgges_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_S_SELECT3 selctg,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    float* alphar,
    float* alphai,
    float* beta,
    float* VSL, nvpl_int_t const* ldvsl,
    float* VSR, nvpl_int_t const* ldvsr,
    float* work, nvpl_int_t const* lwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgges(...) NVPL_LAPACK_sgges_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgges(...) NVPL_LAPACK_sgges_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgges_base NVPL_LAPACK_GLOBAL(zgges,ZGGES)
void NVPL_LAPACK_zgges_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_Z_SELECT2 selctg,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_dcomplex_t* VSR, nvpl_int_t const* ldvsr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgges(...) NVPL_LAPACK_zgges_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgges(...) NVPL_LAPACK_zgges_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgges3_base NVPL_LAPACK_GLOBAL(cgges3,CGGES3)
void NVPL_LAPACK_cgges3_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_C_SELECT2 selctg,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_scomplex_t* VSR, nvpl_int_t const* ldvsr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgges3(...) NVPL_LAPACK_cgges3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cgges3(...) NVPL_LAPACK_cgges3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgges3_base NVPL_LAPACK_GLOBAL(dgges3,DGGES3)
void NVPL_LAPACK_dgges3_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_D_SELECT3 selctg,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    double* alphar,
    double* alphai,
    double* beta,
    double* VSL, nvpl_int_t const* ldvsl,
    double* VSR, nvpl_int_t const* ldvsr,
    double* work, nvpl_int_t const* lwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgges3(...) NVPL_LAPACK_dgges3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dgges3(...) NVPL_LAPACK_dgges3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgges3_base NVPL_LAPACK_GLOBAL(sgges3,SGGES3)
void NVPL_LAPACK_sgges3_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_S_SELECT3 selctg,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    float* alphar,
    float* alphai,
    float* beta,
    float* VSL, nvpl_int_t const* ldvsl,
    float* VSR, nvpl_int_t const* ldvsr,
    float* work, nvpl_int_t const* lwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgges3(...) NVPL_LAPACK_sgges3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sgges3(...) NVPL_LAPACK_sgges3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgges3_base NVPL_LAPACK_GLOBAL(zgges3,ZGGES3)
void NVPL_LAPACK_zgges3_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_Z_SELECT2 selctg,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_dcomplex_t* VSR, nvpl_int_t const* ldvsr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgges3(...) NVPL_LAPACK_zgges3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zgges3(...) NVPL_LAPACK_zgges3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggesx_base NVPL_LAPACK_GLOBAL(cggesx,CGGESX)
void NVPL_LAPACK_cggesx_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_C_SELECT2 selctg, char const* sense,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_scomplex_t* VSR, nvpl_int_t const* ldvsr,
    float* rconde,
    float* rcondv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggesx(...) NVPL_LAPACK_cggesx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cggesx(...) NVPL_LAPACK_cggesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggesx_base NVPL_LAPACK_GLOBAL(dggesx,DGGESX)
void NVPL_LAPACK_dggesx_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_D_SELECT3 selctg, char const* sense,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    double* alphar,
    double* alphai,
    double* beta,
    double* VSL, nvpl_int_t const* ldvsl,
    double* VSR, nvpl_int_t const* ldvsr,
    double* rconde,
    double* rcondv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggesx(...) NVPL_LAPACK_dggesx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dggesx(...) NVPL_LAPACK_dggesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggesx_base NVPL_LAPACK_GLOBAL(sggesx,SGGESX)
void NVPL_LAPACK_sggesx_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_S_SELECT3 selctg, char const* sense,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    float* alphar,
    float* alphai,
    float* beta,
    float* VSL, nvpl_int_t const* ldvsl,
    float* VSR, nvpl_int_t const* ldvsr,
    float* rconde,
    float* rcondv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggesx(...) NVPL_LAPACK_sggesx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sggesx(...) NVPL_LAPACK_sggesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggesx_base NVPL_LAPACK_GLOBAL(zggesx,ZGGESX)
void NVPL_LAPACK_zggesx_base(
    char const* jobvsl, char const* jobvsr, char const* sort, NVPL_LAPACK_Z_SELECT2 selctg, char const* sense,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* sdim,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_dcomplex_t* VSR, nvpl_int_t const* ldvsr,
    double* rconde,
    double* rcondv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggesx(...) NVPL_LAPACK_zggesx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zggesx(...) NVPL_LAPACK_zggesx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggev_base NVPL_LAPACK_GLOBAL(cggev,CGGEV)
void NVPL_LAPACK_cggev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggev(...) NVPL_LAPACK_cggev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cggev(...) NVPL_LAPACK_cggev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggev_base NVPL_LAPACK_GLOBAL(dggev,DGGEV)
void NVPL_LAPACK_dggev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alphar,
    double* alphai,
    double* beta,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggev(...) NVPL_LAPACK_dggev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dggev(...) NVPL_LAPACK_dggev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggev_base NVPL_LAPACK_GLOBAL(sggev,SGGEV)
void NVPL_LAPACK_sggev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alphar,
    float* alphai,
    float* beta,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggev(...) NVPL_LAPACK_sggev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sggev(...) NVPL_LAPACK_sggev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggev_base NVPL_LAPACK_GLOBAL(zggev,ZGGEV)
void NVPL_LAPACK_zggev_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggev(...) NVPL_LAPACK_zggev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zggev(...) NVPL_LAPACK_zggev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggev3_base NVPL_LAPACK_GLOBAL(cggev3,CGGEV3)
void NVPL_LAPACK_cggev3_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggev3(...) NVPL_LAPACK_cggev3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cggev3(...) NVPL_LAPACK_cggev3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggev3_base NVPL_LAPACK_GLOBAL(dggev3,DGGEV3)
void NVPL_LAPACK_dggev3_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alphar,
    double* alphai,
    double* beta,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggev3(...) NVPL_LAPACK_dggev3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dggev3(...) NVPL_LAPACK_dggev3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggev3_base NVPL_LAPACK_GLOBAL(sggev3,SGGEV3)
void NVPL_LAPACK_sggev3_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alphar,
    float* alphai,
    float* beta,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggev3(...) NVPL_LAPACK_sggev3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sggev3(...) NVPL_LAPACK_sggev3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggev3_base NVPL_LAPACK_GLOBAL(zggev3,ZGGEV3)
void NVPL_LAPACK_zggev3_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggev3(...) NVPL_LAPACK_zggev3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zggev3(...) NVPL_LAPACK_zggev3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggevx_base NVPL_LAPACK_GLOBAL(cggevx,CGGEVX)
void NVPL_LAPACK_cggevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* lscale,
    float* rscale,
    float* abnrm,
    float* bbnrm,
    float* rconde,
    float* rcondv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggevx(...) NVPL_LAPACK_cggevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cggevx(...) NVPL_LAPACK_cggevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggevx_base NVPL_LAPACK_GLOBAL(dggevx,DGGEVX)
void NVPL_LAPACK_dggevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alphar,
    double* alphai,
    double* beta,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* lscale,
    double* rscale,
    double* abnrm,
    double* bbnrm,
    double* rconde,
    double* rcondv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggevx(...) NVPL_LAPACK_dggevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dggevx(...) NVPL_LAPACK_dggevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggevx_base NVPL_LAPACK_GLOBAL(sggevx,SGGEVX)
void NVPL_LAPACK_sggevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alphar,
    float* alphai,
    float* beta,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    float* lscale,
    float* rscale,
    float* abnrm,
    float* bbnrm,
    float* rconde,
    float* rcondv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggevx(...) NVPL_LAPACK_sggevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sggevx(...) NVPL_LAPACK_sggevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggevx_base NVPL_LAPACK_GLOBAL(zggevx,ZGGEVX)
void NVPL_LAPACK_zggevx_base(
    char const* balanc, char const* jobvl, char const* jobvr, char const* sense,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t* ilo, nvpl_int_t* ihi,
    double* lscale,
    double* rscale,
    double* abnrm,
    double* bbnrm,
    double* rconde,
    double* rcondv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork, nvpl_lapack_logical* BWORK,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggevx(...) NVPL_LAPACK_zggevx_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zggevx(...) NVPL_LAPACK_zggevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggglm NVPL_LAPACK_GLOBAL(cggglm,CGGGLM)
void NVPL_LAPACK_cggglm(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* D,
    nvpl_scomplex_t* X,
    nvpl_scomplex_t* Y,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dggglm NVPL_LAPACK_GLOBAL(dggglm,DGGGLM)
void NVPL_LAPACK_dggglm(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* D,
    double* X,
    double* Y,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sggglm NVPL_LAPACK_GLOBAL(sggglm,SGGGLM)
void NVPL_LAPACK_sggglm(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* D,
    float* X,
    float* Y,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zggglm NVPL_LAPACK_GLOBAL(zggglm,ZGGGLM)
void NVPL_LAPACK_zggglm(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* D,
    nvpl_dcomplex_t* X,
    nvpl_dcomplex_t* Y,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgghd3_base NVPL_LAPACK_GLOBAL(cgghd3,CGGHD3)
void NVPL_LAPACK_cgghd3_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgghd3(...) NVPL_LAPACK_cgghd3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgghd3(...) NVPL_LAPACK_cgghd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgghd3_base NVPL_LAPACK_GLOBAL(dgghd3,DGGHD3)
void NVPL_LAPACK_dgghd3_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* Q, nvpl_int_t const* ldq,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgghd3(...) NVPL_LAPACK_dgghd3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgghd3(...) NVPL_LAPACK_dgghd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgghd3_base NVPL_LAPACK_GLOBAL(sgghd3,SGGHD3)
void NVPL_LAPACK_sgghd3_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* Q, nvpl_int_t const* ldq,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgghd3(...) NVPL_LAPACK_sgghd3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgghd3(...) NVPL_LAPACK_sgghd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgghd3_base NVPL_LAPACK_GLOBAL(zgghd3,ZGGHD3)
void NVPL_LAPACK_zgghd3_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgghd3(...) NVPL_LAPACK_zgghd3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgghd3(...) NVPL_LAPACK_zgghd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgghrd_base NVPL_LAPACK_GLOBAL(cgghrd,CGGHRD)
void NVPL_LAPACK_cgghrd_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgghrd(...) NVPL_LAPACK_cgghrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgghrd(...) NVPL_LAPACK_cgghrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgghrd_base NVPL_LAPACK_GLOBAL(dgghrd,DGGHRD)
void NVPL_LAPACK_dgghrd_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* Q, nvpl_int_t const* ldq,
    double* Z, nvpl_int_t const* ldz,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgghrd(...) NVPL_LAPACK_dgghrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgghrd(...) NVPL_LAPACK_dgghrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgghrd_base NVPL_LAPACK_GLOBAL(sgghrd,SGGHRD)
void NVPL_LAPACK_sgghrd_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* Q, nvpl_int_t const* ldq,
    float* Z, nvpl_int_t const* ldz,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgghrd(...) NVPL_LAPACK_sgghrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgghrd(...) NVPL_LAPACK_sgghrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgghrd_base NVPL_LAPACK_GLOBAL(zgghrd,ZGGHRD)
void NVPL_LAPACK_zgghrd_base(
    char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgghrd(...) NVPL_LAPACK_zgghrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgghrd(...) NVPL_LAPACK_zgghrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgglse NVPL_LAPACK_GLOBAL(cgglse,CGGLSE)
void NVPL_LAPACK_cgglse(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* C,
    nvpl_scomplex_t* D,
    nvpl_scomplex_t* X,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgglse NVPL_LAPACK_GLOBAL(dgglse,DGGLSE)
void NVPL_LAPACK_dgglse(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* C,
    double* D,
    double* X,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgglse NVPL_LAPACK_GLOBAL(sgglse,SGGLSE)
void NVPL_LAPACK_sgglse(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* C,
    float* D,
    float* X,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgglse NVPL_LAPACK_GLOBAL(zgglse,ZGGLSE)
void NVPL_LAPACK_zgglse(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* C,
    nvpl_dcomplex_t* D,
    nvpl_dcomplex_t* X,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cggqrf NVPL_LAPACK_GLOBAL(cggqrf,CGGQRF)
void NVPL_LAPACK_cggqrf(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* taua,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* taub,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dggqrf NVPL_LAPACK_GLOBAL(dggqrf,DGGQRF)
void NVPL_LAPACK_dggqrf(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    double* A, nvpl_int_t const* lda,
    double* taua,
    double* B, nvpl_int_t const* ldb,
    double* taub,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sggqrf NVPL_LAPACK_GLOBAL(sggqrf,SGGQRF)
void NVPL_LAPACK_sggqrf(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    float* A, nvpl_int_t const* lda,
    float* taua,
    float* B, nvpl_int_t const* ldb,
    float* taub,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zggqrf NVPL_LAPACK_GLOBAL(zggqrf,ZGGQRF)
void NVPL_LAPACK_zggqrf(
    nvpl_int_t const* n, nvpl_int_t const* m, nvpl_int_t const* p,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* taua,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* taub,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cggrqf NVPL_LAPACK_GLOBAL(cggrqf,CGGRQF)
void NVPL_LAPACK_cggrqf(
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* taua,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* taub,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dggrqf NVPL_LAPACK_GLOBAL(dggrqf,DGGRQF)
void NVPL_LAPACK_dggrqf(
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* taua,
    double* B, nvpl_int_t const* ldb,
    double* taub,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sggrqf NVPL_LAPACK_GLOBAL(sggrqf,SGGRQF)
void NVPL_LAPACK_sggrqf(
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* taua,
    float* B, nvpl_int_t const* ldb,
    float* taub,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zggrqf NVPL_LAPACK_GLOBAL(zggrqf,ZGGRQF)
void NVPL_LAPACK_zggrqf(
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* taua,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* taub,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cggsvd_base NVPL_LAPACK_GLOBAL(cggsvd,CGGSVD)
nvpl_int_t NVPL_LAPACK_cggsvd_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    nvpl_int_t* k, nvpl_int_t* l,
    nvpl_scomplex_t* a, nvpl_int_t const* lda,
    nvpl_scomplex_t* b, nvpl_int_t const* ldb,
    float* alpha, float* beta,
    nvpl_scomplex_t* u, nvpl_int_t const* ldu,
    nvpl_scomplex_t* v, nvpl_int_t const* ldv,
    nvpl_scomplex_t* q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* work, float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(cggsvd,CGGSVD));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggsvd(...) NVPL_LAPACK_cggsvd_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cggsvd(...) NVPL_LAPACK_cggsvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggsvd_base NVPL_LAPACK_GLOBAL(sggsvd,SGGSVD)
nvpl_int_t NVPL_LAPACK_sggsvd_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    nvpl_int_t* k, nvpl_int_t* l,
    float* a, nvpl_int_t const* lda,
    float* b, nvpl_int_t const* ldb,
    float* alpha, float* beta,
    float* u, nvpl_int_t const* ldu,
    float* v, nvpl_int_t const* ldv,
    float* q, nvpl_int_t const* ldq,
    float* work, nvpl_int_t* iwork, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(sggsvd,SGGSVD));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggsvd(...) NVPL_LAPACK_sggsvd_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sggsvd(...) NVPL_LAPACK_sggsvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggsvd_base NVPL_LAPACK_GLOBAL(dggsvd,DGGSVD)
nvpl_int_t NVPL_LAPACK_dggsvd_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    nvpl_int_t* k, nvpl_int_t* l,
    double* a, nvpl_int_t const* lda,
    double* b, nvpl_int_t const* ldb,
    double* alpha, double* beta,
    double* u, nvpl_int_t const* ldu,
    double* v, nvpl_int_t const* ldv,
    double* q, nvpl_int_t const* ldq,
    double* work, nvpl_int_t* iwork, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dggsvd,DGGSVD));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggsvd(...) NVPL_LAPACK_dggsvd_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dggsvd(...) NVPL_LAPACK_dggsvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggsvd_base NVPL_LAPACK_GLOBAL(zggsvd,ZGGSVD)
nvpl_int_t NVPL_LAPACK_zggsvd_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p,
    nvpl_int_t* k, nvpl_int_t* l,
    nvpl_dcomplex_t* a, nvpl_int_t const* lda,
    nvpl_dcomplex_t* b, nvpl_int_t const* ldb,
    double* alpha, double* beta,
    nvpl_dcomplex_t* u, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* v, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* work, double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zggsvd,ZGGSVD));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggsvd(...) NVPL_LAPACK_zggsvd_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zggsvd(...) NVPL_LAPACK_zggsvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggsvd3_base NVPL_LAPACK_GLOBAL(cggsvd3,CGGSVD3)
void NVPL_LAPACK_cggsvd3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p, nvpl_int_t* k, nvpl_int_t* l,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float* alpha,
    float* beta,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggsvd3(...) NVPL_LAPACK_cggsvd3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cggsvd3(...) NVPL_LAPACK_cggsvd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggsvd3_base NVPL_LAPACK_GLOBAL(dggsvd3,DGGSVD3)
void NVPL_LAPACK_dggsvd3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p, nvpl_int_t* k, nvpl_int_t* l,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alpha,
    double* beta,
    double* U, nvpl_int_t const* ldu,
    double* V, nvpl_int_t const* ldv,
    double* Q, nvpl_int_t const* ldq,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggsvd3(...) NVPL_LAPACK_dggsvd3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dggsvd3(...) NVPL_LAPACK_dggsvd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggsvd3_base NVPL_LAPACK_GLOBAL(sggsvd3,SGGSVD3)
void NVPL_LAPACK_sggsvd3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p, nvpl_int_t* k, nvpl_int_t* l,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alpha,
    float* beta,
    float* U, nvpl_int_t const* ldu,
    float* V, nvpl_int_t const* ldv,
    float* Q, nvpl_int_t const* ldq,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggsvd3(...) NVPL_LAPACK_sggsvd3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sggsvd3(...) NVPL_LAPACK_sggsvd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggsvd3_base NVPL_LAPACK_GLOBAL(zggsvd3,ZGGSVD3)
void NVPL_LAPACK_zggsvd3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* p, nvpl_int_t* k, nvpl_int_t* l,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double* alpha,
    double* beta,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggsvd3(...) NVPL_LAPACK_zggsvd3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zggsvd3(...) NVPL_LAPACK_zggsvd3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggsvp_base NVPL_LAPACK_GLOBAL(sggsvp,SGGSVP)
nvpl_int_t NVPL_LAPACK_sggsvp_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    float* a, nvpl_int_t const* lda,
    float* b, nvpl_int_t const* ldb,
    float* tola, float* tolb,
    nvpl_int_t* k, nvpl_int_t* l,
    float* u, nvpl_int_t const* ldu,
    float* v, nvpl_int_t const* ldv,
    float* q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork, float* tau,
    float* work, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(sggsvp,SGGSVP));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggsvp(...) NVPL_LAPACK_sggsvp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sggsvp(...) NVPL_LAPACK_sggsvp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggsvp_base NVPL_LAPACK_GLOBAL(dggsvp,DGGSVP)
nvpl_int_t NVPL_LAPACK_dggsvp_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    double* a, nvpl_int_t const* lda,
    double* b, nvpl_int_t const* ldb,
    double* tola, double* tolb,
    nvpl_int_t* k, nvpl_int_t* l,
    double* u, nvpl_int_t const* ldu,
    double* v, nvpl_int_t const* ldv,
    double* q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork, double* tau,
    double* work, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dggsvp,DGGSVP));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggsvp(...) NVPL_LAPACK_dggsvp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dggsvp(...) NVPL_LAPACK_dggsvp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggsvp_base NVPL_LAPACK_GLOBAL(cggsvp,CGGSVP)
nvpl_int_t NVPL_LAPACK_cggsvp_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    nvpl_scomplex_t* a, nvpl_int_t const* lda,
    nvpl_scomplex_t* b, nvpl_int_t const* ldb,
    float* tola, float* tolb, nvpl_int_t* k, nvpl_int_t* l,
    nvpl_scomplex_t* u, nvpl_int_t const* ldu,
    nvpl_scomplex_t* v, nvpl_int_t const* ldv,
    nvpl_scomplex_t* q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork, float* rwork, nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(cggsvp,CGGSVP));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggsvp(...) NVPL_LAPACK_cggsvp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cggsvp(...) NVPL_LAPACK_cggsvp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggsvp_base NVPL_LAPACK_GLOBAL(zggsvp,ZGGSVP)
nvpl_int_t NVPL_LAPACK_zggsvp_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    nvpl_dcomplex_t* a, nvpl_int_t const* lda,
    nvpl_dcomplex_t* b, nvpl_int_t const* ldb,
    double* tola, double* tolb, nvpl_int_t* k, nvpl_int_t* l,
    nvpl_dcomplex_t* u, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* v, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork, double* rwork, nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zggsvp,ZGGSVP));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggsvp(...) NVPL_LAPACK_zggsvp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zggsvp(...) NVPL_LAPACK_zggsvp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cggsvp3_base NVPL_LAPACK_GLOBAL(cggsvp3,CGGSVP3)
void NVPL_LAPACK_cggsvp3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float const* tola,
    float const* tolb, nvpl_int_t* k, nvpl_int_t* l,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork,
    float* rwork,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cggsvp3(...) NVPL_LAPACK_cggsvp3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cggsvp3(...) NVPL_LAPACK_cggsvp3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dggsvp3_base NVPL_LAPACK_GLOBAL(dggsvp3,DGGSVP3)
void NVPL_LAPACK_dggsvp3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double const* tola,
    double const* tolb, nvpl_int_t* k, nvpl_int_t* l,
    double* U, nvpl_int_t const* ldu,
    double* V, nvpl_int_t const* ldv,
    double* Q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dggsvp3(...) NVPL_LAPACK_dggsvp3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dggsvp3(...) NVPL_LAPACK_dggsvp3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sggsvp3_base NVPL_LAPACK_GLOBAL(sggsvp3,SGGSVP3)
void NVPL_LAPACK_sggsvp3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float const* tola,
    float const* tolb, nvpl_int_t* k, nvpl_int_t* l,
    float* U, nvpl_int_t const* ldu,
    float* V, nvpl_int_t const* ldv,
    float* Q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sggsvp3(...) NVPL_LAPACK_sggsvp3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sggsvp3(...) NVPL_LAPACK_sggsvp3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zggsvp3_base NVPL_LAPACK_GLOBAL(zggsvp3,ZGGSVP3)
void NVPL_LAPACK_zggsvp3_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double const* tola,
    double const* tolb, nvpl_int_t* k, nvpl_int_t* l,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_int_t* iwork,
    double* rwork,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zggsvp3(...) NVPL_LAPACK_zggsvp3_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zggsvp3(...) NVPL_LAPACK_zggsvp3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgtcon_base NVPL_LAPACK_GLOBAL(cgtcon,CGTCON)
void NVPL_LAPACK_cgtcon_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* DL,
    nvpl_scomplex_t const* D,
    nvpl_scomplex_t const* DU,
    nvpl_scomplex_t const* DU2, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgtcon(...) NVPL_LAPACK_cgtcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgtcon(...) NVPL_LAPACK_cgtcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgtcon_base NVPL_LAPACK_GLOBAL(dgtcon,DGTCON)
void NVPL_LAPACK_dgtcon_base(
    char const* norm,
    nvpl_int_t const* n,
    double const* DL,
    double const* D,
    double const* DU,
    double const* DU2, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgtcon(...) NVPL_LAPACK_dgtcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgtcon(...) NVPL_LAPACK_dgtcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgtcon_base NVPL_LAPACK_GLOBAL(sgtcon,SGTCON)
void NVPL_LAPACK_sgtcon_base(
    char const* norm,
    nvpl_int_t const* n,
    float const* DL,
    float const* D,
    float const* DU,
    float const* DU2, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgtcon(...) NVPL_LAPACK_sgtcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgtcon(...) NVPL_LAPACK_sgtcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgtcon_base NVPL_LAPACK_GLOBAL(zgtcon,ZGTCON)
void NVPL_LAPACK_zgtcon_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* DL,
    nvpl_dcomplex_t const* D,
    nvpl_dcomplex_t const* DU,
    nvpl_dcomplex_t const* DU2, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgtcon(...) NVPL_LAPACK_zgtcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgtcon(...) NVPL_LAPACK_zgtcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgtrfs_base NVPL_LAPACK_GLOBAL(cgtrfs,CGTRFS)
void NVPL_LAPACK_cgtrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* DL,
    nvpl_scomplex_t const* D,
    nvpl_scomplex_t const* DU,
    nvpl_scomplex_t const* DLF,
    nvpl_scomplex_t const* DF,
    nvpl_scomplex_t const* DUF,
    nvpl_scomplex_t const* DU2, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgtrfs(...) NVPL_LAPACK_cgtrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgtrfs(...) NVPL_LAPACK_cgtrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgtrfs_base NVPL_LAPACK_GLOBAL(dgtrfs,DGTRFS)
void NVPL_LAPACK_dgtrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* DL,
    double const* D,
    double const* DU,
    double const* DLF,
    double const* DF,
    double const* DUF,
    double const* DU2, nvpl_int_t const* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgtrfs(...) NVPL_LAPACK_dgtrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgtrfs(...) NVPL_LAPACK_dgtrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgtrfs_base NVPL_LAPACK_GLOBAL(sgtrfs,SGTRFS)
void NVPL_LAPACK_sgtrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* DL,
    float const* D,
    float const* DU,
    float const* DLF,
    float const* DF,
    float const* DUF,
    float const* DU2, nvpl_int_t const* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgtrfs(...) NVPL_LAPACK_sgtrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgtrfs(...) NVPL_LAPACK_sgtrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgtrfs_base NVPL_LAPACK_GLOBAL(zgtrfs,ZGTRFS)
void NVPL_LAPACK_zgtrfs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* DL,
    nvpl_dcomplex_t const* D,
    nvpl_dcomplex_t const* DU,
    nvpl_dcomplex_t const* DLF,
    nvpl_dcomplex_t const* DF,
    nvpl_dcomplex_t const* DUF,
    nvpl_dcomplex_t const* DU2, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgtrfs(...) NVPL_LAPACK_zgtrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgtrfs(...) NVPL_LAPACK_zgtrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgtsv NVPL_LAPACK_GLOBAL(cgtsv,CGTSV)
void NVPL_LAPACK_cgtsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* DL,
    nvpl_scomplex_t* D,
    nvpl_scomplex_t* DU,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgtsv NVPL_LAPACK_GLOBAL(dgtsv,DGTSV)
void NVPL_LAPACK_dgtsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* DL,
    double* D,
    double* DU,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgtsv NVPL_LAPACK_GLOBAL(sgtsv,SGTSV)
void NVPL_LAPACK_sgtsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* DL,
    float* D,
    float* DU,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgtsv NVPL_LAPACK_GLOBAL(zgtsv,ZGTSV)
void NVPL_LAPACK_zgtsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* DL,
    nvpl_dcomplex_t* D,
    nvpl_dcomplex_t* DU,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgtsvx_base NVPL_LAPACK_GLOBAL(cgtsvx,CGTSVX)
void NVPL_LAPACK_cgtsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* DL,
    nvpl_scomplex_t const* D,
    nvpl_scomplex_t const* DU,
    nvpl_scomplex_t* DLF,
    nvpl_scomplex_t* DF,
    nvpl_scomplex_t* DUF,
    nvpl_scomplex_t* DU2, nvpl_int_t* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgtsvx(...) NVPL_LAPACK_cgtsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgtsvx(...) NVPL_LAPACK_cgtsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgtsvx_base NVPL_LAPACK_GLOBAL(dgtsvx,DGTSVX)
void NVPL_LAPACK_dgtsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* DL,
    double const* D,
    double const* DU,
    double* DLF,
    double* DF,
    double* DUF,
    double* DU2, nvpl_int_t* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgtsvx(...) NVPL_LAPACK_dgtsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgtsvx(...) NVPL_LAPACK_dgtsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgtsvx_base NVPL_LAPACK_GLOBAL(sgtsvx,SGTSVX)
void NVPL_LAPACK_sgtsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* DL,
    float const* D,
    float const* DU,
    float* DLF,
    float* DF,
    float* DUF,
    float* DU2, nvpl_int_t* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgtsvx(...) NVPL_LAPACK_sgtsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgtsvx(...) NVPL_LAPACK_sgtsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgtsvx_base NVPL_LAPACK_GLOBAL(zgtsvx,ZGTSVX)
void NVPL_LAPACK_zgtsvx_base(
    char const* fact, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* DL,
    nvpl_dcomplex_t const* D,
    nvpl_dcomplex_t const* DU,
    nvpl_dcomplex_t* DLF,
    nvpl_dcomplex_t* DF,
    nvpl_dcomplex_t* DUF,
    nvpl_dcomplex_t* DU2, nvpl_int_t* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgtsvx(...) NVPL_LAPACK_zgtsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgtsvx(...) NVPL_LAPACK_zgtsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgttrf NVPL_LAPACK_GLOBAL(cgttrf,CGTTRF)
void NVPL_LAPACK_cgttrf(
    nvpl_int_t const* n,
    nvpl_scomplex_t* DL,
    nvpl_scomplex_t* D,
    nvpl_scomplex_t* DU,
    nvpl_scomplex_t* DU2, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dgttrf NVPL_LAPACK_GLOBAL(dgttrf,DGTTRF)
void NVPL_LAPACK_dgttrf(
    nvpl_int_t const* n,
    double* DL,
    double* D,
    double* DU,
    double* DU2, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sgttrf NVPL_LAPACK_GLOBAL(sgttrf,SGTTRF)
void NVPL_LAPACK_sgttrf(
    nvpl_int_t const* n,
    float* DL,
    float* D,
    float* DU,
    float* DU2, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zgttrf NVPL_LAPACK_GLOBAL(zgttrf,ZGTTRF)
void NVPL_LAPACK_zgttrf(
    nvpl_int_t const* n,
    nvpl_dcomplex_t* DL,
    nvpl_dcomplex_t* D,
    nvpl_dcomplex_t* DU,
    nvpl_dcomplex_t* DU2, nvpl_int_t* ipiv,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cgttrs_base NVPL_LAPACK_GLOBAL(cgttrs,CGTTRS)
void NVPL_LAPACK_cgttrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* DL,
    nvpl_scomplex_t const* D,
    nvpl_scomplex_t const* DU,
    nvpl_scomplex_t const* DU2, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgttrs(...) NVPL_LAPACK_cgttrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cgttrs(...) NVPL_LAPACK_cgttrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgttrs_base NVPL_LAPACK_GLOBAL(dgttrs,DGTTRS)
void NVPL_LAPACK_dgttrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* DL,
    double const* D,
    double const* DU,
    double const* DU2, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgttrs(...) NVPL_LAPACK_dgttrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dgttrs(...) NVPL_LAPACK_dgttrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgttrs_base NVPL_LAPACK_GLOBAL(sgttrs,SGTTRS)
void NVPL_LAPACK_sgttrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* DL,
    float const* D,
    float const* DU,
    float const* DU2, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgttrs(...) NVPL_LAPACK_sgttrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sgttrs(...) NVPL_LAPACK_sgttrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgttrs_base NVPL_LAPACK_GLOBAL(zgttrs,ZGTTRS)
void NVPL_LAPACK_zgttrs_base(
    char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* DL,
    nvpl_dcomplex_t const* D,
    nvpl_dcomplex_t const* DU,
    nvpl_dcomplex_t const* DU2, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgttrs(...) NVPL_LAPACK_zgttrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zgttrs(...) NVPL_LAPACK_zgttrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbev_base NVPL_LAPACK_GLOBAL(chbev,CHBEV)
void NVPL_LAPACK_chbev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbev(...) NVPL_LAPACK_chbev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbev(...) NVPL_LAPACK_chbev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbev_base NVPL_LAPACK_GLOBAL(zhbev,ZHBEV)
void NVPL_LAPACK_zhbev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbev(...) NVPL_LAPACK_zhbev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbev(...) NVPL_LAPACK_zhbev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbev_2stage_base NVPL_LAPACK_GLOBAL(chbev_2stage,CHBEV_2STAGE)
void NVPL_LAPACK_chbev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbev_2stage(...) NVPL_LAPACK_chbev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbev_2stage(...) NVPL_LAPACK_chbev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbev_2stage_base NVPL_LAPACK_GLOBAL(zhbev_2stage,ZHBEV_2STAGE)
void NVPL_LAPACK_zhbev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbev_2stage(...) NVPL_LAPACK_zhbev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbev_2stage(...) NVPL_LAPACK_zhbev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbevd_base NVPL_LAPACK_GLOBAL(chbevd,CHBEVD)
void NVPL_LAPACK_chbevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbevd(...) NVPL_LAPACK_chbevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbevd(...) NVPL_LAPACK_chbevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbevd_base NVPL_LAPACK_GLOBAL(zhbevd,ZHBEVD)
void NVPL_LAPACK_zhbevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbevd(...) NVPL_LAPACK_zhbevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbevd(...) NVPL_LAPACK_zhbevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbevd_2stage_base NVPL_LAPACK_GLOBAL(chbevd_2stage,CHBEVD_2STAGE)
void NVPL_LAPACK_chbevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbevd_2stage(...) NVPL_LAPACK_chbevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbevd_2stage(...) NVPL_LAPACK_chbevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbevd_2stage_base NVPL_LAPACK_GLOBAL(zhbevd_2stage,ZHBEVD_2STAGE)
void NVPL_LAPACK_zhbevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbevd_2stage(...) NVPL_LAPACK_zhbevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbevd_2stage(...) NVPL_LAPACK_zhbevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbevx_base NVPL_LAPACK_GLOBAL(chbevx,CHBEVX)
void NVPL_LAPACK_chbevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbevx(...) NVPL_LAPACK_chbevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chbevx(...) NVPL_LAPACK_chbevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbevx_base NVPL_LAPACK_GLOBAL(zhbevx,ZHBEVX)
void NVPL_LAPACK_zhbevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbevx(...) NVPL_LAPACK_zhbevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhbevx(...) NVPL_LAPACK_zhbevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbevx_2stage_base NVPL_LAPACK_GLOBAL(chbevx_2stage,CHBEVX_2STAGE)
void NVPL_LAPACK_chbevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbevx_2stage(...) NVPL_LAPACK_chbevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chbevx_2stage(...) NVPL_LAPACK_chbevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbevx_2stage_base NVPL_LAPACK_GLOBAL(zhbevx_2stage,ZHBEVX_2STAGE)
void NVPL_LAPACK_zhbevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbevx_2stage(...) NVPL_LAPACK_zhbevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhbevx_2stage(...) NVPL_LAPACK_zhbevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbgst_base NVPL_LAPACK_GLOBAL(chbgst,CHBGST)
void NVPL_LAPACK_chbgst_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t const* BB, nvpl_int_t const* ldbb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbgst(...) NVPL_LAPACK_chbgst_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbgst(...) NVPL_LAPACK_chbgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbgst_base NVPL_LAPACK_GLOBAL(zhbgst,ZHBGST)
void NVPL_LAPACK_zhbgst_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t const* BB, nvpl_int_t const* ldbb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbgst(...) NVPL_LAPACK_zhbgst_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbgst(...) NVPL_LAPACK_zhbgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbgv_base NVPL_LAPACK_GLOBAL(chbgv,CHBGV)
void NVPL_LAPACK_chbgv_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* BB, nvpl_int_t const* ldbb,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbgv(...) NVPL_LAPACK_chbgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbgv(...) NVPL_LAPACK_chbgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbgv_base NVPL_LAPACK_GLOBAL(zhbgv,ZHBGV)
void NVPL_LAPACK_zhbgv_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* BB, nvpl_int_t const* ldbb,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbgv(...) NVPL_LAPACK_zhbgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbgv(...) NVPL_LAPACK_zhbgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbgvd_base NVPL_LAPACK_GLOBAL(chbgvd,CHBGVD)
void NVPL_LAPACK_chbgvd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* BB, nvpl_int_t const* ldbb,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbgvd(...) NVPL_LAPACK_chbgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbgvd(...) NVPL_LAPACK_chbgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbgvd_base NVPL_LAPACK_GLOBAL(zhbgvd,ZHBGVD)
void NVPL_LAPACK_zhbgvd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* BB, nvpl_int_t const* ldbb,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbgvd(...) NVPL_LAPACK_zhbgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbgvd(...) NVPL_LAPACK_zhbgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbgvx_base NVPL_LAPACK_GLOBAL(chbgvx,CHBGVX)
void NVPL_LAPACK_chbgvx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* BB, nvpl_int_t const* ldbb,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbgvx(...) NVPL_LAPACK_chbgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chbgvx(...) NVPL_LAPACK_chbgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbgvx_base NVPL_LAPACK_GLOBAL(zhbgvx,ZHBGVX)
void NVPL_LAPACK_zhbgvx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* BB, nvpl_int_t const* ldbb,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbgvx(...) NVPL_LAPACK_zhbgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhbgvx(...) NVPL_LAPACK_zhbgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chbtrd_base NVPL_LAPACK_GLOBAL(chbtrd,CHBTRD)
void NVPL_LAPACK_chbtrd_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    float* D,
    float* E,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chbtrd(...) NVPL_LAPACK_chbtrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chbtrd(...) NVPL_LAPACK_chbtrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhbtrd_base NVPL_LAPACK_GLOBAL(zhbtrd,ZHBTRD)
void NVPL_LAPACK_zhbtrd_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    double* D,
    double* E,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhbtrd(...) NVPL_LAPACK_zhbtrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhbtrd(...) NVPL_LAPACK_zhbtrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_checon_base NVPL_LAPACK_GLOBAL(checon,CHECON)
void NVPL_LAPACK_checon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_checon(...) NVPL_LAPACK_checon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_checon(...) NVPL_LAPACK_checon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhecon_base NVPL_LAPACK_GLOBAL(zhecon,ZHECON)
void NVPL_LAPACK_zhecon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhecon(...) NVPL_LAPACK_zhecon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhecon(...) NVPL_LAPACK_zhecon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_checon_3_base NVPL_LAPACK_GLOBAL(checon_3,CHECON_3)
void NVPL_LAPACK_checon_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* E, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_checon_3(...) NVPL_LAPACK_checon_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_checon_3(...) NVPL_LAPACK_checon_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhecon_3_base NVPL_LAPACK_GLOBAL(zhecon_3,ZHECON_3)
void NVPL_LAPACK_zhecon_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* E, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhecon_3(...) NVPL_LAPACK_zhecon_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhecon_3(...) NVPL_LAPACK_zhecon_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheequb_base NVPL_LAPACK_GLOBAL(cheequb,CHEEQUB)
void NVPL_LAPACK_cheequb_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheequb(...) NVPL_LAPACK_cheequb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cheequb(...) NVPL_LAPACK_cheequb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheequb_base NVPL_LAPACK_GLOBAL(zheequb,ZHEEQUB)
void NVPL_LAPACK_zheequb_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheequb(...) NVPL_LAPACK_zheequb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zheequb(...) NVPL_LAPACK_zheequb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheev_base NVPL_LAPACK_GLOBAL(cheev,CHEEV)
void NVPL_LAPACK_cheev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheev(...) NVPL_LAPACK_cheev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cheev(...) NVPL_LAPACK_cheev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheev_base NVPL_LAPACK_GLOBAL(zheev,ZHEEV)
void NVPL_LAPACK_zheev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheev(...) NVPL_LAPACK_zheev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zheev(...) NVPL_LAPACK_zheev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheev_2stage_base NVPL_LAPACK_GLOBAL(cheev_2stage,CHEEV_2STAGE)
void NVPL_LAPACK_cheev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheev_2stage(...) NVPL_LAPACK_cheev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cheev_2stage(...) NVPL_LAPACK_cheev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheev_2stage_base NVPL_LAPACK_GLOBAL(zheev_2stage,ZHEEV_2STAGE)
void NVPL_LAPACK_zheev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheev_2stage(...) NVPL_LAPACK_zheev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zheev_2stage(...) NVPL_LAPACK_zheev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheevd_base NVPL_LAPACK_GLOBAL(cheevd,CHEEVD)
void NVPL_LAPACK_cheevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheevd(...) NVPL_LAPACK_cheevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cheevd(...) NVPL_LAPACK_cheevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheevd_base NVPL_LAPACK_GLOBAL(zheevd,ZHEEVD)
void NVPL_LAPACK_zheevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheevd(...) NVPL_LAPACK_zheevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zheevd(...) NVPL_LAPACK_zheevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheevd_2stage_base NVPL_LAPACK_GLOBAL(cheevd_2stage,CHEEVD_2STAGE)
void NVPL_LAPACK_cheevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheevd_2stage(...) NVPL_LAPACK_cheevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cheevd_2stage(...) NVPL_LAPACK_cheevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheevd_2stage_base NVPL_LAPACK_GLOBAL(zheevd_2stage,ZHEEVD_2STAGE)
void NVPL_LAPACK_zheevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheevd_2stage(...) NVPL_LAPACK_zheevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zheevd_2stage(...) NVPL_LAPACK_zheevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheevr_base NVPL_LAPACK_GLOBAL(cheevr,CHEEVR)
void NVPL_LAPACK_cheevr_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheevr(...) NVPL_LAPACK_cheevr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cheevr(...) NVPL_LAPACK_cheevr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheevr_base NVPL_LAPACK_GLOBAL(zheevr,ZHEEVR)
void NVPL_LAPACK_zheevr_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheevr(...) NVPL_LAPACK_zheevr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zheevr(...) NVPL_LAPACK_zheevr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheevr_2stage_base NVPL_LAPACK_GLOBAL(cheevr_2stage,CHEEVR_2STAGE)
void NVPL_LAPACK_cheevr_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheevr_2stage(...) NVPL_LAPACK_cheevr_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cheevr_2stage(...) NVPL_LAPACK_cheevr_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheevr_2stage_base NVPL_LAPACK_GLOBAL(zheevr_2stage,ZHEEVR_2STAGE)
void NVPL_LAPACK_zheevr_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheevr_2stage(...) NVPL_LAPACK_zheevr_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zheevr_2stage(...) NVPL_LAPACK_zheevr_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheevx_base NVPL_LAPACK_GLOBAL(cheevx,CHEEVX)
void NVPL_LAPACK_cheevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheevx(...) NVPL_LAPACK_cheevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cheevx(...) NVPL_LAPACK_cheevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheevx_base NVPL_LAPACK_GLOBAL(zheevx,ZHEEVX)
void NVPL_LAPACK_zheevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheevx(...) NVPL_LAPACK_zheevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zheevx(...) NVPL_LAPACK_zheevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheevx_2stage_base NVPL_LAPACK_GLOBAL(cheevx_2stage,CHEEVX_2STAGE)
void NVPL_LAPACK_cheevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheevx_2stage(...) NVPL_LAPACK_cheevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cheevx_2stage(...) NVPL_LAPACK_cheevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheevx_2stage_base NVPL_LAPACK_GLOBAL(zheevx_2stage,ZHEEVX_2STAGE)
void NVPL_LAPACK_zheevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheevx_2stage(...) NVPL_LAPACK_zheevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zheevx_2stage(...) NVPL_LAPACK_zheevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chegst_base NVPL_LAPACK_GLOBAL(chegst,CHEGST)
void NVPL_LAPACK_chegst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    const nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chegst(...) NVPL_LAPACK_chegst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chegst(...) NVPL_LAPACK_chegst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhegst_base NVPL_LAPACK_GLOBAL(zhegst,ZHEGST)
void NVPL_LAPACK_zhegst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    const nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhegst(...) NVPL_LAPACK_zhegst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhegst(...) NVPL_LAPACK_zhegst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chegv_base NVPL_LAPACK_GLOBAL(chegv,CHEGV)
void NVPL_LAPACK_chegv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chegv(...) NVPL_LAPACK_chegv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chegv(...) NVPL_LAPACK_chegv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhegv_base NVPL_LAPACK_GLOBAL(zhegv,ZHEGV)
void NVPL_LAPACK_zhegv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhegv(...) NVPL_LAPACK_zhegv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhegv(...) NVPL_LAPACK_zhegv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chegv_2stage_base NVPL_LAPACK_GLOBAL(chegv_2stage,CHEGV_2STAGE)
void NVPL_LAPACK_chegv_2stage_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chegv_2stage(...) NVPL_LAPACK_chegv_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chegv_2stage(...) NVPL_LAPACK_chegv_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhegv_2stage_base NVPL_LAPACK_GLOBAL(zhegv_2stage,ZHEGV_2STAGE)
void NVPL_LAPACK_zhegv_2stage_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhegv_2stage(...) NVPL_LAPACK_zhegv_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhegv_2stage(...) NVPL_LAPACK_zhegv_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chegvd_base NVPL_LAPACK_GLOBAL(chegvd,CHEGVD)
void NVPL_LAPACK_chegvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float* W,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chegvd(...) NVPL_LAPACK_chegvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chegvd(...) NVPL_LAPACK_chegvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhegvd_base NVPL_LAPACK_GLOBAL(zhegvd,ZHEGVD)
void NVPL_LAPACK_zhegvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double* W,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhegvd(...) NVPL_LAPACK_zhegvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhegvd(...) NVPL_LAPACK_zhegvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chegvx_base NVPL_LAPACK_GLOBAL(chegvx,CHEGVX)
void NVPL_LAPACK_chegvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chegvx(...) NVPL_LAPACK_chegvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chegvx(...) NVPL_LAPACK_chegvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhegvx_base NVPL_LAPACK_GLOBAL(zhegvx,ZHEGVX)
void NVPL_LAPACK_zhegvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhegvx(...) NVPL_LAPACK_zhegvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhegvx(...) NVPL_LAPACK_zhegvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cherfs_base NVPL_LAPACK_GLOBAL(cherfs,CHERFS)
void NVPL_LAPACK_cherfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cherfs(...) NVPL_LAPACK_cherfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cherfs(...) NVPL_LAPACK_cherfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zherfs_base NVPL_LAPACK_GLOBAL(zherfs,ZHERFS)
void NVPL_LAPACK_zherfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zherfs(...) NVPL_LAPACK_zherfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zherfs(...) NVPL_LAPACK_zherfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cherfsx_base NVPL_LAPACK_GLOBAL(cherfsx,CHERFSX)
void NVPL_LAPACK_cherfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    const float* S,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cherfsx(...) NVPL_LAPACK_cherfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cherfsx(...) NVPL_LAPACK_cherfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zherfsx_base NVPL_LAPACK_GLOBAL(zherfsx,ZHERFSX)
void NVPL_LAPACK_zherfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    const double* S,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zherfsx(...) NVPL_LAPACK_zherfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zherfsx(...) NVPL_LAPACK_zherfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesv_base NVPL_LAPACK_GLOBAL(chesv,CHESV)
void NVPL_LAPACK_chesv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesv(...) NVPL_LAPACK_chesv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chesv(...) NVPL_LAPACK_chesv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesv_base NVPL_LAPACK_GLOBAL(zhesv,ZHESV)
void NVPL_LAPACK_zhesv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesv(...) NVPL_LAPACK_zhesv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhesv(...) NVPL_LAPACK_zhesv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesv_aa_base NVPL_LAPACK_GLOBAL(chesv_aa,CHESV_AA)
void NVPL_LAPACK_chesv_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesv_aa(...) NVPL_LAPACK_chesv_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chesv_aa(...) NVPL_LAPACK_chesv_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesv_aa_base NVPL_LAPACK_GLOBAL(zhesv_aa,ZHESV_AA)
void NVPL_LAPACK_zhesv_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesv_aa(...) NVPL_LAPACK_zhesv_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhesv_aa(...) NVPL_LAPACK_zhesv_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesv_aa_2stage_base NVPL_LAPACK_GLOBAL(chesv_aa_2stage,CHESV_AA_2STAGE)
void NVPL_LAPACK_chesv_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesv_aa_2stage(...) NVPL_LAPACK_chesv_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chesv_aa_2stage(...) NVPL_LAPACK_chesv_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesv_aa_2stage_base NVPL_LAPACK_GLOBAL(zhesv_aa_2stage,ZHESV_AA_2STAGE)
void NVPL_LAPACK_zhesv_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesv_aa_2stage(...) NVPL_LAPACK_zhesv_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhesv_aa_2stage(...) NVPL_LAPACK_zhesv_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesv_rk_base NVPL_LAPACK_GLOBAL(chesv_rk,CHESV_RK)
void NVPL_LAPACK_chesv_rk_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* E, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesv_rk(...) NVPL_LAPACK_chesv_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chesv_rk(...) NVPL_LAPACK_chesv_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesv_rk_base NVPL_LAPACK_GLOBAL(zhesv_rk,ZHESV_RK)
void NVPL_LAPACK_zhesv_rk_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* E, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesv_rk(...) NVPL_LAPACK_zhesv_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhesv_rk(...) NVPL_LAPACK_zhesv_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesv_rook_base NVPL_LAPACK_GLOBAL(chesv_rook,CHESV_ROOK)
void NVPL_LAPACK_chesv_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesv_rook(...) NVPL_LAPACK_chesv_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chesv_rook(...) NVPL_LAPACK_chesv_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesv_rook_base NVPL_LAPACK_GLOBAL(zhesv_rook,ZHESV_ROOK)
void NVPL_LAPACK_zhesv_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesv_rook(...) NVPL_LAPACK_zhesv_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhesv_rook(...) NVPL_LAPACK_zhesv_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesvx_base NVPL_LAPACK_GLOBAL(chesvx,CHESVX)
void NVPL_LAPACK_chesvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesvx(...) NVPL_LAPACK_chesvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chesvx(...) NVPL_LAPACK_chesvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesvx_base NVPL_LAPACK_GLOBAL(zhesvx,ZHESVX)
void NVPL_LAPACK_zhesvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesvx(...) NVPL_LAPACK_zhesvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhesvx(...) NVPL_LAPACK_zhesvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chesvxx_base NVPL_LAPACK_GLOBAL(chesvxx,CHESVXX)
void NVPL_LAPACK_chesvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* S,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chesvxx(...) NVPL_LAPACK_chesvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chesvxx(...) NVPL_LAPACK_chesvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhesvxx_base NVPL_LAPACK_GLOBAL(zhesvxx,ZHESVXX)
void NVPL_LAPACK_zhesvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* S,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhesvxx(...) NVPL_LAPACK_zhesvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhesvxx(...) NVPL_LAPACK_zhesvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cheswapr_base NVPL_LAPACK_GLOBAL(cheswapr,CHESWAPR)
void NVPL_LAPACK_cheswapr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* i1, nvpl_int_t const* i2
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cheswapr(...) NVPL_LAPACK_cheswapr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cheswapr(...) NVPL_LAPACK_cheswapr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zheswapr_base NVPL_LAPACK_GLOBAL(zheswapr,ZHESWAPR)
void NVPL_LAPACK_zheswapr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* i1, nvpl_int_t const* i2
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zheswapr(...) NVPL_LAPACK_zheswapr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zheswapr(...) NVPL_LAPACK_zheswapr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrd_base NVPL_LAPACK_GLOBAL(chetrd,CHETRD)
void NVPL_LAPACK_chetrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* D,
    float* E,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrd(...) NVPL_LAPACK_chetrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrd(...) NVPL_LAPACK_chetrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrd_base NVPL_LAPACK_GLOBAL(zhetrd,ZHETRD)
void NVPL_LAPACK_zhetrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* D,
    double* E,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrd(...) NVPL_LAPACK_zhetrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrd(...) NVPL_LAPACK_zhetrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrd_2stage_base NVPL_LAPACK_GLOBAL(chetrd_2stage,CHETRD_2STAGE)
void NVPL_LAPACK_chetrd_2stage_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    float* D,
    float* E,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* HOUS2, nvpl_int_t const* lhous2,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrd_2stage(...) NVPL_LAPACK_chetrd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chetrd_2stage(...) NVPL_LAPACK_chetrd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrd_2stage_base NVPL_LAPACK_GLOBAL(zhetrd_2stage,ZHETRD_2STAGE)
void NVPL_LAPACK_zhetrd_2stage_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    double* D,
    double* E,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* HOUS2, nvpl_int_t const* lhous2,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrd_2stage(...) NVPL_LAPACK_zhetrd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhetrd_2stage(...) NVPL_LAPACK_zhetrd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrf_base NVPL_LAPACK_GLOBAL(chetrf,CHETRF)
void NVPL_LAPACK_chetrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrf(...) NVPL_LAPACK_chetrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrf(...) NVPL_LAPACK_chetrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrf_base NVPL_LAPACK_GLOBAL(zhetrf,ZHETRF)
void NVPL_LAPACK_zhetrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrf(...) NVPL_LAPACK_zhetrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrf(...) NVPL_LAPACK_zhetrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrf_aa_base NVPL_LAPACK_GLOBAL(chetrf_aa,CHETRF_AA)
void NVPL_LAPACK_chetrf_aa_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrf_aa(...) NVPL_LAPACK_chetrf_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrf_aa(...) NVPL_LAPACK_chetrf_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrf_aa_base NVPL_LAPACK_GLOBAL(zhetrf_aa,ZHETRF_AA)
void NVPL_LAPACK_zhetrf_aa_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrf_aa(...) NVPL_LAPACK_zhetrf_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrf_aa(...) NVPL_LAPACK_zhetrf_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrf_aa_2stage_base NVPL_LAPACK_GLOBAL(chetrf_aa_2stage,CHETRF_AA_2STAGE)
void NVPL_LAPACK_chetrf_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrf_aa_2stage(...) NVPL_LAPACK_chetrf_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrf_aa_2stage(...) NVPL_LAPACK_chetrf_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrf_aa_2stage_base NVPL_LAPACK_GLOBAL(zhetrf_aa_2stage,ZHETRF_AA_2STAGE)
void NVPL_LAPACK_zhetrf_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrf_aa_2stage(...) NVPL_LAPACK_zhetrf_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrf_aa_2stage(...) NVPL_LAPACK_zhetrf_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrf_rk_base NVPL_LAPACK_GLOBAL(chetrf_rk,CHETRF_RK)
void NVPL_LAPACK_chetrf_rk_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* E, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrf_rk(...) NVPL_LAPACK_chetrf_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrf_rk(...) NVPL_LAPACK_chetrf_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrf_rk_base NVPL_LAPACK_GLOBAL(zhetrf_rk,ZHETRF_RK)
void NVPL_LAPACK_zhetrf_rk_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* E, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrf_rk(...) NVPL_LAPACK_zhetrf_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrf_rk(...) NVPL_LAPACK_zhetrf_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrf_rook_base NVPL_LAPACK_GLOBAL(chetrf_rook,CHETRF_ROOK)
void NVPL_LAPACK_chetrf_rook_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrf_rook(...) NVPL_LAPACK_chetrf_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrf_rook(...) NVPL_LAPACK_chetrf_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrf_rook_base NVPL_LAPACK_GLOBAL(zhetrf_rook,ZHETRF_ROOK)
void NVPL_LAPACK_zhetrf_rook_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrf_rook(...) NVPL_LAPACK_zhetrf_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrf_rook(...) NVPL_LAPACK_zhetrf_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetri_base NVPL_LAPACK_GLOBAL(chetri,CHETRI)
void NVPL_LAPACK_chetri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetri(...) NVPL_LAPACK_chetri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetri(...) NVPL_LAPACK_chetri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetri_base NVPL_LAPACK_GLOBAL(zhetri,ZHETRI)
void NVPL_LAPACK_zhetri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetri(...) NVPL_LAPACK_zhetri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetri(...) NVPL_LAPACK_zhetri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetri2_base NVPL_LAPACK_GLOBAL(chetri2,CHETRI2)
void NVPL_LAPACK_chetri2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetri2(...) NVPL_LAPACK_chetri2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetri2(...) NVPL_LAPACK_chetri2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetri2_base NVPL_LAPACK_GLOBAL(zhetri2,ZHETRI2)
void NVPL_LAPACK_zhetri2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetri2(...) NVPL_LAPACK_zhetri2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetri2(...) NVPL_LAPACK_zhetri2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetri2x_base NVPL_LAPACK_GLOBAL(chetri2x,CHETRI2X)
void NVPL_LAPACK_chetri2x_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* nb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetri2x(...) NVPL_LAPACK_chetri2x_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetri2x(...) NVPL_LAPACK_chetri2x_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetri2x_base NVPL_LAPACK_GLOBAL(zhetri2x,ZHETRI2X)
void NVPL_LAPACK_zhetri2x_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* nb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetri2x(...) NVPL_LAPACK_zhetri2x_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetri2x(...) NVPL_LAPACK_zhetri2x_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetri_3_base NVPL_LAPACK_GLOBAL(chetri_3,CHETRI_3)
void NVPL_LAPACK_chetri_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetri_3(...) NVPL_LAPACK_chetri_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetri_3(...) NVPL_LAPACK_chetri_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetri_3_base NVPL_LAPACK_GLOBAL(zhetri_3,ZHETRI_3)
void NVPL_LAPACK_zhetri_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetri_3(...) NVPL_LAPACK_zhetri_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetri_3(...) NVPL_LAPACK_zhetri_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrs_base NVPL_LAPACK_GLOBAL(chetrs,CHETRS)
void NVPL_LAPACK_chetrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrs(...) NVPL_LAPACK_chetrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrs(...) NVPL_LAPACK_chetrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrs_base NVPL_LAPACK_GLOBAL(zhetrs,ZHETRS)
void NVPL_LAPACK_zhetrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrs(...) NVPL_LAPACK_zhetrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrs(...) NVPL_LAPACK_zhetrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrs2_base NVPL_LAPACK_GLOBAL(chetrs2,CHETRS2)
void NVPL_LAPACK_chetrs2_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrs2(...) NVPL_LAPACK_chetrs2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrs2(...) NVPL_LAPACK_chetrs2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrs2_base NVPL_LAPACK_GLOBAL(zhetrs2,ZHETRS2)
void NVPL_LAPACK_zhetrs2_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrs2(...) NVPL_LAPACK_zhetrs2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrs2(...) NVPL_LAPACK_zhetrs2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrs_3_base NVPL_LAPACK_GLOBAL(chetrs_3,CHETRS_3)
void NVPL_LAPACK_chetrs_3_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrs_3(...) NVPL_LAPACK_chetrs_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrs_3(...) NVPL_LAPACK_chetrs_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrs_3_base NVPL_LAPACK_GLOBAL(zhetrs_3,ZHETRS_3)
void NVPL_LAPACK_zhetrs_3_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrs_3(...) NVPL_LAPACK_zhetrs_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrs_3(...) NVPL_LAPACK_zhetrs_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrs_aa_base NVPL_LAPACK_GLOBAL(chetrs_aa,CHETRS_AA)
void NVPL_LAPACK_chetrs_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrs_aa(...) NVPL_LAPACK_chetrs_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrs_aa(...) NVPL_LAPACK_chetrs_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrs_aa_base NVPL_LAPACK_GLOBAL(zhetrs_aa,ZHETRS_AA)
void NVPL_LAPACK_zhetrs_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrs_aa(...) NVPL_LAPACK_zhetrs_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrs_aa(...) NVPL_LAPACK_zhetrs_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrs_aa_2stage_base NVPL_LAPACK_GLOBAL(chetrs_aa_2stage,CHETRS_AA_2STAGE)
void NVPL_LAPACK_chetrs_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t const* ipiv, nvpl_int_t const* ipiv2,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrs_aa_2stage(...) NVPL_LAPACK_chetrs_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrs_aa_2stage(...) NVPL_LAPACK_chetrs_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrs_aa_2stage_base NVPL_LAPACK_GLOBAL(zhetrs_aa_2stage,ZHETRS_AA_2STAGE)
void NVPL_LAPACK_zhetrs_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t const* ipiv, nvpl_int_t const* ipiv2,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrs_aa_2stage(...) NVPL_LAPACK_zhetrs_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrs_aa_2stage(...) NVPL_LAPACK_zhetrs_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chetrs_rook_base NVPL_LAPACK_GLOBAL(chetrs_rook,CHETRS_ROOK)
void NVPL_LAPACK_chetrs_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chetrs_rook(...) NVPL_LAPACK_chetrs_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chetrs_rook(...) NVPL_LAPACK_chetrs_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhetrs_rook_base NVPL_LAPACK_GLOBAL(zhetrs_rook,ZHETRS_ROOK)
void NVPL_LAPACK_zhetrs_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhetrs_rook(...) NVPL_LAPACK_zhetrs_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhetrs_rook(...) NVPL_LAPACK_zhetrs_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chfrk_base NVPL_LAPACK_GLOBAL(chfrk,CHFRK)
void NVPL_LAPACK_chfrk_base(
    char const* transr, char const* uplo, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* alpha,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float const* beta,
    nvpl_scomplex_t* C
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chfrk(...) NVPL_LAPACK_chfrk_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chfrk(...) NVPL_LAPACK_chfrk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhfrk_base NVPL_LAPACK_GLOBAL(zhfrk,ZHFRK)
void NVPL_LAPACK_zhfrk_base(
    char const* transr, char const* uplo, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* alpha,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double const* beta,
    nvpl_dcomplex_t* C
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhfrk(...) NVPL_LAPACK_zhfrk_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhfrk(...) NVPL_LAPACK_zhfrk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chgeqz_base NVPL_LAPACK_GLOBAL(chgeqz,CHGEQZ)
void NVPL_LAPACK_chgeqz_base(
    char const* job, char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t* H, nvpl_int_t const* ldh,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chgeqz(...) NVPL_LAPACK_chgeqz_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chgeqz(...) NVPL_LAPACK_chgeqz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dhgeqz_base NVPL_LAPACK_GLOBAL(dhgeqz,DHGEQZ)
void NVPL_LAPACK_dhgeqz_base(
    char const* job, char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double* H, nvpl_int_t const* ldh,
    double* T, nvpl_int_t const* ldt,
    double* alphar,
    double* alphai,
    double* beta,
    double* Q, nvpl_int_t const* ldq,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dhgeqz(...) NVPL_LAPACK_dhgeqz_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dhgeqz(...) NVPL_LAPACK_dhgeqz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_shgeqz_base NVPL_LAPACK_GLOBAL(shgeqz,SHGEQZ)
void NVPL_LAPACK_shgeqz_base(
    char const* job, char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float* H, nvpl_int_t const* ldh,
    float* T, nvpl_int_t const* ldt,
    float* alphar,
    float* alphai,
    float* beta,
    float* Q, nvpl_int_t const* ldq,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_shgeqz(...) NVPL_LAPACK_shgeqz_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_shgeqz(...) NVPL_LAPACK_shgeqz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhgeqz_base NVPL_LAPACK_GLOBAL(zhgeqz,ZHGEQZ)
void NVPL_LAPACK_zhgeqz_base(
    char const* job, char const* compq, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t* H, nvpl_int_t const* ldh,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhgeqz(...) NVPL_LAPACK_zhgeqz_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhgeqz(...) NVPL_LAPACK_zhgeqz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpcon_base NVPL_LAPACK_GLOBAL(chpcon,CHPCON)
void NVPL_LAPACK_chpcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpcon(...) NVPL_LAPACK_chpcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chpcon(...) NVPL_LAPACK_chpcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpcon_base NVPL_LAPACK_GLOBAL(zhpcon,ZHPCON)
void NVPL_LAPACK_zhpcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpcon(...) NVPL_LAPACK_zhpcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhpcon(...) NVPL_LAPACK_zhpcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpev_base NVPL_LAPACK_GLOBAL(chpev,CHPEV)
void NVPL_LAPACK_chpev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpev(...) NVPL_LAPACK_chpev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chpev(...) NVPL_LAPACK_chpev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpev_base NVPL_LAPACK_GLOBAL(zhpev,ZHPEV)
void NVPL_LAPACK_zhpev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpev(...) NVPL_LAPACK_zhpev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhpev(...) NVPL_LAPACK_zhpev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpevd_base NVPL_LAPACK_GLOBAL(chpevd,CHPEVD)
void NVPL_LAPACK_chpevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpevd(...) NVPL_LAPACK_chpevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chpevd(...) NVPL_LAPACK_chpevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpevd_base NVPL_LAPACK_GLOBAL(zhpevd,ZHPEVD)
void NVPL_LAPACK_zhpevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpevd(...) NVPL_LAPACK_zhpevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhpevd(...) NVPL_LAPACK_zhpevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpevx_base NVPL_LAPACK_GLOBAL(chpevx,CHPEVX)
void NVPL_LAPACK_chpevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpevx(...) NVPL_LAPACK_chpevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chpevx(...) NVPL_LAPACK_chpevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpevx_base NVPL_LAPACK_GLOBAL(zhpevx,ZHPEVX)
void NVPL_LAPACK_zhpevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpevx(...) NVPL_LAPACK_zhpevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhpevx(...) NVPL_LAPACK_zhpevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpgst_base NVPL_LAPACK_GLOBAL(chpgst,CHPGST)
void NVPL_LAPACK_chpgst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_scomplex_t const* BP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpgst(...) NVPL_LAPACK_chpgst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chpgst(...) NVPL_LAPACK_chpgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpgst_base NVPL_LAPACK_GLOBAL(zhpgst,ZHPGST)
void NVPL_LAPACK_zhpgst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_dcomplex_t const* BP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpgst(...) NVPL_LAPACK_zhpgst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhpgst(...) NVPL_LAPACK_zhpgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpgv_base NVPL_LAPACK_GLOBAL(chpgv,CHPGV)
void NVPL_LAPACK_chpgv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_scomplex_t* BP,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpgv(...) NVPL_LAPACK_chpgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chpgv(...) NVPL_LAPACK_chpgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpgv_base NVPL_LAPACK_GLOBAL(zhpgv,ZHPGV)
void NVPL_LAPACK_zhpgv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_dcomplex_t* BP,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpgv(...) NVPL_LAPACK_zhpgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhpgv(...) NVPL_LAPACK_zhpgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpgvd_base NVPL_LAPACK_GLOBAL(chpgvd,CHPGVD)
void NVPL_LAPACK_chpgvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_scomplex_t* BP,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpgvd(...) NVPL_LAPACK_chpgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chpgvd(...) NVPL_LAPACK_chpgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpgvd_base NVPL_LAPACK_GLOBAL(zhpgvd,ZHPGVD)
void NVPL_LAPACK_zhpgvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_dcomplex_t* BP,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpgvd(...) NVPL_LAPACK_zhpgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhpgvd(...) NVPL_LAPACK_zhpgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpgvx_base NVPL_LAPACK_GLOBAL(chpgvx,CHPGVX)
void NVPL_LAPACK_chpgvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_scomplex_t* BP,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpgvx(...) NVPL_LAPACK_chpgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chpgvx(...) NVPL_LAPACK_chpgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpgvx_base NVPL_LAPACK_GLOBAL(zhpgvx,ZHPGVX)
void NVPL_LAPACK_zhpgvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_dcomplex_t* BP,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpgvx(...) NVPL_LAPACK_zhpgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhpgvx(...) NVPL_LAPACK_zhpgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chprfs_base NVPL_LAPACK_GLOBAL(chprfs,CHPRFS)
void NVPL_LAPACK_chprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t const* AFP, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chprfs(...) NVPL_LAPACK_chprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chprfs(...) NVPL_LAPACK_chprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhprfs_base NVPL_LAPACK_GLOBAL(zhprfs,ZHPRFS)
void NVPL_LAPACK_zhprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t const* AFP, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhprfs(...) NVPL_LAPACK_zhprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhprfs(...) NVPL_LAPACK_zhprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpsv_base NVPL_LAPACK_GLOBAL(chpsv,CHPSV)
void NVPL_LAPACK_chpsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpsv(...) NVPL_LAPACK_chpsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chpsv(...) NVPL_LAPACK_chpsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpsv_base NVPL_LAPACK_GLOBAL(zhpsv,ZHPSV)
void NVPL_LAPACK_zhpsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpsv(...) NVPL_LAPACK_zhpsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhpsv(...) NVPL_LAPACK_zhpsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chpsvx_base NVPL_LAPACK_GLOBAL(chpsvx,CHPSVX)
void NVPL_LAPACK_chpsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t* AFP, nvpl_int_t* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chpsvx(...) NVPL_LAPACK_chpsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chpsvx(...) NVPL_LAPACK_chpsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhpsvx_base NVPL_LAPACK_GLOBAL(zhpsvx,ZHPSVX)
void NVPL_LAPACK_zhpsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t* AFP, nvpl_int_t* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhpsvx(...) NVPL_LAPACK_zhpsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhpsvx(...) NVPL_LAPACK_zhpsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chptrd_base NVPL_LAPACK_GLOBAL(chptrd,CHPTRD)
void NVPL_LAPACK_chptrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    float* D,
    float* E,
    nvpl_scomplex_t* tau,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chptrd(...) NVPL_LAPACK_chptrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chptrd(...) NVPL_LAPACK_chptrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhptrd_base NVPL_LAPACK_GLOBAL(zhptrd,ZHPTRD)
void NVPL_LAPACK_zhptrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    double* D,
    double* E,
    nvpl_dcomplex_t* tau,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhptrd(...) NVPL_LAPACK_zhptrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhptrd(...) NVPL_LAPACK_zhptrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chptrf_base NVPL_LAPACK_GLOBAL(chptrf,CHPTRF)
void NVPL_LAPACK_chptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chptrf(...) NVPL_LAPACK_chptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chptrf(...) NVPL_LAPACK_chptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhptrf_base NVPL_LAPACK_GLOBAL(zhptrf,ZHPTRF)
void NVPL_LAPACK_zhptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhptrf(...) NVPL_LAPACK_zhptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhptrf(...) NVPL_LAPACK_zhptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chptri_base NVPL_LAPACK_GLOBAL(chptri,CHPTRI)
void NVPL_LAPACK_chptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chptri(...) NVPL_LAPACK_chptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chptri(...) NVPL_LAPACK_chptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhptri_base NVPL_LAPACK_GLOBAL(zhptri,ZHPTRI)
void NVPL_LAPACK_zhptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhptri(...) NVPL_LAPACK_zhptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhptri(...) NVPL_LAPACK_zhptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chptrs_base NVPL_LAPACK_GLOBAL(chptrs,CHPTRS)
void NVPL_LAPACK_chptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chptrs(...) NVPL_LAPACK_chptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_chptrs(...) NVPL_LAPACK_chptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhptrs_base NVPL_LAPACK_GLOBAL(zhptrs,ZHPTRS)
void NVPL_LAPACK_zhptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhptrs(...) NVPL_LAPACK_zhptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zhptrs(...) NVPL_LAPACK_zhptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chsein_base NVPL_LAPACK_GLOBAL(chsein,CHSEIN)
void NVPL_LAPACK_chsein_base(
    char const* side, char const* eigsrc, char const* initv,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* H, nvpl_int_t const* ldh,
    nvpl_scomplex_t* W,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_scomplex_t* work,
    float* rwork, nvpl_int_t* IFAILL, nvpl_int_t* IFAILR,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chsein(...) NVPL_LAPACK_chsein_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_chsein(...) NVPL_LAPACK_chsein_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dhsein_base NVPL_LAPACK_GLOBAL(dhsein,DHSEIN)
void NVPL_LAPACK_dhsein_base(
    char const* side, char const* eigsrc, char const* initv,
    nvpl_lapack_logical* select,
    nvpl_int_t const* n,
    double const* H, nvpl_int_t const* ldh,
    double* WR,
    double const* WI,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    double* work, nvpl_int_t* IFAILL, nvpl_int_t* IFAILR,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dhsein(...) NVPL_LAPACK_dhsein_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dhsein(...) NVPL_LAPACK_dhsein_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_shsein_base NVPL_LAPACK_GLOBAL(shsein,SHSEIN)
void NVPL_LAPACK_shsein_base(
    char const* side, char const* eigsrc, char const* initv,
    nvpl_lapack_logical* select,
    nvpl_int_t const* n,
    float const* H, nvpl_int_t const* ldh,
    float* WR,
    float const* WI,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    float* work, nvpl_int_t* IFAILL, nvpl_int_t* IFAILR,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_shsein(...) NVPL_LAPACK_shsein_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_shsein(...) NVPL_LAPACK_shsein_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhsein_base NVPL_LAPACK_GLOBAL(zhsein,ZHSEIN)
void NVPL_LAPACK_zhsein_base(
    char const* side, char const* eigsrc, char const* initv,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* H, nvpl_int_t const* ldh,
    nvpl_dcomplex_t* W,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_dcomplex_t* work,
    double* rwork, nvpl_int_t* IFAILL, nvpl_int_t* IFAILR,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhsein(...) NVPL_LAPACK_zhsein_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zhsein(...) NVPL_LAPACK_zhsein_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_chseqr_base NVPL_LAPACK_GLOBAL(chseqr,CHSEQR)
void NVPL_LAPACK_chseqr_base(
    char const* job, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t* H, nvpl_int_t const* ldh,
    nvpl_scomplex_t* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_chseqr(...) NVPL_LAPACK_chseqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_chseqr(...) NVPL_LAPACK_chseqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dhseqr_base NVPL_LAPACK_GLOBAL(dhseqr,DHSEQR)
void NVPL_LAPACK_dhseqr_base(
    char const* job, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double* H, nvpl_int_t const* ldh,
    double* WR,
    double* WI,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dhseqr(...) NVPL_LAPACK_dhseqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dhseqr(...) NVPL_LAPACK_dhseqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_shseqr_base NVPL_LAPACK_GLOBAL(shseqr,SHSEQR)
void NVPL_LAPACK_shseqr_base(
    char const* job, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float* H, nvpl_int_t const* ldh,
    float* WR,
    float* WI,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_shseqr(...) NVPL_LAPACK_shseqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_shseqr(...) NVPL_LAPACK_shseqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zhseqr_base NVPL_LAPACK_GLOBAL(zhseqr,ZHSEQR)
void NVPL_LAPACK_zhseqr_base(
    char const* job, char const* compz,
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t* H, nvpl_int_t const* ldh,
    nvpl_dcomplex_t* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zhseqr(...) NVPL_LAPACK_zhseqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zhseqr(...) NVPL_LAPACK_zhseqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clacgv NVPL_LAPACK_GLOBAL(clacgv,CLACGV)
void NVPL_LAPACK_clacgv(
    nvpl_int_t const* n,
    nvpl_scomplex_t* X, nvpl_int_t const* incx ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlacgv NVPL_LAPACK_GLOBAL(zlacgv,ZLACGV)
void NVPL_LAPACK_zlacgv(
    nvpl_int_t const* n,
    nvpl_dcomplex_t* X, nvpl_int_t const* incx ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clacn2 NVPL_LAPACK_GLOBAL(clacn2,CLACN2)
void NVPL_LAPACK_clacn2(
    nvpl_int_t const* n,
    nvpl_scomplex_t* V,
    nvpl_scomplex_t* X,
    float* est, nvpl_int_t* kase, nvpl_int_t* ISAVE ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlacn2 NVPL_LAPACK_GLOBAL(dlacn2,DLACN2)
void NVPL_LAPACK_dlacn2(
    nvpl_int_t const* n,
    double* V,
    double* X, nvpl_int_t* ISGN,
    double* est, nvpl_int_t* kase, nvpl_int_t* ISAVE ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slacn2 NVPL_LAPACK_GLOBAL(slacn2,SLACN2)
void NVPL_LAPACK_slacn2(
    nvpl_int_t const* n,
    float* V,
    float* X, nvpl_int_t* ISGN,
    float* est, nvpl_int_t* kase, nvpl_int_t* ISAVE ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlacn2 NVPL_LAPACK_GLOBAL(zlacn2,ZLACN2)
void NVPL_LAPACK_zlacn2(
    nvpl_int_t const* n,
    nvpl_dcomplex_t* V,
    nvpl_dcomplex_t* X,
    double* est, nvpl_int_t* kase, nvpl_int_t* ISAVE ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clacp2_base NVPL_LAPACK_GLOBAL(clacp2,CLACP2)
void NVPL_LAPACK_clacp2_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clacp2(...) NVPL_LAPACK_clacp2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clacp2(...) NVPL_LAPACK_clacp2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlacp2_base NVPL_LAPACK_GLOBAL(zlacp2,ZLACP2)
void NVPL_LAPACK_zlacp2_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlacp2(...) NVPL_LAPACK_zlacp2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlacp2(...) NVPL_LAPACK_zlacp2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clacpy_base NVPL_LAPACK_GLOBAL(clacpy,CLACPY)
void NVPL_LAPACK_clacpy_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clacpy(...) NVPL_LAPACK_clacpy_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clacpy(...) NVPL_LAPACK_clacpy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlacpy_base NVPL_LAPACK_GLOBAL(dlacpy,DLACPY)
void NVPL_LAPACK_dlacpy_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlacpy(...) NVPL_LAPACK_dlacpy_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlacpy(...) NVPL_LAPACK_dlacpy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slacpy_base NVPL_LAPACK_GLOBAL(slacpy,SLACPY)
void NVPL_LAPACK_slacpy_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slacpy(...) NVPL_LAPACK_slacpy_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slacpy(...) NVPL_LAPACK_slacpy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlacpy_base NVPL_LAPACK_GLOBAL(zlacpy,ZLACPY)
void NVPL_LAPACK_zlacpy_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlacpy(...) NVPL_LAPACK_zlacpy_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlacpy(...) NVPL_LAPACK_zlacpy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clacrm NVPL_LAPACK_GLOBAL(clacrm,CLACRM)
void NVPL_LAPACK_clacrm(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    float* rwork ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlacrm NVPL_LAPACK_GLOBAL(zlacrm,ZLACRM)
void NVPL_LAPACK_zlacrm(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    double* rwork ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlag2c NVPL_LAPACK_GLOBAL(zlag2c,ZLAG2C)
void NVPL_LAPACK_zlag2c(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* SA, nvpl_int_t const* ldsa,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slag2d NVPL_LAPACK_GLOBAL(slag2d,SLAG2D)
void NVPL_LAPACK_slag2d(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* SA, nvpl_int_t const* ldsa,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlag2s NVPL_LAPACK_GLOBAL(dlag2s,DLAG2S)
void NVPL_LAPACK_dlag2s(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    float* SA, nvpl_int_t const* ldsa,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clag2z NVPL_LAPACK_GLOBAL(clag2z,CLAG2Z)
void NVPL_LAPACK_clag2z(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* SA, nvpl_int_t const* ldsa,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clagge NVPL_LAPACK_GLOBAL(clagge,CLAGGE)
void NVPL_LAPACK_clagge(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* D,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlagge NVPL_LAPACK_GLOBAL(dlagge,DLAGGE)
void NVPL_LAPACK_dlagge(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* D,
    double* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slagge NVPL_LAPACK_GLOBAL(slagge,SLAGGE)
void NVPL_LAPACK_slagge(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* D,
    float* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlagge NVPL_LAPACK_GLOBAL(zlagge,ZLAGGE)
void NVPL_LAPACK_zlagge(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* D,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_claghe NVPL_LAPACK_GLOBAL(claghe,CLAGHE)
void NVPL_LAPACK_claghe(
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* D,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlaghe NVPL_LAPACK_GLOBAL(zlaghe,ZLAGHE)
void NVPL_LAPACK_zlaghe(
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* D,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clagsy NVPL_LAPACK_GLOBAL(clagsy,CLAGSY)
void NVPL_LAPACK_clagsy(
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* D,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlagsy NVPL_LAPACK_GLOBAL(dlagsy,DLAGSY)
void NVPL_LAPACK_dlagsy(
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* D,
    double* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slagsy NVPL_LAPACK_GLOBAL(slagsy,SLAGSY)
void NVPL_LAPACK_slagsy(
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* D,
    float* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlagsy NVPL_LAPACK_GLOBAL(zlagsy,ZLAGSY)
void NVPL_LAPACK_zlagsy(
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* D,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* iseed,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlamch_base NVPL_LAPACK_GLOBAL(dlamch,DLAMCH)
double NVPL_LAPACK_dlamch_base(
    char const* cmach
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlamch(...) NVPL_LAPACK_dlamch_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlamch(...) NVPL_LAPACK_dlamch_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slamch_base NVPL_LAPACK_GLOBAL(slamch,SLAMCH)
nvpl_lapack_float_return NVPL_LAPACK_slamch_base(
    char const* cmach
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slamch(...) NVPL_LAPACK_slamch_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slamch(...) NVPL_LAPACK_slamch_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clangb_base NVPL_LAPACK_GLOBAL(clangb,CLANGB)
nvpl_lapack_float_return NVPL_LAPACK_clangb_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clangb(...) NVPL_LAPACK_clangb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clangb(...) NVPL_LAPACK_clangb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlangb_base NVPL_LAPACK_GLOBAL(dlangb,DLANGB)
double NVPL_LAPACK_dlangb_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlangb(...) NVPL_LAPACK_dlangb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlangb(...) NVPL_LAPACK_dlangb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slangb_base NVPL_LAPACK_GLOBAL(slangb,SLANGB)
nvpl_lapack_float_return NVPL_LAPACK_slangb_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slangb(...) NVPL_LAPACK_slangb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slangb(...) NVPL_LAPACK_slangb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlangb_base NVPL_LAPACK_GLOBAL(zlangb,ZLANGB)
double NVPL_LAPACK_zlangb_base(
    char const* norm,
    nvpl_int_t const* n, nvpl_int_t const* kl, nvpl_int_t const* ku,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlangb(...) NVPL_LAPACK_zlangb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlangb(...) NVPL_LAPACK_zlangb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clange_base NVPL_LAPACK_GLOBAL(clange,CLANGE)
nvpl_lapack_float_return NVPL_LAPACK_clange_base(
    char const* norm,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clange(...) NVPL_LAPACK_clange_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clange(...) NVPL_LAPACK_clange_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlange_base NVPL_LAPACK_GLOBAL(dlange,DLANGE)
double NVPL_LAPACK_dlange_base(
    char const* norm,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlange(...) NVPL_LAPACK_dlange_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlange(...) NVPL_LAPACK_dlange_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slange_base NVPL_LAPACK_GLOBAL(slange,SLANGE)
nvpl_lapack_float_return NVPL_LAPACK_slange_base(
    char const* norm,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slange(...) NVPL_LAPACK_slange_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slange(...) NVPL_LAPACK_slange_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlange_base NVPL_LAPACK_GLOBAL(zlange,ZLANGE)
double NVPL_LAPACK_zlange_base(
    char const* norm,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlange(...) NVPL_LAPACK_zlange_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlange(...) NVPL_LAPACK_zlange_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clangt_base NVPL_LAPACK_GLOBAL(clangt,CLANGT)
nvpl_lapack_float_return NVPL_LAPACK_clangt_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* DL,
    nvpl_scomplex_t const* D,
    nvpl_scomplex_t const* DU
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clangt(...) NVPL_LAPACK_clangt_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clangt(...) NVPL_LAPACK_clangt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlangt_base NVPL_LAPACK_GLOBAL(dlangt,DLANGT)
double NVPL_LAPACK_dlangt_base(
    char const* norm,
    nvpl_int_t const* n,
    double const* DL,
    double const* D,
    double const* DU
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlangt(...) NVPL_LAPACK_dlangt_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlangt(...) NVPL_LAPACK_dlangt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slangt_base NVPL_LAPACK_GLOBAL(slangt,SLANGT)
nvpl_lapack_float_return NVPL_LAPACK_slangt_base(
    char const* norm,
    nvpl_int_t const* n,
    float const* DL,
    float const* D,
    float const* DU
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slangt(...) NVPL_LAPACK_slangt_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slangt(...) NVPL_LAPACK_slangt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlangt_base NVPL_LAPACK_GLOBAL(zlangt,ZLANGT)
double NVPL_LAPACK_zlangt_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* DL,
    nvpl_dcomplex_t const* D,
    nvpl_dcomplex_t const* DU
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlangt(...) NVPL_LAPACK_zlangt_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlangt(...) NVPL_LAPACK_zlangt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clanhb_base NVPL_LAPACK_GLOBAL(clanhb,CLANHB)
nvpl_lapack_float_return NVPL_LAPACK_clanhb_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clanhb(...) NVPL_LAPACK_clanhb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clanhb(...) NVPL_LAPACK_clanhb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlanhb_base NVPL_LAPACK_GLOBAL(zlanhb,ZLANHB)
double NVPL_LAPACK_zlanhb_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlanhb(...) NVPL_LAPACK_zlanhb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlanhb(...) NVPL_LAPACK_zlanhb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clanhe_base NVPL_LAPACK_GLOBAL(clanhe,CLANHE)
nvpl_lapack_float_return NVPL_LAPACK_clanhe_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clanhe(...) NVPL_LAPACK_clanhe_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clanhe(...) NVPL_LAPACK_clanhe_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlanhe_base NVPL_LAPACK_GLOBAL(zlanhe,ZLANHE)
double NVPL_LAPACK_zlanhe_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlanhe(...) NVPL_LAPACK_zlanhe_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlanhe(...) NVPL_LAPACK_zlanhe_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clanhp_base NVPL_LAPACK_GLOBAL(clanhp,CLANHP)
nvpl_lapack_float_return NVPL_LAPACK_clanhp_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clanhp(...) NVPL_LAPACK_clanhp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clanhp(...) NVPL_LAPACK_clanhp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlanhp_base NVPL_LAPACK_GLOBAL(zlanhp,ZLANHP)
double NVPL_LAPACK_zlanhp_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlanhp(...) NVPL_LAPACK_zlanhp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlanhp(...) NVPL_LAPACK_zlanhp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clanhs_base NVPL_LAPACK_GLOBAL(clanhs,CLANHS)
nvpl_lapack_float_return NVPL_LAPACK_clanhs_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clanhs(...) NVPL_LAPACK_clanhs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clanhs(...) NVPL_LAPACK_clanhs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlanhs_base NVPL_LAPACK_GLOBAL(dlanhs,DLANHS)
double NVPL_LAPACK_dlanhs_base(
    char const* norm,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlanhs(...) NVPL_LAPACK_dlanhs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlanhs(...) NVPL_LAPACK_dlanhs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slanhs_base NVPL_LAPACK_GLOBAL(slanhs,SLANHS)
nvpl_lapack_float_return NVPL_LAPACK_slanhs_base(
    char const* norm,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slanhs(...) NVPL_LAPACK_slanhs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slanhs(...) NVPL_LAPACK_slanhs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlanhs_base NVPL_LAPACK_GLOBAL(zlanhs,ZLANHS)
double NVPL_LAPACK_zlanhs_base(
    char const* norm,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlanhs(...) NVPL_LAPACK_zlanhs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlanhs(...) NVPL_LAPACK_zlanhs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clanht_base NVPL_LAPACK_GLOBAL(clanht,CLANHT)
nvpl_lapack_float_return NVPL_LAPACK_clanht_base(
    char const* norm,
    nvpl_int_t const* n,
    float const* D,
    nvpl_scomplex_t const* E
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clanht(...) NVPL_LAPACK_clanht_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clanht(...) NVPL_LAPACK_clanht_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlanht_base NVPL_LAPACK_GLOBAL(zlanht,ZLANHT)
double NVPL_LAPACK_zlanht_base(
    char const* norm,
    nvpl_int_t const* n,
    double const* D,
    nvpl_dcomplex_t const* E
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlanht(...) NVPL_LAPACK_zlanht_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlanht(...) NVPL_LAPACK_zlanht_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clansb_base NVPL_LAPACK_GLOBAL(clansb,CLANSB)
nvpl_lapack_float_return NVPL_LAPACK_clansb_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clansb(...) NVPL_LAPACK_clansb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clansb(...) NVPL_LAPACK_clansb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlansb_base NVPL_LAPACK_GLOBAL(dlansb,DLANSB)
double NVPL_LAPACK_dlansb_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlansb(...) NVPL_LAPACK_dlansb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dlansb(...) NVPL_LAPACK_dlansb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slansb_base NVPL_LAPACK_GLOBAL(slansb,SLANSB)
nvpl_lapack_float_return NVPL_LAPACK_slansb_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slansb(...) NVPL_LAPACK_slansb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_slansb(...) NVPL_LAPACK_slansb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlansb_base NVPL_LAPACK_GLOBAL(zlansb,ZLANSB)
double NVPL_LAPACK_zlansb_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlansb(...) NVPL_LAPACK_zlansb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlansb(...) NVPL_LAPACK_zlansb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clansp_base NVPL_LAPACK_GLOBAL(clansp,CLANSP)
nvpl_lapack_float_return NVPL_LAPACK_clansp_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clansp(...) NVPL_LAPACK_clansp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clansp(...) NVPL_LAPACK_clansp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlansp_base NVPL_LAPACK_GLOBAL(dlansp,DLANSP)
double NVPL_LAPACK_dlansp_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    double const* AP,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlansp(...) NVPL_LAPACK_dlansp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dlansp(...) NVPL_LAPACK_dlansp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slansp_base NVPL_LAPACK_GLOBAL(slansp,SLANSP)
nvpl_lapack_float_return NVPL_LAPACK_slansp_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    float const* AP,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slansp(...) NVPL_LAPACK_slansp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_slansp(...) NVPL_LAPACK_slansp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlansp_base NVPL_LAPACK_GLOBAL(zlansp,ZLANSP)
double NVPL_LAPACK_zlansp_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlansp(...) NVPL_LAPACK_zlansp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlansp(...) NVPL_LAPACK_zlansp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlanst_base NVPL_LAPACK_GLOBAL(dlanst,DLANST)
double NVPL_LAPACK_dlanst_base(
    char const* norm,
    nvpl_int_t const* n,
    double const* D,
    double const* E
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlanst(...) NVPL_LAPACK_dlanst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlanst(...) NVPL_LAPACK_dlanst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slanst_base NVPL_LAPACK_GLOBAL(slanst,SLANST)
nvpl_lapack_float_return NVPL_LAPACK_slanst_base(
    char const* norm,
    nvpl_int_t const* n,
    float const* D,
    float const* E
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slanst(...) NVPL_LAPACK_slanst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slanst(...) NVPL_LAPACK_slanst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clansy_base NVPL_LAPACK_GLOBAL(clansy,CLANSY)
nvpl_lapack_float_return NVPL_LAPACK_clansy_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clansy(...) NVPL_LAPACK_clansy_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clansy(...) NVPL_LAPACK_clansy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlansy_base NVPL_LAPACK_GLOBAL(dlansy,DLANSY)
double NVPL_LAPACK_dlansy_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlansy(...) NVPL_LAPACK_dlansy_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dlansy(...) NVPL_LAPACK_dlansy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slansy_base NVPL_LAPACK_GLOBAL(slansy,SLANSY)
nvpl_lapack_float_return NVPL_LAPACK_slansy_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slansy(...) NVPL_LAPACK_slansy_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_slansy(...) NVPL_LAPACK_slansy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlansy_base NVPL_LAPACK_GLOBAL(zlansy,ZLANSY)
double NVPL_LAPACK_zlansy_base(
    char const* norm, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlansy(...) NVPL_LAPACK_zlansy_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlansy(...) NVPL_LAPACK_zlansy_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clantb_base NVPL_LAPACK_GLOBAL(clantb,CLANTB)
nvpl_lapack_float_return NVPL_LAPACK_clantb_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clantb(...) NVPL_LAPACK_clantb_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_clantb(...) NVPL_LAPACK_clantb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlantb_base NVPL_LAPACK_GLOBAL(dlantb,DLANTB)
double NVPL_LAPACK_dlantb_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlantb(...) NVPL_LAPACK_dlantb_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dlantb(...) NVPL_LAPACK_dlantb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slantb_base NVPL_LAPACK_GLOBAL(slantb,SLANTB)
nvpl_lapack_float_return NVPL_LAPACK_slantb_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* AB, nvpl_int_t const* ldab,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slantb(...) NVPL_LAPACK_slantb_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_slantb(...) NVPL_LAPACK_slantb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlantb_base NVPL_LAPACK_GLOBAL(zlantb,ZLANTB)
double NVPL_LAPACK_zlantb_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlantb(...) NVPL_LAPACK_zlantb_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zlantb(...) NVPL_LAPACK_zlantb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clantp_base NVPL_LAPACK_GLOBAL(clantp,CLANTP)
nvpl_lapack_float_return NVPL_LAPACK_clantp_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clantp(...) NVPL_LAPACK_clantp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_clantp(...) NVPL_LAPACK_clantp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlantp_base NVPL_LAPACK_GLOBAL(dlantp,DLANTP)
double NVPL_LAPACK_dlantp_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    double const* AP,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlantp(...) NVPL_LAPACK_dlantp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dlantp(...) NVPL_LAPACK_dlantp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slantp_base NVPL_LAPACK_GLOBAL(slantp,SLANTP)
nvpl_lapack_float_return NVPL_LAPACK_slantp_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    float const* AP,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slantp(...) NVPL_LAPACK_slantp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_slantp(...) NVPL_LAPACK_slantp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlantp_base NVPL_LAPACK_GLOBAL(zlantp,ZLANTP)
double NVPL_LAPACK_zlantp_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlantp(...) NVPL_LAPACK_zlantp_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zlantp(...) NVPL_LAPACK_zlantp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clantr_base NVPL_LAPACK_GLOBAL(clantr,CLANTR)
nvpl_lapack_float_return NVPL_LAPACK_clantr_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clantr(...) NVPL_LAPACK_clantr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_clantr(...) NVPL_LAPACK_clantr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlantr_base NVPL_LAPACK_GLOBAL(dlantr,DLANTR)
double NVPL_LAPACK_dlantr_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlantr(...) NVPL_LAPACK_dlantr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dlantr(...) NVPL_LAPACK_dlantr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slantr_base NVPL_LAPACK_GLOBAL(slantr,SLANTR)
nvpl_lapack_float_return NVPL_LAPACK_slantr_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slantr(...) NVPL_LAPACK_slantr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_slantr(...) NVPL_LAPACK_slantr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlantr_base NVPL_LAPACK_GLOBAL(zlantr,ZLANTR)
double NVPL_LAPACK_zlantr_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlantr(...) NVPL_LAPACK_zlantr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zlantr(...) NVPL_LAPACK_zlantr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clapmr NVPL_LAPACK_GLOBAL(clapmr,CLAPMR)
void NVPL_LAPACK_clapmr(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlapmr NVPL_LAPACK_GLOBAL(dlapmr,DLAPMR)
void NVPL_LAPACK_dlapmr(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    double* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slapmr NVPL_LAPACK_GLOBAL(slapmr,SLAPMR)
void NVPL_LAPACK_slapmr(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    float* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlapmr NVPL_LAPACK_GLOBAL(zlapmr,ZLAPMR)
void NVPL_LAPACK_zlapmr(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clapmt NVPL_LAPACK_GLOBAL(clapmt,CLAPMT)
void NVPL_LAPACK_clapmt(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlapmt NVPL_LAPACK_GLOBAL(dlapmt,DLAPMT)
void NVPL_LAPACK_dlapmt(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    double* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slapmt NVPL_LAPACK_GLOBAL(slapmt,SLAPMT)
void NVPL_LAPACK_slapmt(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    float* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlapmt NVPL_LAPACK_GLOBAL(zlapmt,ZLAPMT)
void NVPL_LAPACK_zlapmt(
    nvpl_lapack_logical const* forwrd, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx, nvpl_int_t* K ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlapy2 NVPL_LAPACK_GLOBAL(dlapy2,DLAPY2)
double NVPL_LAPACK_dlapy2(
    double const* x,
    double const* y ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slapy2 NVPL_LAPACK_GLOBAL(slapy2,SLAPY2)
nvpl_lapack_float_return NVPL_LAPACK_slapy2(
    float const* x,
    float const* y ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlapy3 NVPL_LAPACK_GLOBAL(dlapy3,DLAPY3)
double NVPL_LAPACK_dlapy3(
    double const* x,
    double const* y,
    double const* z ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slapy3 NVPL_LAPACK_GLOBAL(slapy3,SLAPY3)
nvpl_lapack_float_return NVPL_LAPACK_slapy3(
    float const* x,
    float const* y,
    float const* z ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clarcm NVPL_LAPACK_GLOBAL(clarcm,CLARCM)
void NVPL_LAPACK_clarcm(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    float* rwork ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlarcm NVPL_LAPACK_GLOBAL(zlarcm,ZLARCM)
void NVPL_LAPACK_zlarcm(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    double* rwork ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clarf_base NVPL_LAPACK_GLOBAL(clarf,CLARF)
void NVPL_LAPACK_clarf_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* V, nvpl_int_t const* incv,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clarf(...) NVPL_LAPACK_clarf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clarf(...) NVPL_LAPACK_clarf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlarf_base NVPL_LAPACK_GLOBAL(dlarf,DLARF)
void NVPL_LAPACK_dlarf_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* V, nvpl_int_t const* incv,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlarf(...) NVPL_LAPACK_dlarf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlarf(...) NVPL_LAPACK_dlarf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slarf_base NVPL_LAPACK_GLOBAL(slarf,SLARF)
void NVPL_LAPACK_slarf_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* V, nvpl_int_t const* incv,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slarf(...) NVPL_LAPACK_slarf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slarf(...) NVPL_LAPACK_slarf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlarf_base NVPL_LAPACK_GLOBAL(zlarf,ZLARF)
void NVPL_LAPACK_zlarf_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* V, nvpl_int_t const* incv,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlarf(...) NVPL_LAPACK_zlarf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlarf(...) NVPL_LAPACK_zlarf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clarfb_base NVPL_LAPACK_GLOBAL(clarfb,CLARFB)
void NVPL_LAPACK_clarfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clarfb(...) NVPL_LAPACK_clarfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_clarfb(...) NVPL_LAPACK_clarfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlarfb_base NVPL_LAPACK_GLOBAL(dlarfb,DLARFB)
void NVPL_LAPACK_dlarfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* V, nvpl_int_t const* ldv,
    double const* T, nvpl_int_t const* ldt,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlarfb(...) NVPL_LAPACK_dlarfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dlarfb(...) NVPL_LAPACK_dlarfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slarfb_base NVPL_LAPACK_GLOBAL(slarfb,SLARFB)
void NVPL_LAPACK_slarfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* V, nvpl_int_t const* ldv,
    float const* T, nvpl_int_t const* ldt,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slarfb(...) NVPL_LAPACK_slarfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_slarfb(...) NVPL_LAPACK_slarfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlarfb_base NVPL_LAPACK_GLOBAL(zlarfb,ZLARFB)
void NVPL_LAPACK_zlarfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlarfb(...) NVPL_LAPACK_zlarfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zlarfb(...) NVPL_LAPACK_zlarfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clarfg NVPL_LAPACK_GLOBAL(clarfg,CLARFG)
void NVPL_LAPACK_clarfg(
    nvpl_int_t const* n,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* X, nvpl_int_t const* incx,
    nvpl_scomplex_t* tau ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlarfg NVPL_LAPACK_GLOBAL(dlarfg,DLARFG)
void NVPL_LAPACK_dlarfg(
    nvpl_int_t const* n,
    double* alpha,
    double* X, nvpl_int_t const* incx,
    double* tau ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slarfg NVPL_LAPACK_GLOBAL(slarfg,SLARFG)
void NVPL_LAPACK_slarfg(
    nvpl_int_t const* n,
    float* alpha,
    float* X, nvpl_int_t const* incx,
    float* tau ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlarfg NVPL_LAPACK_GLOBAL(zlarfg,ZLARFG)
void NVPL_LAPACK_zlarfg(
    nvpl_int_t const* n,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* X, nvpl_int_t const* incx,
    nvpl_dcomplex_t* tau ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clarft_base NVPL_LAPACK_GLOBAL(clarft,CLARFT)
void NVPL_LAPACK_clarft_base(
    char const* direct, char const* storev,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clarft(...) NVPL_LAPACK_clarft_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_clarft(...) NVPL_LAPACK_clarft_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlarft_base NVPL_LAPACK_GLOBAL(dlarft,DLARFT)
void NVPL_LAPACK_dlarft_base(
    char const* direct, char const* storev,
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* V, nvpl_int_t const* ldv,
    double const* tau,
    double* T, nvpl_int_t const* ldt
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlarft(...) NVPL_LAPACK_dlarft_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dlarft(...) NVPL_LAPACK_dlarft_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slarft_base NVPL_LAPACK_GLOBAL(slarft,SLARFT)
void NVPL_LAPACK_slarft_base(
    char const* direct, char const* storev,
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* V, nvpl_int_t const* ldv,
    float const* tau,
    float* T, nvpl_int_t const* ldt
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slarft(...) NVPL_LAPACK_slarft_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_slarft(...) NVPL_LAPACK_slarft_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlarft_base NVPL_LAPACK_GLOBAL(zlarft,ZLARFT)
void NVPL_LAPACK_zlarft_base(
    char const* direct, char const* storev,
    nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlarft(...) NVPL_LAPACK_zlarft_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zlarft(...) NVPL_LAPACK_zlarft_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clarfx_base NVPL_LAPACK_GLOBAL(clarfx,CLARFX)
void NVPL_LAPACK_clarfx_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* V,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clarfx(...) NVPL_LAPACK_clarfx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clarfx(...) NVPL_LAPACK_clarfx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlarfx_base NVPL_LAPACK_GLOBAL(dlarfx,DLARFX)
void NVPL_LAPACK_dlarfx_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* V,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlarfx(...) NVPL_LAPACK_dlarfx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlarfx(...) NVPL_LAPACK_dlarfx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slarfx_base NVPL_LAPACK_GLOBAL(slarfx,SLARFX)
void NVPL_LAPACK_slarfx_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* V,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slarfx(...) NVPL_LAPACK_slarfx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slarfx(...) NVPL_LAPACK_slarfx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlarfx_base NVPL_LAPACK_GLOBAL(zlarfx,ZLARFX)
void NVPL_LAPACK_zlarfx_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* V,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlarfx(...) NVPL_LAPACK_zlarfx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlarfx(...) NVPL_LAPACK_zlarfx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clarnv NVPL_LAPACK_GLOBAL(clarnv,CLARNV)
void NVPL_LAPACK_clarnv(
    nvpl_int_t const* idist, nvpl_int_t* iseed, nvpl_int_t const* n,
    nvpl_scomplex_t* X ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlarnv NVPL_LAPACK_GLOBAL(dlarnv,DLARNV)
void NVPL_LAPACK_dlarnv(
    nvpl_int_t const* idist, nvpl_int_t* iseed, nvpl_int_t const* n,
    double* X ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slarnv NVPL_LAPACK_GLOBAL(slarnv,SLARNV)
void NVPL_LAPACK_slarnv(
    nvpl_int_t const* idist, nvpl_int_t* iseed, nvpl_int_t const* n,
    float* X ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlarnv NVPL_LAPACK_GLOBAL(zlarnv,ZLARNV)
void NVPL_LAPACK_zlarnv(
    nvpl_int_t const* idist, nvpl_int_t* iseed, nvpl_int_t const* n,
    nvpl_dcomplex_t* X ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlartgp NVPL_LAPACK_GLOBAL(dlartgp,DLARTGP)
void NVPL_LAPACK_dlartgp(
    double const* f,
    double const* g,
    double* cs,
    double* sn,
    double* r ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slartgp NVPL_LAPACK_GLOBAL(slartgp,SLARTGP)
void NVPL_LAPACK_slartgp(
    float const* f,
    float const* g,
    float* cs,
    float* sn,
    float* r ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlartgs NVPL_LAPACK_GLOBAL(dlartgs,DLARTGS)
void NVPL_LAPACK_dlartgs(
    double const* x,
    double const* y,
    double const* sigma,
    double* cs,
    double* sn ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slartgs NVPL_LAPACK_GLOBAL(slartgs,SLARTGS)
void NVPL_LAPACK_slartgs(
    float const* x,
    float const* y,
    float const* sigma,
    float* cs,
    float* sn ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clascl_base NVPL_LAPACK_GLOBAL(clascl,CLASCL)
void NVPL_LAPACK_clascl_base(
    char const* type,
    nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* cfrom,
    float const* cto, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clascl(...) NVPL_LAPACK_clascl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clascl(...) NVPL_LAPACK_clascl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlascl_base NVPL_LAPACK_GLOBAL(dlascl,DLASCL)
void NVPL_LAPACK_dlascl_base(
    char const* type,
    nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* cfrom,
    double const* cto, nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlascl(...) NVPL_LAPACK_dlascl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlascl(...) NVPL_LAPACK_dlascl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slascl_base NVPL_LAPACK_GLOBAL(slascl,SLASCL)
void NVPL_LAPACK_slascl_base(
    char const* type,
    nvpl_int_t const* kl, nvpl_int_t const* ku,
    float const* cfrom,
    float const* cto, nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slascl(...) NVPL_LAPACK_slascl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slascl(...) NVPL_LAPACK_slascl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlascl_base NVPL_LAPACK_GLOBAL(zlascl,ZLASCL)
void NVPL_LAPACK_zlascl_base(
    char const* type,
    nvpl_int_t const* kl, nvpl_int_t const* ku,
    double const* cfrom,
    double const* cto, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlascl(...) NVPL_LAPACK_zlascl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlascl(...) NVPL_LAPACK_zlascl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_claset_base NVPL_LAPACK_GLOBAL(claset,CLASET)
void NVPL_LAPACK_claset_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* alpha,
    nvpl_scomplex_t const* beta,
    nvpl_scomplex_t* A, nvpl_int_t const* lda
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_claset(...) NVPL_LAPACK_claset_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_claset(...) NVPL_LAPACK_claset_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlaset_base NVPL_LAPACK_GLOBAL(dlaset,DLASET)
void NVPL_LAPACK_dlaset_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* alpha,
    double const* beta,
    double* A, nvpl_int_t const* lda
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlaset(...) NVPL_LAPACK_dlaset_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlaset(...) NVPL_LAPACK_dlaset_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slaset_base NVPL_LAPACK_GLOBAL(slaset,SLASET)
void NVPL_LAPACK_slaset_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* alpha,
    float const* beta,
    float* A, nvpl_int_t const* lda
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slaset(...) NVPL_LAPACK_slaset_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slaset(...) NVPL_LAPACK_slaset_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlaset_base NVPL_LAPACK_GLOBAL(zlaset,ZLASET)
void NVPL_LAPACK_zlaset_base(
    char const* uplo,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* alpha,
    nvpl_dcomplex_t const* beta,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlaset(...) NVPL_LAPACK_zlaset_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlaset(...) NVPL_LAPACK_zlaset_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlasrt_base NVPL_LAPACK_GLOBAL(dlasrt,DLASRT)
void NVPL_LAPACK_dlasrt_base(
    char const* id,
    nvpl_int_t const* n,
    double* D,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlasrt(...) NVPL_LAPACK_dlasrt_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlasrt(...) NVPL_LAPACK_dlasrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slasrt_base NVPL_LAPACK_GLOBAL(slasrt,SLASRT)
void NVPL_LAPACK_slasrt_base(
    char const* id,
    nvpl_int_t const* n,
    float* D,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slasrt(...) NVPL_LAPACK_slasrt_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slasrt(...) NVPL_LAPACK_slasrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_classq NVPL_LAPACK_GLOBAL(classq,CLASSQ)
void NVPL_LAPACK_classq(
    nvpl_int_t const* n,
    nvpl_scomplex_t const* X, nvpl_int_t const* incx,
    float* scale,
    float* sumsq ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlassq NVPL_LAPACK_GLOBAL(dlassq,DLASSQ)
void NVPL_LAPACK_dlassq(
    nvpl_int_t const* n,
    double const* X, nvpl_int_t const* incx,
    double* scale,
    double* sumsq ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slassq NVPL_LAPACK_GLOBAL(slassq,SLASSQ)
void NVPL_LAPACK_slassq(
    nvpl_int_t const* n,
    float const* X, nvpl_int_t const* incx,
    float* scale,
    float* sumsq ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlassq NVPL_LAPACK_GLOBAL(zlassq,ZLASSQ)
void NVPL_LAPACK_zlassq(
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* X, nvpl_int_t const* incx,
    double* scale,
    double* sumsq ) NVPL_LAPACK_API;

#define NVPL_LAPACK_claswp NVPL_LAPACK_GLOBAL(claswp,CLASWP)
void NVPL_LAPACK_claswp(
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* k1, nvpl_int_t const* k2, nvpl_int_t const* ipiv, nvpl_int_t const* incx ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dlaswp NVPL_LAPACK_GLOBAL(dlaswp,DLASWP)
void NVPL_LAPACK_dlaswp(
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* k1, nvpl_int_t const* k2, nvpl_int_t const* ipiv, nvpl_int_t const* incx ) NVPL_LAPACK_API;

#define NVPL_LAPACK_slaswp NVPL_LAPACK_GLOBAL(slaswp,SLASWP)
void NVPL_LAPACK_slaswp(
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* k1, nvpl_int_t const* k2, nvpl_int_t const* ipiv, nvpl_int_t const* incx ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zlaswp NVPL_LAPACK_GLOBAL(zlaswp,ZLASWP)
void NVPL_LAPACK_zlaswp(
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* k1, nvpl_int_t const* k2, nvpl_int_t const* ipiv, nvpl_int_t const* incx ) NVPL_LAPACK_API;

#define NVPL_LAPACK_clatms_base NVPL_LAPACK_GLOBAL(clatms,CLATMS)
void NVPL_LAPACK_clatms_base(
    nvpl_int_t const* m, nvpl_int_t const* n, char const* dist,
    nvpl_int_t* iseed, char const* sym,
    float* D,
    nvpl_int_t const* mode,
    float const* cond,
    float const* dmax, nvpl_int_t const* kl, nvpl_int_t const* ku, char const* pack,
    nvpl_scomplex_t* A,
    nvpl_int_t const* lda,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clatms(...) NVPL_LAPACK_clatms_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_clatms(...) NVPL_LAPACK_clatms_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlatms_base NVPL_LAPACK_GLOBAL(dlatms,DLATMS)
void NVPL_LAPACK_dlatms_base(
    nvpl_int_t const* m, nvpl_int_t const* n, char const* dist,
    nvpl_int_t* iseed, char const* sym,
    double* D,
    nvpl_int_t const* mode,
    double const* cond,
    double const* dmax, nvpl_int_t const* kl, nvpl_int_t const* ku, char const* pack,
    double* A,
    nvpl_int_t const* lda,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlatms(...) NVPL_LAPACK_dlatms_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dlatms(...) NVPL_LAPACK_dlatms_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slatms_base NVPL_LAPACK_GLOBAL(slatms,SLATMS)
void NVPL_LAPACK_slatms_base(
    nvpl_int_t const* m, nvpl_int_t const* n, char const* dist,
    nvpl_int_t* iseed, char const* sym,
    float* D,
    nvpl_int_t const* mode,
    float const* cond,
    float const* dmax, nvpl_int_t const* kl, nvpl_int_t const* ku, char const* pack,
    float* A,
    nvpl_int_t const* lda,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slatms(...) NVPL_LAPACK_slatms_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_slatms(...) NVPL_LAPACK_slatms_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlatms_base NVPL_LAPACK_GLOBAL(zlatms,ZLATMS)
void NVPL_LAPACK_zlatms_base(
    nvpl_int_t const* m, nvpl_int_t const* n, char const* dist,
    nvpl_int_t* iseed, char const* sym,
    double* D,
    nvpl_int_t const* mode,
    double const* cond,
    double const* dmax, nvpl_int_t const* kl, nvpl_int_t const* ku, char const* pack,
    nvpl_dcomplex_t* A,
    nvpl_int_t const* lda,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlatms(...) NVPL_LAPACK_zlatms_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zlatms(...) NVPL_LAPACK_zlatms_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_clauum_base NVPL_LAPACK_GLOBAL(clauum,CLAUUM)
void NVPL_LAPACK_clauum_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clauum(...) NVPL_LAPACK_clauum_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clauum(...) NVPL_LAPACK_clauum_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlauum_base NVPL_LAPACK_GLOBAL(dlauum,DLAUUM)
void NVPL_LAPACK_dlauum_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlauum(...) NVPL_LAPACK_dlauum_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlauum(...) NVPL_LAPACK_dlauum_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slauum_base NVPL_LAPACK_GLOBAL(slauum,SLAUUM)
void NVPL_LAPACK_slauum_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slauum(...) NVPL_LAPACK_slauum_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slauum(...) NVPL_LAPACK_slauum_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlauum_base NVPL_LAPACK_GLOBAL(zlauum,ZLAUUM)
void NVPL_LAPACK_zlauum_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlauum(...) NVPL_LAPACK_zlauum_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlauum(...) NVPL_LAPACK_zlauum_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ilaver NVPL_LAPACK_GLOBAL(ilaver,ILAVER)
void NVPL_LAPACK_ilaver(
    nvpl_int_t* vers_major, nvpl_int_t* vers_minor, nvpl_int_t* vers_patch ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dopgtr_base NVPL_LAPACK_GLOBAL(dopgtr,DOPGTR)
void NVPL_LAPACK_dopgtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* AP,
    double const* tau,
    double* Q, nvpl_int_t const* ldq,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dopgtr(...) NVPL_LAPACK_dopgtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dopgtr(...) NVPL_LAPACK_dopgtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sopgtr_base NVPL_LAPACK_GLOBAL(sopgtr,SOPGTR)
void NVPL_LAPACK_sopgtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* AP,
    float const* tau,
    float* Q, nvpl_int_t const* ldq,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sopgtr(...) NVPL_LAPACK_sopgtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sopgtr(...) NVPL_LAPACK_sopgtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dopmtr_base NVPL_LAPACK_GLOBAL(dopmtr,DOPMTR)
void NVPL_LAPACK_dopmtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* AP,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dopmtr(...) NVPL_LAPACK_dopmtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dopmtr(...) NVPL_LAPACK_dopmtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sopmtr_base NVPL_LAPACK_GLOBAL(sopmtr,SOPMTR)
void NVPL_LAPACK_sopmtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* AP,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sopmtr(...) NVPL_LAPACK_sopmtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sopmtr(...) NVPL_LAPACK_sopmtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dorbdb_base NVPL_LAPACK_GLOBAL(dorbdb,DORBDB)
void NVPL_LAPACK_dorbdb_base(
    char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    double* X11, nvpl_int_t const* ldx11,
    double* X12, nvpl_int_t const* ldx12,
    double* X21, nvpl_int_t const* ldx21,
    double* X22, nvpl_int_t const* ldx22,
    double* theta,
    double* phi,
    double* TAUP1,
    double* TAUP2,
    double* TAUQ1,
    double* TAUQ2,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dorbdb(...) NVPL_LAPACK_dorbdb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dorbdb(...) NVPL_LAPACK_dorbdb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sorbdb_base NVPL_LAPACK_GLOBAL(sorbdb,SORBDB)
void NVPL_LAPACK_sorbdb_base(
    char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    float* X11, nvpl_int_t const* ldx11,
    float* X12, nvpl_int_t const* ldx12,
    float* X21, nvpl_int_t const* ldx21,
    float* X22, nvpl_int_t const* ldx22,
    float* theta,
    float* phi,
    float* TAUP1,
    float* TAUP2,
    float* TAUQ1,
    float* TAUQ2,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sorbdb(...) NVPL_LAPACK_sorbdb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sorbdb(...) NVPL_LAPACK_sorbdb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dorcsd_base NVPL_LAPACK_GLOBAL(dorcsd,DORCSD)
void NVPL_LAPACK_dorcsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    double* X11, nvpl_int_t const* ldx11,
    double* X12, nvpl_int_t const* ldx12,
    double* X21, nvpl_int_t const* ldx21,
    double* X22, nvpl_int_t const* ldx22,
    double* theta,
    double* U1, nvpl_int_t const* ldu1,
    double* U2, nvpl_int_t const* ldu2,
    double* V1T, nvpl_int_t const* ldv1t,
    double* V2T, nvpl_int_t const* ldv2t,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dorcsd(...) NVPL_LAPACK_dorcsd_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dorcsd(...) NVPL_LAPACK_dorcsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sorcsd_base NVPL_LAPACK_GLOBAL(sorcsd,SORCSD)
void NVPL_LAPACK_sorcsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    float* X11, nvpl_int_t const* ldx11,
    float* X12, nvpl_int_t const* ldx12,
    float* X21, nvpl_int_t const* ldx21,
    float* X22, nvpl_int_t const* ldx22,
    float* theta,
    float* U1, nvpl_int_t const* ldu1,
    float* U2, nvpl_int_t const* ldu2,
    float* V1T, nvpl_int_t const* ldv1t,
    float* V2T, nvpl_int_t const* ldv2t,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sorcsd(...) NVPL_LAPACK_sorcsd_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_sorcsd(...) NVPL_LAPACK_sorcsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dorcsd2by1_base NVPL_LAPACK_GLOBAL(dorcsd2by1,DORCSD2BY1)
void NVPL_LAPACK_dorcsd2by1_base(
    char const* jobu1, char const* jobu2, char const* jobv1t,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    double* X11, nvpl_int_t const* ldx11,
    double* X21, nvpl_int_t const* ldx21,
    double* theta,
    double* U1, nvpl_int_t const* ldu1,
    double* U2, nvpl_int_t const* ldu2,
    double* V1T, nvpl_int_t const* ldv1t,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dorcsd2by1(...) NVPL_LAPACK_dorcsd2by1_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dorcsd2by1(...) NVPL_LAPACK_dorcsd2by1_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sorcsd2by1_base NVPL_LAPACK_GLOBAL(sorcsd2by1,SORCSD2BY1)
void NVPL_LAPACK_sorcsd2by1_base(
    char const* jobu1, char const* jobu2, char const* jobv1t,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    float* X11, nvpl_int_t const* ldx11,
    float* X21, nvpl_int_t const* ldx21,
    float* theta,
    float* U1, nvpl_int_t const* ldu1,
    float* U2, nvpl_int_t const* ldu2,
    float* V1T, nvpl_int_t const* ldv1t,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sorcsd2by1(...) NVPL_LAPACK_sorcsd2by1_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sorcsd2by1(...) NVPL_LAPACK_sorcsd2by1_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dorgbr_base NVPL_LAPACK_GLOBAL(dorgbr,DORGBR)
void NVPL_LAPACK_dorgbr_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dorgbr(...) NVPL_LAPACK_dorgbr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dorgbr(...) NVPL_LAPACK_dorgbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sorgbr_base NVPL_LAPACK_GLOBAL(sorgbr,SORGBR)
void NVPL_LAPACK_sorgbr_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sorgbr(...) NVPL_LAPACK_sorgbr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sorgbr(...) NVPL_LAPACK_sorgbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dorghr NVPL_LAPACK_GLOBAL(dorghr,DORGHR)
void NVPL_LAPACK_dorghr(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sorghr NVPL_LAPACK_GLOBAL(sorghr,SORGHR)
void NVPL_LAPACK_sorghr(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dorglq NVPL_LAPACK_GLOBAL(dorglq,DORGLQ)
void NVPL_LAPACK_dorglq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sorglq NVPL_LAPACK_GLOBAL(sorglq,SORGLQ)
void NVPL_LAPACK_sorglq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dorgql NVPL_LAPACK_GLOBAL(dorgql,DORGQL)
void NVPL_LAPACK_dorgql(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sorgql NVPL_LAPACK_GLOBAL(sorgql,SORGQL)
void NVPL_LAPACK_sorgql(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dorgqr NVPL_LAPACK_GLOBAL(dorgqr,DORGQR)
void NVPL_LAPACK_dorgqr(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
) NVPL_LAPACK_API;

#define NVPL_LAPACK_sorgqr NVPL_LAPACK_GLOBAL(sorgqr,SORGQR)
void NVPL_LAPACK_sorgqr(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
) NVPL_LAPACK_API;

#define NVPL_LAPACK_dorgrq NVPL_LAPACK_GLOBAL(dorgrq,DORGRQ)
void NVPL_LAPACK_dorgrq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sorgrq NVPL_LAPACK_GLOBAL(sorgrq,SORGRQ)
void NVPL_LAPACK_sorgrq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dorgtr_base NVPL_LAPACK_GLOBAL(dorgtr,DORGTR)
void NVPL_LAPACK_dorgtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dorgtr(...) NVPL_LAPACK_dorgtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dorgtr(...) NVPL_LAPACK_dorgtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sorgtr_base NVPL_LAPACK_GLOBAL(sorgtr,SORGTR)
void NVPL_LAPACK_sorgtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sorgtr(...) NVPL_LAPACK_sorgtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sorgtr(...) NVPL_LAPACK_sorgtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dorgtsqr_row NVPL_LAPACK_GLOBAL(dorgtsqr_row,DORGTSQR_ROW)
void NVPL_LAPACK_dorgtsqr_row(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb, nvpl_int_t const* nb,
    double* A, nvpl_int_t const* lda,
    double const* T, nvpl_int_t const* ldt,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sorgtsqr_row NVPL_LAPACK_GLOBAL(sorgtsqr_row,SORGTSQR_ROW)
void NVPL_LAPACK_sorgtsqr_row(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb, nvpl_int_t const* nb,
    float* A, nvpl_int_t const* lda,
    float const* T, nvpl_int_t const* ldt,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dormbr_base NVPL_LAPACK_GLOBAL(dormbr,DORMBR)
void NVPL_LAPACK_dormbr_base(
    char const* vect, char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormbr(...) NVPL_LAPACK_dormbr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dormbr(...) NVPL_LAPACK_dormbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormbr_base NVPL_LAPACK_GLOBAL(sormbr,SORMBR)
void NVPL_LAPACK_sormbr_base(
    char const* vect, char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormbr(...) NVPL_LAPACK_sormbr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sormbr(...) NVPL_LAPACK_sormbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormhr_base NVPL_LAPACK_GLOBAL(dormhr,DORMHR)
void NVPL_LAPACK_dormhr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormhr(...) NVPL_LAPACK_dormhr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dormhr(...) NVPL_LAPACK_dormhr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormhr_base NVPL_LAPACK_GLOBAL(sormhr,SORMHR)
void NVPL_LAPACK_sormhr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormhr(...) NVPL_LAPACK_sormhr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sormhr(...) NVPL_LAPACK_sormhr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormlq_base NVPL_LAPACK_GLOBAL(dormlq,DORMLQ)
void NVPL_LAPACK_dormlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormlq(...) NVPL_LAPACK_dormlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dormlq(...) NVPL_LAPACK_dormlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormlq_base NVPL_LAPACK_GLOBAL(sormlq,SORMLQ)
void NVPL_LAPACK_sormlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormlq(...) NVPL_LAPACK_sormlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sormlq(...) NVPL_LAPACK_sormlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormql_base NVPL_LAPACK_GLOBAL(dormql,DORMQL)
void NVPL_LAPACK_dormql_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormql(...) NVPL_LAPACK_dormql_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dormql(...) NVPL_LAPACK_dormql_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormql_base NVPL_LAPACK_GLOBAL(sormql,SORMQL)
void NVPL_LAPACK_sormql_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormql(...) NVPL_LAPACK_sormql_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sormql(...) NVPL_LAPACK_sormql_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormqr_base NVPL_LAPACK_GLOBAL(dormqr,DORMQR)
void NVPL_LAPACK_dormqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormqr(...) NVPL_LAPACK_dormqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dormqr(...) NVPL_LAPACK_dormqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormqr_base NVPL_LAPACK_GLOBAL(sormqr,SORMQR)
void NVPL_LAPACK_sormqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormqr(...) NVPL_LAPACK_sormqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sormqr(...) NVPL_LAPACK_sormqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormrq_base NVPL_LAPACK_GLOBAL(dormrq,DORMRQ)
void NVPL_LAPACK_dormrq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormrq(...) NVPL_LAPACK_dormrq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dormrq(...) NVPL_LAPACK_dormrq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormrq_base NVPL_LAPACK_GLOBAL(sormrq,SORMRQ)
void NVPL_LAPACK_sormrq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormrq(...) NVPL_LAPACK_sormrq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sormrq(...) NVPL_LAPACK_sormrq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormrz_base NVPL_LAPACK_GLOBAL(dormrz,DORMRZ)
void NVPL_LAPACK_dormrz_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormrz(...) NVPL_LAPACK_dormrz_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dormrz(...) NVPL_LAPACK_dormrz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormrz_base NVPL_LAPACK_GLOBAL(sormrz,SORMRZ)
void NVPL_LAPACK_sormrz_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormrz(...) NVPL_LAPACK_sormrz_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sormrz(...) NVPL_LAPACK_sormrz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dormtr_base NVPL_LAPACK_GLOBAL(dormtr,DORMTR)
void NVPL_LAPACK_dormtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* tau,
    double* C, nvpl_int_t const* ldc,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dormtr(...) NVPL_LAPACK_dormtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dormtr(...) NVPL_LAPACK_dormtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sormtr_base NVPL_LAPACK_GLOBAL(sormtr,SORMTR)
void NVPL_LAPACK_sormtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* tau,
    float* C, nvpl_int_t const* ldc,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sormtr(...) NVPL_LAPACK_sormtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sormtr(...) NVPL_LAPACK_sormtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbcon_base NVPL_LAPACK_GLOBAL(cpbcon,CPBCON)
void NVPL_LAPACK_cpbcon_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbcon(...) NVPL_LAPACK_cpbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbcon(...) NVPL_LAPACK_cpbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbcon_base NVPL_LAPACK_GLOBAL(dpbcon,DPBCON)
void NVPL_LAPACK_dpbcon_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double const* AB, nvpl_int_t const* ldab,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbcon(...) NVPL_LAPACK_dpbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbcon(...) NVPL_LAPACK_dpbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbcon_base NVPL_LAPACK_GLOBAL(spbcon,SPBCON)
void NVPL_LAPACK_spbcon_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float const* AB, nvpl_int_t const* ldab,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbcon(...) NVPL_LAPACK_spbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbcon(...) NVPL_LAPACK_spbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbcon_base NVPL_LAPACK_GLOBAL(zpbcon,ZPBCON)
void NVPL_LAPACK_zpbcon_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbcon(...) NVPL_LAPACK_zpbcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbcon(...) NVPL_LAPACK_zpbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbequ_base NVPL_LAPACK_GLOBAL(cpbequ,CPBEQU)
void NVPL_LAPACK_cpbequ_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbequ(...) NVPL_LAPACK_cpbequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbequ(...) NVPL_LAPACK_cpbequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbequ_base NVPL_LAPACK_GLOBAL(dpbequ,DPBEQU)
void NVPL_LAPACK_dpbequ_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double const* AB, nvpl_int_t const* ldab,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbequ(...) NVPL_LAPACK_dpbequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbequ(...) NVPL_LAPACK_dpbequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbequ_base NVPL_LAPACK_GLOBAL(spbequ,SPBEQU)
void NVPL_LAPACK_spbequ_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float const* AB, nvpl_int_t const* ldab,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbequ(...) NVPL_LAPACK_spbequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbequ(...) NVPL_LAPACK_spbequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbequ_base NVPL_LAPACK_GLOBAL(zpbequ,ZPBEQU)
void NVPL_LAPACK_zpbequ_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbequ(...) NVPL_LAPACK_zpbequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbequ(...) NVPL_LAPACK_zpbequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbrfs_base NVPL_LAPACK_GLOBAL(cpbrfs,CPBRFS)
void NVPL_LAPACK_cpbrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t const* AFB, nvpl_int_t const* ldafb,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbrfs(...) NVPL_LAPACK_cpbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbrfs(...) NVPL_LAPACK_cpbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbrfs_base NVPL_LAPACK_GLOBAL(dpbrfs,DPBRFS)
void NVPL_LAPACK_dpbrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab,
    double const* AFB, nvpl_int_t const* ldafb,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbrfs(...) NVPL_LAPACK_dpbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbrfs(...) NVPL_LAPACK_dpbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbrfs_base NVPL_LAPACK_GLOBAL(spbrfs,SPBRFS)
void NVPL_LAPACK_spbrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab,
    float const* AFB, nvpl_int_t const* ldafb,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbrfs(...) NVPL_LAPACK_spbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbrfs(...) NVPL_LAPACK_spbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbrfs_base NVPL_LAPACK_GLOBAL(zpbrfs,ZPBRFS)
void NVPL_LAPACK_zpbrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t const* AFB, nvpl_int_t const* ldafb,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbrfs(...) NVPL_LAPACK_zpbrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbrfs(...) NVPL_LAPACK_zpbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbstf_base NVPL_LAPACK_GLOBAL(cpbstf,CPBSTF)
void NVPL_LAPACK_cpbstf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbstf(...) NVPL_LAPACK_cpbstf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbstf(...) NVPL_LAPACK_cpbstf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbstf_base NVPL_LAPACK_GLOBAL(dpbstf,DPBSTF)
void NVPL_LAPACK_dpbstf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbstf(...) NVPL_LAPACK_dpbstf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbstf(...) NVPL_LAPACK_dpbstf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbstf_base NVPL_LAPACK_GLOBAL(spbstf,SPBSTF)
void NVPL_LAPACK_spbstf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbstf(...) NVPL_LAPACK_spbstf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbstf(...) NVPL_LAPACK_spbstf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbstf_base NVPL_LAPACK_GLOBAL(zpbstf,ZPBSTF)
void NVPL_LAPACK_zpbstf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbstf(...) NVPL_LAPACK_zpbstf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbstf(...) NVPL_LAPACK_zpbstf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbsv_base NVPL_LAPACK_GLOBAL(cpbsv,CPBSV)
void NVPL_LAPACK_cpbsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbsv(...) NVPL_LAPACK_cpbsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbsv(...) NVPL_LAPACK_cpbsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbsv_base NVPL_LAPACK_GLOBAL(dpbsv,DPBSV)
void NVPL_LAPACK_dpbsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    double* AB, nvpl_int_t const* ldab,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbsv(...) NVPL_LAPACK_dpbsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbsv(...) NVPL_LAPACK_dpbsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbsv_base NVPL_LAPACK_GLOBAL(spbsv,SPBSV)
void NVPL_LAPACK_spbsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    float* AB, nvpl_int_t const* ldab,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbsv(...) NVPL_LAPACK_spbsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbsv(...) NVPL_LAPACK_spbsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbsv_base NVPL_LAPACK_GLOBAL(zpbsv,ZPBSV)
void NVPL_LAPACK_zpbsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbsv(...) NVPL_LAPACK_zpbsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbsv(...) NVPL_LAPACK_zpbsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbsvx_base NVPL_LAPACK_GLOBAL(cpbsvx,CPBSVX)
void NVPL_LAPACK_cpbsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* AFB, nvpl_int_t const* ldafb, char* equed,
    float* S,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbsvx(...) NVPL_LAPACK_cpbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cpbsvx(...) NVPL_LAPACK_cpbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbsvx_base NVPL_LAPACK_GLOBAL(dpbsvx,DPBSVX)
void NVPL_LAPACK_dpbsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    double* AB, nvpl_int_t const* ldab,
    double* AFB, nvpl_int_t const* ldafb, char* equed,
    double* S,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbsvx(...) NVPL_LAPACK_dpbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dpbsvx(...) NVPL_LAPACK_dpbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbsvx_base NVPL_LAPACK_GLOBAL(spbsvx,SPBSVX)
void NVPL_LAPACK_spbsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    float* AB, nvpl_int_t const* ldab,
    float* AFB, nvpl_int_t const* ldafb, char* equed,
    float* S,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbsvx(...) NVPL_LAPACK_spbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_spbsvx(...) NVPL_LAPACK_spbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbsvx_base NVPL_LAPACK_GLOBAL(zpbsvx,ZPBSVX)
void NVPL_LAPACK_zpbsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* AFB, nvpl_int_t const* ldafb, char* equed,
    double* S,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbsvx(...) NVPL_LAPACK_zpbsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zpbsvx(...) NVPL_LAPACK_zpbsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbtrf_base NVPL_LAPACK_GLOBAL(cpbtrf,CPBTRF)
void NVPL_LAPACK_cpbtrf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbtrf(...) NVPL_LAPACK_cpbtrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbtrf(...) NVPL_LAPACK_cpbtrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbtrf_base NVPL_LAPACK_GLOBAL(dpbtrf,DPBTRF)
void NVPL_LAPACK_dpbtrf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbtrf(...) NVPL_LAPACK_dpbtrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbtrf(...) NVPL_LAPACK_dpbtrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbtrf_base NVPL_LAPACK_GLOBAL(spbtrf,SPBTRF)
void NVPL_LAPACK_spbtrf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbtrf(...) NVPL_LAPACK_spbtrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbtrf(...) NVPL_LAPACK_spbtrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbtrf_base NVPL_LAPACK_GLOBAL(zpbtrf,ZPBTRF)
void NVPL_LAPACK_zpbtrf_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t* AB, nvpl_int_t const* ldab,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbtrf(...) NVPL_LAPACK_zpbtrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbtrf(...) NVPL_LAPACK_zpbtrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpbtrs_base NVPL_LAPACK_GLOBAL(cpbtrs,CPBTRS)
void NVPL_LAPACK_cpbtrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpbtrs(...) NVPL_LAPACK_cpbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpbtrs(...) NVPL_LAPACK_cpbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpbtrs_base NVPL_LAPACK_GLOBAL(dpbtrs,DPBTRS)
void NVPL_LAPACK_dpbtrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpbtrs(...) NVPL_LAPACK_dpbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpbtrs(...) NVPL_LAPACK_dpbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spbtrs_base NVPL_LAPACK_GLOBAL(spbtrs,SPBTRS)
void NVPL_LAPACK_spbtrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spbtrs(...) NVPL_LAPACK_spbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spbtrs(...) NVPL_LAPACK_spbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpbtrs_base NVPL_LAPACK_GLOBAL(zpbtrs,ZPBTRS)
void NVPL_LAPACK_zpbtrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpbtrs(...) NVPL_LAPACK_zpbtrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpbtrs(...) NVPL_LAPACK_zpbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpftrf_base NVPL_LAPACK_GLOBAL(cpftrf,CPFTRF)
void NVPL_LAPACK_cpftrf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpftrf(...) NVPL_LAPACK_cpftrf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cpftrf(...) NVPL_LAPACK_cpftrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpftrf_base NVPL_LAPACK_GLOBAL(dpftrf,DPFTRF)
void NVPL_LAPACK_dpftrf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    double* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpftrf(...) NVPL_LAPACK_dpftrf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dpftrf(...) NVPL_LAPACK_dpftrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spftrf_base NVPL_LAPACK_GLOBAL(spftrf,SPFTRF)
void NVPL_LAPACK_spftrf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    float* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spftrf(...) NVPL_LAPACK_spftrf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_spftrf(...) NVPL_LAPACK_spftrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpftrf_base NVPL_LAPACK_GLOBAL(zpftrf,ZPFTRF)
void NVPL_LAPACK_zpftrf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpftrf(...) NVPL_LAPACK_zpftrf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zpftrf(...) NVPL_LAPACK_zpftrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpftri_base NVPL_LAPACK_GLOBAL(cpftri,CPFTRI)
void NVPL_LAPACK_cpftri_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpftri(...) NVPL_LAPACK_cpftri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cpftri(...) NVPL_LAPACK_cpftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpftri_base NVPL_LAPACK_GLOBAL(dpftri,DPFTRI)
void NVPL_LAPACK_dpftri_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    double* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpftri(...) NVPL_LAPACK_dpftri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dpftri(...) NVPL_LAPACK_dpftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spftri_base NVPL_LAPACK_GLOBAL(spftri,SPFTRI)
void NVPL_LAPACK_spftri_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    float* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spftri(...) NVPL_LAPACK_spftri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_spftri(...) NVPL_LAPACK_spftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpftri_base NVPL_LAPACK_GLOBAL(zpftri,ZPFTRI)
void NVPL_LAPACK_zpftri_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpftri(...) NVPL_LAPACK_zpftri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zpftri(...) NVPL_LAPACK_zpftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpftrs_base NVPL_LAPACK_GLOBAL(cpftrs,CPFTRS)
void NVPL_LAPACK_cpftrs_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpftrs(...) NVPL_LAPACK_cpftrs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cpftrs(...) NVPL_LAPACK_cpftrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpftrs_base NVPL_LAPACK_GLOBAL(dpftrs,DPFTRS)
void NVPL_LAPACK_dpftrs_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpftrs(...) NVPL_LAPACK_dpftrs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dpftrs(...) NVPL_LAPACK_dpftrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spftrs_base NVPL_LAPACK_GLOBAL(spftrs,SPFTRS)
void NVPL_LAPACK_spftrs_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spftrs(...) NVPL_LAPACK_spftrs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_spftrs(...) NVPL_LAPACK_spftrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpftrs_base NVPL_LAPACK_GLOBAL(zpftrs,ZPFTRS)
void NVPL_LAPACK_zpftrs_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpftrs(...) NVPL_LAPACK_zpftrs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zpftrs(...) NVPL_LAPACK_zpftrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpocon_base NVPL_LAPACK_GLOBAL(cpocon,CPOCON)
void NVPL_LAPACK_cpocon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpocon(...) NVPL_LAPACK_cpocon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpocon(...) NVPL_LAPACK_cpocon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpocon_base NVPL_LAPACK_GLOBAL(dpocon,DPOCON)
void NVPL_LAPACK_dpocon_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpocon(...) NVPL_LAPACK_dpocon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpocon(...) NVPL_LAPACK_dpocon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spocon_base NVPL_LAPACK_GLOBAL(spocon,SPOCON)
void NVPL_LAPACK_spocon_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spocon(...) NVPL_LAPACK_spocon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spocon(...) NVPL_LAPACK_spocon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpocon_base NVPL_LAPACK_GLOBAL(zpocon,ZPOCON)
void NVPL_LAPACK_zpocon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpocon(...) NVPL_LAPACK_zpocon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpocon(...) NVPL_LAPACK_zpocon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpoequ NVPL_LAPACK_GLOBAL(cpoequ,CPOEQU)
void NVPL_LAPACK_cpoequ(
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dpoequ NVPL_LAPACK_GLOBAL(dpoequ,DPOEQU)
void NVPL_LAPACK_dpoequ(
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_spoequ NVPL_LAPACK_GLOBAL(spoequ,SPOEQU)
void NVPL_LAPACK_spoequ(
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zpoequ NVPL_LAPACK_GLOBAL(zpoequ,ZPOEQU)
void NVPL_LAPACK_zpoequ(
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cpoequb NVPL_LAPACK_GLOBAL(cpoequb,CPOEQUB)
void NVPL_LAPACK_cpoequb(
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dpoequb NVPL_LAPACK_GLOBAL(dpoequb,DPOEQUB)
void NVPL_LAPACK_dpoequb(
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_spoequb NVPL_LAPACK_GLOBAL(spoequb,SPOEQUB)
void NVPL_LAPACK_spoequb(
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zpoequb NVPL_LAPACK_GLOBAL(zpoequb,ZPOEQUB)
void NVPL_LAPACK_zpoequb(
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cporfs_base NVPL_LAPACK_GLOBAL(cporfs,CPORFS)
void NVPL_LAPACK_cporfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cporfs(...) NVPL_LAPACK_cporfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cporfs(...) NVPL_LAPACK_cporfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dporfs_base NVPL_LAPACK_GLOBAL(dporfs,DPORFS)
void NVPL_LAPACK_dporfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* AF, nvpl_int_t const* ldaf,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dporfs(...) NVPL_LAPACK_dporfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dporfs(...) NVPL_LAPACK_dporfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sporfs_base NVPL_LAPACK_GLOBAL(sporfs,SPORFS)
void NVPL_LAPACK_sporfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* AF, nvpl_int_t const* ldaf,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sporfs(...) NVPL_LAPACK_sporfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sporfs(...) NVPL_LAPACK_sporfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zporfs_base NVPL_LAPACK_GLOBAL(zporfs,ZPORFS)
void NVPL_LAPACK_zporfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zporfs(...) NVPL_LAPACK_zporfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zporfs(...) NVPL_LAPACK_zporfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cporfsx_base NVPL_LAPACK_GLOBAL(cporfsx,CPORFSX)
void NVPL_LAPACK_cporfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf,
    const float* S,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cporfsx(...) NVPL_LAPACK_cporfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cporfsx(...) NVPL_LAPACK_cporfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dporfsx_base NVPL_LAPACK_GLOBAL(dporfsx,DPORFSX)
void NVPL_LAPACK_dporfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* AF, nvpl_int_t const* ldaf,
    const double* S,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dporfsx(...) NVPL_LAPACK_dporfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dporfsx(...) NVPL_LAPACK_dporfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sporfsx_base NVPL_LAPACK_GLOBAL(sporfsx,SPORFSX)
void NVPL_LAPACK_sporfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* AF, nvpl_int_t const* ldaf,
    const float* S,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sporfsx(...) NVPL_LAPACK_sporfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sporfsx(...) NVPL_LAPACK_sporfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zporfsx_base NVPL_LAPACK_GLOBAL(zporfsx,ZPORFSX)
void NVPL_LAPACK_zporfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf,
    const double* S,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zporfsx(...) NVPL_LAPACK_zporfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zporfsx(...) NVPL_LAPACK_zporfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cposv_base NVPL_LAPACK_GLOBAL(cposv,CPOSV)
void NVPL_LAPACK_cposv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cposv(...) NVPL_LAPACK_cposv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cposv(...) NVPL_LAPACK_cposv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dposv_base NVPL_LAPACK_GLOBAL(dposv,DPOSV)
void NVPL_LAPACK_dposv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dposv(...) NVPL_LAPACK_dposv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dposv(...) NVPL_LAPACK_dposv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sposv_base NVPL_LAPACK_GLOBAL(sposv,SPOSV)
void NVPL_LAPACK_sposv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sposv(...) NVPL_LAPACK_sposv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sposv(...) NVPL_LAPACK_sposv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zposv_base NVPL_LAPACK_GLOBAL(zposv,ZPOSV)
void NVPL_LAPACK_zposv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zposv(...) NVPL_LAPACK_zposv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zposv(...) NVPL_LAPACK_zposv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsposv_base NVPL_LAPACK_GLOBAL(dsposv,DSPOSV)
void NVPL_LAPACK_dsposv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* work,
    float* swork, nvpl_int_t* iter,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsposv(...) NVPL_LAPACK_dsposv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsposv(...) NVPL_LAPACK_dsposv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zcposv_base NVPL_LAPACK_GLOBAL(zcposv,ZCPOSV)
void NVPL_LAPACK_zcposv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    nvpl_dcomplex_t* work,
    nvpl_scomplex_t* swork,
    double* rwork, nvpl_int_t* iter,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zcposv(...) NVPL_LAPACK_zcposv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zcposv(...) NVPL_LAPACK_zcposv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cposvx_base NVPL_LAPACK_GLOBAL(cposvx,CPOSVX)
void NVPL_LAPACK_cposvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, char* equed,
    float* S,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cposvx(...) NVPL_LAPACK_cposvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cposvx(...) NVPL_LAPACK_cposvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dposvx_base NVPL_LAPACK_GLOBAL(dposvx,DPOSVX)
void NVPL_LAPACK_dposvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* AF, nvpl_int_t const* ldaf, char* equed,
    double* S,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dposvx(...) NVPL_LAPACK_dposvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dposvx(...) NVPL_LAPACK_dposvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sposvx_base NVPL_LAPACK_GLOBAL(sposvx,SPOSVX)
void NVPL_LAPACK_sposvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* AF, nvpl_int_t const* ldaf, char* equed,
    float* S,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sposvx(...) NVPL_LAPACK_sposvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sposvx(...) NVPL_LAPACK_sposvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zposvx_base NVPL_LAPACK_GLOBAL(zposvx,ZPOSVX)
void NVPL_LAPACK_zposvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, char* equed,
    double* S,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zposvx(...) NVPL_LAPACK_zposvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zposvx(...) NVPL_LAPACK_zposvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cposvxx_base NVPL_LAPACK_GLOBAL(cposvxx,CPOSVXX)
void NVPL_LAPACK_cposvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, char* equed,
    float* S,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cposvxx(...) NVPL_LAPACK_cposvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cposvxx(...) NVPL_LAPACK_cposvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dposvxx_base NVPL_LAPACK_GLOBAL(dposvxx,DPOSVXX)
void NVPL_LAPACK_dposvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* AF, nvpl_int_t const* ldaf, char* equed,
    double* S,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dposvxx(...) NVPL_LAPACK_dposvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dposvxx(...) NVPL_LAPACK_dposvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sposvxx_base NVPL_LAPACK_GLOBAL(sposvxx,SPOSVXX)
void NVPL_LAPACK_sposvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* AF, nvpl_int_t const* ldaf, char* equed,
    float* S,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sposvxx(...) NVPL_LAPACK_sposvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sposvxx(...) NVPL_LAPACK_sposvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zposvxx_base NVPL_LAPACK_GLOBAL(zposvxx,ZPOSVXX)
void NVPL_LAPACK_zposvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, char* equed,
    double* S,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zposvxx(...) NVPL_LAPACK_zposvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zposvxx(...) NVPL_LAPACK_zposvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpotf2_base NVPL_LAPACK_GLOBAL(cpotf2,CPOTF2)
void NVPL_LAPACK_cpotf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpotf2(...) NVPL_LAPACK_cpotf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpotf2(...) NVPL_LAPACK_cpotf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpotf2_base NVPL_LAPACK_GLOBAL(dpotf2,DPOTF2)
void NVPL_LAPACK_dpotf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpotf2(...) NVPL_LAPACK_dpotf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpotf2(...) NVPL_LAPACK_dpotf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spotf2_base NVPL_LAPACK_GLOBAL(spotf2,SPOTF2)
void NVPL_LAPACK_spotf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spotf2(...) NVPL_LAPACK_spotf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spotf2(...) NVPL_LAPACK_spotf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpotf2_base NVPL_LAPACK_GLOBAL(zpotf2,ZPOTF2)
void NVPL_LAPACK_zpotf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpotf2(...) NVPL_LAPACK_zpotf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpotf2(...) NVPL_LAPACK_zpotf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpotrf_base NVPL_LAPACK_GLOBAL(cpotrf,CPOTRF)
void NVPL_LAPACK_cpotrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpotrf(...) NVPL_LAPACK_cpotrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpotrf(...) NVPL_LAPACK_cpotrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpotrf_base NVPL_LAPACK_GLOBAL(dpotrf,DPOTRF)
void NVPL_LAPACK_dpotrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpotrf(...) NVPL_LAPACK_dpotrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpotrf(...) NVPL_LAPACK_dpotrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spotrf_base NVPL_LAPACK_GLOBAL(spotrf,SPOTRF)
void NVPL_LAPACK_spotrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spotrf(...) NVPL_LAPACK_spotrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spotrf(...) NVPL_LAPACK_spotrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpotrf_base NVPL_LAPACK_GLOBAL(zpotrf,ZPOTRF)
void NVPL_LAPACK_zpotrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpotrf(...) NVPL_LAPACK_zpotrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpotrf(...) NVPL_LAPACK_zpotrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpotrf2_base NVPL_LAPACK_GLOBAL(cpotrf2,CPOTRF2)
void NVPL_LAPACK_cpotrf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpotrf2(...) NVPL_LAPACK_cpotrf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpotrf2(...) NVPL_LAPACK_cpotrf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpotrf2_base NVPL_LAPACK_GLOBAL(dpotrf2,DPOTRF2)
void NVPL_LAPACK_dpotrf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpotrf2(...) NVPL_LAPACK_dpotrf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpotrf2(...) NVPL_LAPACK_dpotrf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spotrf2_base NVPL_LAPACK_GLOBAL(spotrf2,SPOTRF2)
void NVPL_LAPACK_spotrf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spotrf2(...) NVPL_LAPACK_spotrf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spotrf2(...) NVPL_LAPACK_spotrf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpotrf2_base NVPL_LAPACK_GLOBAL(zpotrf2,ZPOTRF2)
void NVPL_LAPACK_zpotrf2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpotrf2(...) NVPL_LAPACK_zpotrf2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpotrf2(...) NVPL_LAPACK_zpotrf2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpotri_base NVPL_LAPACK_GLOBAL(cpotri,CPOTRI)
void NVPL_LAPACK_cpotri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpotri(...) NVPL_LAPACK_cpotri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpotri(...) NVPL_LAPACK_cpotri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpotri_base NVPL_LAPACK_GLOBAL(dpotri,DPOTRI)
void NVPL_LAPACK_dpotri_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpotri(...) NVPL_LAPACK_dpotri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpotri(...) NVPL_LAPACK_dpotri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spotri_base NVPL_LAPACK_GLOBAL(spotri,SPOTRI)
void NVPL_LAPACK_spotri_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spotri(...) NVPL_LAPACK_spotri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spotri(...) NVPL_LAPACK_spotri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpotri_base NVPL_LAPACK_GLOBAL(zpotri,ZPOTRI)
void NVPL_LAPACK_zpotri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpotri(...) NVPL_LAPACK_zpotri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpotri(...) NVPL_LAPACK_zpotri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpotrs_base NVPL_LAPACK_GLOBAL(cpotrs,CPOTRS)
void NVPL_LAPACK_cpotrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpotrs(...) NVPL_LAPACK_cpotrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpotrs(...) NVPL_LAPACK_cpotrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpotrs_base NVPL_LAPACK_GLOBAL(dpotrs,DPOTRS)
void NVPL_LAPACK_dpotrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpotrs(...) NVPL_LAPACK_dpotrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpotrs(...) NVPL_LAPACK_dpotrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spotrs_base NVPL_LAPACK_GLOBAL(spotrs,SPOTRS)
void NVPL_LAPACK_spotrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spotrs(...) NVPL_LAPACK_spotrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spotrs(...) NVPL_LAPACK_spotrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpotrs_base NVPL_LAPACK_GLOBAL(zpotrs,ZPOTRS)
void NVPL_LAPACK_zpotrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpotrs(...) NVPL_LAPACK_zpotrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpotrs(...) NVPL_LAPACK_zpotrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cppcon_base NVPL_LAPACK_GLOBAL(cppcon,CPPCON)
void NVPL_LAPACK_cppcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cppcon(...) NVPL_LAPACK_cppcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cppcon(...) NVPL_LAPACK_cppcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dppcon_base NVPL_LAPACK_GLOBAL(dppcon,DPPCON)
void NVPL_LAPACK_dppcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* AP,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dppcon(...) NVPL_LAPACK_dppcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dppcon(...) NVPL_LAPACK_dppcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sppcon_base NVPL_LAPACK_GLOBAL(sppcon,SPPCON)
void NVPL_LAPACK_sppcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* AP,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sppcon(...) NVPL_LAPACK_sppcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sppcon(...) NVPL_LAPACK_sppcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zppcon_base NVPL_LAPACK_GLOBAL(zppcon,ZPPCON)
void NVPL_LAPACK_zppcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zppcon(...) NVPL_LAPACK_zppcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zppcon(...) NVPL_LAPACK_zppcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cppequ_base NVPL_LAPACK_GLOBAL(cppequ,CPPEQU)
void NVPL_LAPACK_cppequ_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cppequ(...) NVPL_LAPACK_cppequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cppequ(...) NVPL_LAPACK_cppequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dppequ_base NVPL_LAPACK_GLOBAL(dppequ,DPPEQU)
void NVPL_LAPACK_dppequ_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* AP,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dppequ(...) NVPL_LAPACK_dppequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dppequ(...) NVPL_LAPACK_dppequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sppequ_base NVPL_LAPACK_GLOBAL(sppequ,SPPEQU)
void NVPL_LAPACK_sppequ_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* AP,
    float* S,
    float* scond,
    float* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sppequ(...) NVPL_LAPACK_sppequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sppequ(...) NVPL_LAPACK_sppequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zppequ_base NVPL_LAPACK_GLOBAL(zppequ,ZPPEQU)
void NVPL_LAPACK_zppequ_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    double* S,
    double* scond,
    double* amax,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zppequ(...) NVPL_LAPACK_zppequ_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zppequ(...) NVPL_LAPACK_zppequ_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpprfs_base NVPL_LAPACK_GLOBAL(cpprfs,CPPRFS)
void NVPL_LAPACK_cpprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t const* AFP,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpprfs(...) NVPL_LAPACK_cpprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpprfs(...) NVPL_LAPACK_cpprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpprfs_base NVPL_LAPACK_GLOBAL(dpprfs,DPPRFS)
void NVPL_LAPACK_dpprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP,
    double const* AFP,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpprfs(...) NVPL_LAPACK_dpprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpprfs(...) NVPL_LAPACK_dpprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spprfs_base NVPL_LAPACK_GLOBAL(spprfs,SPPRFS)
void NVPL_LAPACK_spprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP,
    float const* AFP,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spprfs(...) NVPL_LAPACK_spprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spprfs(...) NVPL_LAPACK_spprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpprfs_base NVPL_LAPACK_GLOBAL(zpprfs,ZPPRFS)
void NVPL_LAPACK_zpprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t const* AFP,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpprfs(...) NVPL_LAPACK_zpprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpprfs(...) NVPL_LAPACK_zpprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cppsv_base NVPL_LAPACK_GLOBAL(cppsv,CPPSV)
void NVPL_LAPACK_cppsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AP,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cppsv(...) NVPL_LAPACK_cppsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cppsv(...) NVPL_LAPACK_cppsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dppsv_base NVPL_LAPACK_GLOBAL(dppsv,DPPSV)
void NVPL_LAPACK_dppsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* AP,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dppsv(...) NVPL_LAPACK_dppsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dppsv(...) NVPL_LAPACK_dppsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sppsv_base NVPL_LAPACK_GLOBAL(sppsv,SPPSV)
void NVPL_LAPACK_sppsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* AP,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sppsv(...) NVPL_LAPACK_sppsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sppsv(...) NVPL_LAPACK_sppsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zppsv_base NVPL_LAPACK_GLOBAL(zppsv,ZPPSV)
void NVPL_LAPACK_zppsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AP,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zppsv(...) NVPL_LAPACK_zppsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zppsv(...) NVPL_LAPACK_zppsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cppsvx_base NVPL_LAPACK_GLOBAL(cppsvx,CPPSVX)
void NVPL_LAPACK_cppsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AP,
    nvpl_scomplex_t* AFP, char* equed,
    float* S,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cppsvx(...) NVPL_LAPACK_cppsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cppsvx(...) NVPL_LAPACK_cppsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dppsvx_base NVPL_LAPACK_GLOBAL(dppsvx,DPPSVX)
void NVPL_LAPACK_dppsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* AP,
    double* AFP, char* equed,
    double* S,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dppsvx(...) NVPL_LAPACK_dppsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dppsvx(...) NVPL_LAPACK_dppsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sppsvx_base NVPL_LAPACK_GLOBAL(sppsvx,SPPSVX)
void NVPL_LAPACK_sppsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* AP,
    float* AFP, char* equed,
    float* S,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sppsvx(...) NVPL_LAPACK_sppsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sppsvx(...) NVPL_LAPACK_sppsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zppsvx_base NVPL_LAPACK_GLOBAL(zppsvx,ZPPSVX)
void NVPL_LAPACK_zppsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AP,
    nvpl_dcomplex_t* AFP, char* equed,
    double* S,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zppsvx(...) NVPL_LAPACK_zppsvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zppsvx(...) NVPL_LAPACK_zppsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpptrf_base NVPL_LAPACK_GLOBAL(cpptrf,CPPTRF)
void NVPL_LAPACK_cpptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpptrf(...) NVPL_LAPACK_cpptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpptrf(...) NVPL_LAPACK_cpptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpptrf_base NVPL_LAPACK_GLOBAL(dpptrf,DPPTRF)
void NVPL_LAPACK_dpptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpptrf(...) NVPL_LAPACK_dpptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpptrf(...) NVPL_LAPACK_dpptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spptrf_base NVPL_LAPACK_GLOBAL(spptrf,SPPTRF)
void NVPL_LAPACK_spptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spptrf(...) NVPL_LAPACK_spptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spptrf(...) NVPL_LAPACK_spptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpptrf_base NVPL_LAPACK_GLOBAL(zpptrf,ZPPTRF)
void NVPL_LAPACK_zpptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpptrf(...) NVPL_LAPACK_zpptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpptrf(...) NVPL_LAPACK_zpptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpptri_base NVPL_LAPACK_GLOBAL(cpptri,CPPTRI)
void NVPL_LAPACK_cpptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpptri(...) NVPL_LAPACK_cpptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpptri(...) NVPL_LAPACK_cpptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpptri_base NVPL_LAPACK_GLOBAL(dpptri,DPPTRI)
void NVPL_LAPACK_dpptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpptri(...) NVPL_LAPACK_dpptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpptri(...) NVPL_LAPACK_dpptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spptri_base NVPL_LAPACK_GLOBAL(spptri,SPPTRI)
void NVPL_LAPACK_spptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spptri(...) NVPL_LAPACK_spptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spptri(...) NVPL_LAPACK_spptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpptri_base NVPL_LAPACK_GLOBAL(zpptri,ZPPTRI)
void NVPL_LAPACK_zpptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpptri(...) NVPL_LAPACK_zpptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpptri(...) NVPL_LAPACK_zpptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpptrs_base NVPL_LAPACK_GLOBAL(cpptrs,CPPTRS)
void NVPL_LAPACK_cpptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpptrs(...) NVPL_LAPACK_cpptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpptrs(...) NVPL_LAPACK_cpptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpptrs_base NVPL_LAPACK_GLOBAL(dpptrs,DPPTRS)
void NVPL_LAPACK_dpptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpptrs(...) NVPL_LAPACK_dpptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpptrs(...) NVPL_LAPACK_dpptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spptrs_base NVPL_LAPACK_GLOBAL(spptrs,SPPTRS)
void NVPL_LAPACK_spptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spptrs(...) NVPL_LAPACK_spptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spptrs(...) NVPL_LAPACK_spptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpptrs_base NVPL_LAPACK_GLOBAL(zpptrs,ZPPTRS)
void NVPL_LAPACK_zpptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpptrs(...) NVPL_LAPACK_zpptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpptrs(...) NVPL_LAPACK_zpptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpstrf_base NVPL_LAPACK_GLOBAL(cpstrf,CPSTRF)
void NVPL_LAPACK_cpstrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* piv, nvpl_int_t* rank,
    float const* tol,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpstrf(...) NVPL_LAPACK_cpstrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpstrf(...) NVPL_LAPACK_cpstrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpstrf_base NVPL_LAPACK_GLOBAL(dpstrf,DPSTRF)
void NVPL_LAPACK_dpstrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* piv, nvpl_int_t* rank,
    double const* tol,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpstrf(...) NVPL_LAPACK_dpstrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpstrf(...) NVPL_LAPACK_dpstrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spstrf_base NVPL_LAPACK_GLOBAL(spstrf,SPSTRF)
void NVPL_LAPACK_spstrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* piv, nvpl_int_t* rank,
    float const* tol,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spstrf(...) NVPL_LAPACK_spstrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spstrf(...) NVPL_LAPACK_spstrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpstrf_base NVPL_LAPACK_GLOBAL(zpstrf,ZPSTRF)
void NVPL_LAPACK_zpstrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* piv, nvpl_int_t* rank,
    double const* tol,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpstrf(...) NVPL_LAPACK_zpstrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpstrf(...) NVPL_LAPACK_zpstrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cptcon NVPL_LAPACK_GLOBAL(cptcon,CPTCON)
void NVPL_LAPACK_cptcon(
    nvpl_int_t const* n,
    float const* D,
    nvpl_scomplex_t const* E,
    float const* anorm,
    float* rcond,
    float* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dptcon NVPL_LAPACK_GLOBAL(dptcon,DPTCON)
void NVPL_LAPACK_dptcon(
    nvpl_int_t const* n,
    double const* D,
    double const* E,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sptcon NVPL_LAPACK_GLOBAL(sptcon,SPTCON)
void NVPL_LAPACK_sptcon(
    nvpl_int_t const* n,
    float const* D,
    float const* E,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zptcon NVPL_LAPACK_GLOBAL(zptcon,ZPTCON)
void NVPL_LAPACK_zptcon(
    nvpl_int_t const* n,
    double const* D,
    nvpl_dcomplex_t const* E,
    double const* anorm,
    double* rcond,
    double* rwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cpteqr_base NVPL_LAPACK_GLOBAL(cpteqr,CPTEQR)
void NVPL_LAPACK_cpteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpteqr(...) NVPL_LAPACK_cpteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpteqr(...) NVPL_LAPACK_cpteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpteqr_base NVPL_LAPACK_GLOBAL(dpteqr,DPTEQR)
void NVPL_LAPACK_dpteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dpteqr(...) NVPL_LAPACK_dpteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dpteqr(...) NVPL_LAPACK_dpteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_spteqr_base NVPL_LAPACK_GLOBAL(spteqr,SPTEQR)
void NVPL_LAPACK_spteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_spteqr(...) NVPL_LAPACK_spteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_spteqr(...) NVPL_LAPACK_spteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zpteqr_base NVPL_LAPACK_GLOBAL(zpteqr,ZPTEQR)
void NVPL_LAPACK_zpteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpteqr(...) NVPL_LAPACK_zpteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpteqr(...) NVPL_LAPACK_zpteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cptrfs_base NVPL_LAPACK_GLOBAL(cptrfs,CPTRFS)
void NVPL_LAPACK_cptrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* D,
    nvpl_scomplex_t const* E,
    float const* DF,
    nvpl_scomplex_t const* EF,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cptrfs(...) NVPL_LAPACK_cptrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cptrfs(...) NVPL_LAPACK_cptrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dptrfs NVPL_LAPACK_GLOBAL(dptrfs,DPTRFS)
void NVPL_LAPACK_dptrfs(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* D,
    double const* E,
    double const* DF,
    double const* EF,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sptrfs NVPL_LAPACK_GLOBAL(sptrfs,SPTRFS)
void NVPL_LAPACK_sptrfs(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* D,
    float const* E,
    float const* DF,
    float const* EF,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zptrfs_base NVPL_LAPACK_GLOBAL(zptrfs,ZPTRFS)
void NVPL_LAPACK_zptrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* D,
    nvpl_dcomplex_t const* E,
    double const* DF,
    nvpl_dcomplex_t const* EF,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zptrfs(...) NVPL_LAPACK_zptrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zptrfs(...) NVPL_LAPACK_zptrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cptsv NVPL_LAPACK_GLOBAL(cptsv,CPTSV)
void NVPL_LAPACK_cptsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* D,
    nvpl_scomplex_t* E,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dptsv NVPL_LAPACK_GLOBAL(dptsv,DPTSV)
void NVPL_LAPACK_dptsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* D,
    double* E,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sptsv NVPL_LAPACK_GLOBAL(sptsv,SPTSV)
void NVPL_LAPACK_sptsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* D,
    float* E,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zptsv NVPL_LAPACK_GLOBAL(zptsv,ZPTSV)
void NVPL_LAPACK_zptsv(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* D,
    nvpl_dcomplex_t* E,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cptsvx_base NVPL_LAPACK_GLOBAL(cptsvx,CPTSVX)
void NVPL_LAPACK_cptsvx_base(
    char const* fact,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* D,
    nvpl_scomplex_t const* E,
    float* DF,
    nvpl_scomplex_t* EF,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cptsvx(...) NVPL_LAPACK_cptsvx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cptsvx(...) NVPL_LAPACK_cptsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dptsvx_base NVPL_LAPACK_GLOBAL(dptsvx,DPTSVX)
void NVPL_LAPACK_dptsvx_base(
    char const* fact,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* D,
    double const* E,
    double* DF,
    double* EF,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dptsvx(...) NVPL_LAPACK_dptsvx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dptsvx(...) NVPL_LAPACK_dptsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sptsvx_base NVPL_LAPACK_GLOBAL(sptsvx,SPTSVX)
void NVPL_LAPACK_sptsvx_base(
    char const* fact,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* D,
    float const* E,
    float* DF,
    float* EF,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sptsvx(...) NVPL_LAPACK_sptsvx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sptsvx(...) NVPL_LAPACK_sptsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zptsvx_base NVPL_LAPACK_GLOBAL(zptsvx,ZPTSVX)
void NVPL_LAPACK_zptsvx_base(
    char const* fact,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* D,
    nvpl_dcomplex_t const* E,
    double* DF,
    nvpl_dcomplex_t* EF,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zptsvx(...) NVPL_LAPACK_zptsvx_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zptsvx(...) NVPL_LAPACK_zptsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cpttrf NVPL_LAPACK_GLOBAL(cpttrf,CPTTRF)
void NVPL_LAPACK_cpttrf(
    nvpl_int_t const* n,
    float* D,
    nvpl_scomplex_t* E,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dpttrf NVPL_LAPACK_GLOBAL(dpttrf,DPTTRF)
void NVPL_LAPACK_dpttrf(
    nvpl_int_t const* n,
    double* D,
    double* E,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_spttrf NVPL_LAPACK_GLOBAL(spttrf,SPTTRF)
void NVPL_LAPACK_spttrf(
    nvpl_int_t const* n,
    float* D,
    float* E,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zpttrf NVPL_LAPACK_GLOBAL(zpttrf,ZPTTRF)
void NVPL_LAPACK_zpttrf(
    nvpl_int_t const* n,
    double* D,
    nvpl_dcomplex_t* E,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cpttrs_base NVPL_LAPACK_GLOBAL(cpttrs,CPTTRS)
void NVPL_LAPACK_cpttrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* D,
    nvpl_scomplex_t const* E,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cpttrs(...) NVPL_LAPACK_cpttrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cpttrs(...) NVPL_LAPACK_cpttrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dpttrs NVPL_LAPACK_GLOBAL(dpttrs,DPTTRS)
void NVPL_LAPACK_dpttrs(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* D,
    double const* E,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_spttrs NVPL_LAPACK_GLOBAL(spttrs,SPTTRS)
void NVPL_LAPACK_spttrs(
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* D,
    float const* E,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zpttrs_base NVPL_LAPACK_GLOBAL(zpttrs,ZPTTRS)
void NVPL_LAPACK_zpttrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* D,
    nvpl_dcomplex_t const* E,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zpttrs(...) NVPL_LAPACK_zpttrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zpttrs(...) NVPL_LAPACK_zpttrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbev_base NVPL_LAPACK_GLOBAL(dsbev,DSBEV)
void NVPL_LAPACK_dsbev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbev(...) NVPL_LAPACK_dsbev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbev(...) NVPL_LAPACK_dsbev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbev_base NVPL_LAPACK_GLOBAL(ssbev,SSBEV)
void NVPL_LAPACK_ssbev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbev(...) NVPL_LAPACK_ssbev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbev(...) NVPL_LAPACK_ssbev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbev_2stage_base NVPL_LAPACK_GLOBAL(dsbev_2stage,DSBEV_2STAGE)
void NVPL_LAPACK_dsbev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbev_2stage(...) NVPL_LAPACK_dsbev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbev_2stage(...) NVPL_LAPACK_dsbev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbev_2stage_base NVPL_LAPACK_GLOBAL(ssbev_2stage,SSBEV_2STAGE)
void NVPL_LAPACK_ssbev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbev_2stage(...) NVPL_LAPACK_ssbev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbev_2stage(...) NVPL_LAPACK_ssbev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbevd_base NVPL_LAPACK_GLOBAL(dsbevd,DSBEVD)
void NVPL_LAPACK_dsbevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbevd(...) NVPL_LAPACK_dsbevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbevd(...) NVPL_LAPACK_dsbevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbevd_base NVPL_LAPACK_GLOBAL(ssbevd,SSBEVD)
void NVPL_LAPACK_ssbevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbevd(...) NVPL_LAPACK_ssbevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbevd(...) NVPL_LAPACK_ssbevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbevd_2stage_base NVPL_LAPACK_GLOBAL(dsbevd_2stage,DSBEVD_2STAGE)
void NVPL_LAPACK_dsbevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbevd_2stage(...) NVPL_LAPACK_dsbevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbevd_2stage(...) NVPL_LAPACK_dsbevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbevd_2stage_base NVPL_LAPACK_GLOBAL(ssbevd_2stage,SSBEVD_2STAGE)
void NVPL_LAPACK_ssbevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbevd_2stage(...) NVPL_LAPACK_ssbevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbevd_2stage(...) NVPL_LAPACK_ssbevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbevx_base NVPL_LAPACK_GLOBAL(dsbevx,DSBEVX)
void NVPL_LAPACK_dsbevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* Q, nvpl_int_t const* ldq,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbevx(...) NVPL_LAPACK_dsbevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsbevx(...) NVPL_LAPACK_dsbevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbevx_base NVPL_LAPACK_GLOBAL(ssbevx,SSBEVX)
void NVPL_LAPACK_ssbevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* Q, nvpl_int_t const* ldq,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbevx(...) NVPL_LAPACK_ssbevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssbevx(...) NVPL_LAPACK_ssbevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbevx_2stage_base NVPL_LAPACK_GLOBAL(dsbevx_2stage,DSBEVX_2STAGE)
void NVPL_LAPACK_dsbevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* Q, nvpl_int_t const* ldq,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbevx_2stage(...) NVPL_LAPACK_dsbevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsbevx_2stage(...) NVPL_LAPACK_dsbevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbevx_2stage_base NVPL_LAPACK_GLOBAL(ssbevx_2stage,SSBEVX_2STAGE)
void NVPL_LAPACK_ssbevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* Q, nvpl_int_t const* ldq,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbevx_2stage(...) NVPL_LAPACK_ssbevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssbevx_2stage(...) NVPL_LAPACK_ssbevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbgst_base NVPL_LAPACK_GLOBAL(dsbgst,DSBGST)
void NVPL_LAPACK_dsbgst_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    double* AB, nvpl_int_t const* ldab,
    double const* BB, nvpl_int_t const* ldbb,
    double* X, nvpl_int_t const* ldx,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbgst(...) NVPL_LAPACK_dsbgst_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbgst(...) NVPL_LAPACK_dsbgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbgst_base NVPL_LAPACK_GLOBAL(ssbgst,SSBGST)
void NVPL_LAPACK_ssbgst_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    float* AB, nvpl_int_t const* ldab,
    float const* BB, nvpl_int_t const* ldbb,
    float* X, nvpl_int_t const* ldx,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbgst(...) NVPL_LAPACK_ssbgst_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbgst(...) NVPL_LAPACK_ssbgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbgv_base NVPL_LAPACK_GLOBAL(dsbgv,DSBGV)
void NVPL_LAPACK_dsbgv_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    double* AB, nvpl_int_t const* ldab,
    double* BB, nvpl_int_t const* ldbb,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbgv(...) NVPL_LAPACK_dsbgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbgv(...) NVPL_LAPACK_dsbgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbgv_base NVPL_LAPACK_GLOBAL(ssbgv,SSBGV)
void NVPL_LAPACK_ssbgv_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    float* AB, nvpl_int_t const* ldab,
    float* BB, nvpl_int_t const* ldbb,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbgv(...) NVPL_LAPACK_ssbgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbgv(...) NVPL_LAPACK_ssbgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbgvd_base NVPL_LAPACK_GLOBAL(dsbgvd,DSBGVD)
void NVPL_LAPACK_dsbgvd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    double* AB, nvpl_int_t const* ldab,
    double* BB, nvpl_int_t const* ldbb,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbgvd(...) NVPL_LAPACK_dsbgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbgvd(...) NVPL_LAPACK_dsbgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbgvd_base NVPL_LAPACK_GLOBAL(ssbgvd,SSBGVD)
void NVPL_LAPACK_ssbgvd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    float* AB, nvpl_int_t const* ldab,
    float* BB, nvpl_int_t const* ldbb,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbgvd(...) NVPL_LAPACK_ssbgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbgvd(...) NVPL_LAPACK_ssbgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbgvx_base NVPL_LAPACK_GLOBAL(dsbgvx,DSBGVX)
void NVPL_LAPACK_dsbgvx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    double* AB, nvpl_int_t const* ldab,
    double* BB, nvpl_int_t const* ldbb,
    double* Q, nvpl_int_t const* ldq,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbgvx(...) NVPL_LAPACK_dsbgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsbgvx(...) NVPL_LAPACK_dsbgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbgvx_base NVPL_LAPACK_GLOBAL(ssbgvx,SSBGVX)
void NVPL_LAPACK_ssbgvx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* ka, nvpl_int_t const* kb,
    float* AB, nvpl_int_t const* ldab,
    float* BB, nvpl_int_t const* ldbb,
    float* Q, nvpl_int_t const* ldq,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbgvx(...) NVPL_LAPACK_ssbgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssbgvx(...) NVPL_LAPACK_ssbgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsbtrd_base NVPL_LAPACK_GLOBAL(dsbtrd,DSBTRD)
void NVPL_LAPACK_dsbtrd_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double* AB, nvpl_int_t const* ldab,
    double* D,
    double* E,
    double* Q, nvpl_int_t const* ldq,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsbtrd(...) NVPL_LAPACK_dsbtrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsbtrd(...) NVPL_LAPACK_dsbtrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssbtrd_base NVPL_LAPACK_GLOBAL(ssbtrd,SSBTRD)
void NVPL_LAPACK_ssbtrd_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float* AB, nvpl_int_t const* ldab,
    float* D,
    float* E,
    float* Q, nvpl_int_t const* ldq,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssbtrd(...) NVPL_LAPACK_ssbtrd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssbtrd(...) NVPL_LAPACK_ssbtrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsfrk_base NVPL_LAPACK_GLOBAL(dsfrk,DSFRK)
void NVPL_LAPACK_dsfrk_base(
    char const* transr, char const* uplo, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* k,
    double const* alpha,
    double const* A, nvpl_int_t const* lda,
    double const* beta,
    double* C
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsfrk(...) NVPL_LAPACK_dsfrk_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsfrk(...) NVPL_LAPACK_dsfrk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssfrk_base NVPL_LAPACK_GLOBAL(ssfrk,SSFRK)
void NVPL_LAPACK_ssfrk_base(
    char const* transr, char const* uplo, char const* trans,
    nvpl_int_t const* n, nvpl_int_t const* k,
    float const* alpha,
    float const* A, nvpl_int_t const* lda,
    float const* beta,
    float* C
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssfrk(...) NVPL_LAPACK_ssfrk_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssfrk(...) NVPL_LAPACK_ssfrk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cspcon_base NVPL_LAPACK_GLOBAL(cspcon,CSPCON)
void NVPL_LAPACK_cspcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cspcon(...) NVPL_LAPACK_cspcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cspcon(...) NVPL_LAPACK_cspcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspcon_base NVPL_LAPACK_GLOBAL(dspcon,DSPCON)
void NVPL_LAPACK_dspcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* AP, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspcon(...) NVPL_LAPACK_dspcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dspcon(...) NVPL_LAPACK_dspcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspcon_base NVPL_LAPACK_GLOBAL(sspcon,SSPCON)
void NVPL_LAPACK_sspcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* AP, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspcon(...) NVPL_LAPACK_sspcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sspcon(...) NVPL_LAPACK_sspcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zspcon_base NVPL_LAPACK_GLOBAL(zspcon,ZSPCON)
void NVPL_LAPACK_zspcon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zspcon(...) NVPL_LAPACK_zspcon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zspcon(...) NVPL_LAPACK_zspcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspev_base NVPL_LAPACK_GLOBAL(dspev,DSPEV)
void NVPL_LAPACK_dspev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspev(...) NVPL_LAPACK_dspev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dspev(...) NVPL_LAPACK_dspev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspev_base NVPL_LAPACK_GLOBAL(sspev,SSPEV)
void NVPL_LAPACK_sspev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspev(...) NVPL_LAPACK_sspev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sspev(...) NVPL_LAPACK_sspev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspevd_base NVPL_LAPACK_GLOBAL(dspevd,DSPEVD)
void NVPL_LAPACK_dspevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspevd(...) NVPL_LAPACK_dspevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dspevd(...) NVPL_LAPACK_dspevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspevd_base NVPL_LAPACK_GLOBAL(sspevd,SSPEVD)
void NVPL_LAPACK_sspevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspevd(...) NVPL_LAPACK_sspevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sspevd(...) NVPL_LAPACK_sspevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspevx_base NVPL_LAPACK_GLOBAL(dspevx,DSPEVX)
void NVPL_LAPACK_dspevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspevx(...) NVPL_LAPACK_dspevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dspevx(...) NVPL_LAPACK_dspevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspevx_base NVPL_LAPACK_GLOBAL(sspevx,SSPEVX)
void NVPL_LAPACK_sspevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspevx(...) NVPL_LAPACK_sspevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sspevx(...) NVPL_LAPACK_sspevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspgst_base NVPL_LAPACK_GLOBAL(dspgst,DSPGST)
void NVPL_LAPACK_dspgst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double const* BP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspgst(...) NVPL_LAPACK_dspgst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dspgst(...) NVPL_LAPACK_dspgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspgst_base NVPL_LAPACK_GLOBAL(sspgst,SSPGST)
void NVPL_LAPACK_sspgst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float const* BP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspgst(...) NVPL_LAPACK_sspgst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sspgst(...) NVPL_LAPACK_sspgst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspgv_base NVPL_LAPACK_GLOBAL(dspgv,DSPGV)
void NVPL_LAPACK_dspgv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double* BP,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspgv(...) NVPL_LAPACK_dspgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dspgv(...) NVPL_LAPACK_dspgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspgv_base NVPL_LAPACK_GLOBAL(sspgv,SSPGV)
void NVPL_LAPACK_sspgv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float* BP,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspgv(...) NVPL_LAPACK_sspgv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sspgv(...) NVPL_LAPACK_sspgv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspgvd_base NVPL_LAPACK_GLOBAL(dspgvd,DSPGVD)
void NVPL_LAPACK_dspgvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double* BP,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspgvd(...) NVPL_LAPACK_dspgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dspgvd(...) NVPL_LAPACK_dspgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspgvd_base NVPL_LAPACK_GLOBAL(sspgvd,SSPGVD)
void NVPL_LAPACK_sspgvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float* BP,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspgvd(...) NVPL_LAPACK_sspgvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sspgvd(...) NVPL_LAPACK_sspgvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspgvx_base NVPL_LAPACK_GLOBAL(dspgvx,DSPGVX)
void NVPL_LAPACK_dspgvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double* BP,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspgvx(...) NVPL_LAPACK_dspgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dspgvx(...) NVPL_LAPACK_dspgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspgvx_base NVPL_LAPACK_GLOBAL(sspgvx,SSPGVX)
void NVPL_LAPACK_sspgvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float* BP,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspgvx(...) NVPL_LAPACK_sspgvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_sspgvx(...) NVPL_LAPACK_sspgvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csprfs_base NVPL_LAPACK_GLOBAL(csprfs,CSPRFS)
void NVPL_LAPACK_csprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t const* AFP, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csprfs(...) NVPL_LAPACK_csprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csprfs(...) NVPL_LAPACK_csprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsprfs_base NVPL_LAPACK_GLOBAL(dsprfs,DSPRFS)
void NVPL_LAPACK_dsprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP,
    double const* AFP, nvpl_int_t const* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsprfs(...) NVPL_LAPACK_dsprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsprfs(...) NVPL_LAPACK_dsprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssprfs_base NVPL_LAPACK_GLOBAL(ssprfs,SSPRFS)
void NVPL_LAPACK_ssprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP,
    float const* AFP, nvpl_int_t const* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssprfs(...) NVPL_LAPACK_ssprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssprfs(...) NVPL_LAPACK_ssprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsprfs_base NVPL_LAPACK_GLOBAL(zsprfs,ZSPRFS)
void NVPL_LAPACK_zsprfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t const* AFP, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsprfs(...) NVPL_LAPACK_zsprfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsprfs(...) NVPL_LAPACK_zsprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cspsv_base NVPL_LAPACK_GLOBAL(cspsv,CSPSV)
void NVPL_LAPACK_cspsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cspsv(...) NVPL_LAPACK_cspsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cspsv(...) NVPL_LAPACK_cspsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspsv_base NVPL_LAPACK_GLOBAL(dspsv,DSPSV)
void NVPL_LAPACK_dspsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* AP, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspsv(...) NVPL_LAPACK_dspsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dspsv(...) NVPL_LAPACK_dspsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspsv_base NVPL_LAPACK_GLOBAL(sspsv,SSPSV)
void NVPL_LAPACK_sspsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* AP, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspsv(...) NVPL_LAPACK_sspsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sspsv(...) NVPL_LAPACK_sspsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zspsv_base NVPL_LAPACK_GLOBAL(zspsv,ZSPSV)
void NVPL_LAPACK_zspsv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zspsv(...) NVPL_LAPACK_zspsv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zspsv(...) NVPL_LAPACK_zspsv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cspsvx_base NVPL_LAPACK_GLOBAL(cspsvx,CSPSVX)
void NVPL_LAPACK_cspsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t* AFP, nvpl_int_t* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cspsvx(...) NVPL_LAPACK_cspsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cspsvx(...) NVPL_LAPACK_cspsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dspsvx_base NVPL_LAPACK_GLOBAL(dspsvx,DSPSVX)
void NVPL_LAPACK_dspsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP,
    double* AFP, nvpl_int_t* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dspsvx(...) NVPL_LAPACK_dspsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dspsvx(...) NVPL_LAPACK_dspsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sspsvx_base NVPL_LAPACK_GLOBAL(sspsvx,SSPSVX)
void NVPL_LAPACK_sspsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP,
    float* AFP, nvpl_int_t* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sspsvx(...) NVPL_LAPACK_sspsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sspsvx(...) NVPL_LAPACK_sspsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zspsvx_base NVPL_LAPACK_GLOBAL(zspsvx,ZSPSVX)
void NVPL_LAPACK_zspsvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t* AFP, nvpl_int_t* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zspsvx(...) NVPL_LAPACK_zspsvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zspsvx(...) NVPL_LAPACK_zspsvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsptrd_base NVPL_LAPACK_GLOBAL(dsptrd,DSPTRD)
void NVPL_LAPACK_dsptrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* AP,
    double* D,
    double* E,
    double* tau,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsptrd(...) NVPL_LAPACK_dsptrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsptrd(...) NVPL_LAPACK_dsptrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssptrd_base NVPL_LAPACK_GLOBAL(ssptrd,SSPTRD)
void NVPL_LAPACK_ssptrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* AP,
    float* D,
    float* E,
    float* tau,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssptrd(...) NVPL_LAPACK_ssptrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssptrd(...) NVPL_LAPACK_ssptrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csptrf_base NVPL_LAPACK_GLOBAL(csptrf,CSPTRF)
void NVPL_LAPACK_csptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csptrf(...) NVPL_LAPACK_csptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csptrf(...) NVPL_LAPACK_csptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsptrf_base NVPL_LAPACK_GLOBAL(dsptrf,DSPTRF)
void NVPL_LAPACK_dsptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* AP, nvpl_int_t* ipiv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsptrf(...) NVPL_LAPACK_dsptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsptrf(...) NVPL_LAPACK_dsptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssptrf_base NVPL_LAPACK_GLOBAL(ssptrf,SSPTRF)
void NVPL_LAPACK_ssptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* AP, nvpl_int_t* ipiv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssptrf(...) NVPL_LAPACK_ssptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssptrf(...) NVPL_LAPACK_ssptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsptrf_base NVPL_LAPACK_GLOBAL(zsptrf,ZSPTRF)
void NVPL_LAPACK_zsptrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP, nvpl_int_t* ipiv,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsptrf(...) NVPL_LAPACK_zsptrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsptrf(...) NVPL_LAPACK_zsptrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csptri_base NVPL_LAPACK_GLOBAL(csptri,CSPTRI)
void NVPL_LAPACK_csptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csptri(...) NVPL_LAPACK_csptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csptri(...) NVPL_LAPACK_csptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsptri_base NVPL_LAPACK_GLOBAL(dsptri,DSPTRI)
void NVPL_LAPACK_dsptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* AP, nvpl_int_t const* ipiv,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsptri(...) NVPL_LAPACK_dsptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsptri(...) NVPL_LAPACK_dsptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssptri_base NVPL_LAPACK_GLOBAL(ssptri,SSPTRI)
void NVPL_LAPACK_ssptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* AP, nvpl_int_t const* ipiv,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssptri(...) NVPL_LAPACK_ssptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssptri(...) NVPL_LAPACK_ssptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsptri_base NVPL_LAPACK_GLOBAL(zsptri,ZSPTRI)
void NVPL_LAPACK_zsptri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsptri(...) NVPL_LAPACK_zsptri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsptri(...) NVPL_LAPACK_zsptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csptrs_base NVPL_LAPACK_GLOBAL(csptrs,CSPTRS)
void NVPL_LAPACK_csptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csptrs(...) NVPL_LAPACK_csptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csptrs(...) NVPL_LAPACK_csptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsptrs_base NVPL_LAPACK_GLOBAL(dsptrs,DSPTRS)
void NVPL_LAPACK_dsptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsptrs(...) NVPL_LAPACK_dsptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsptrs(...) NVPL_LAPACK_dsptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssptrs_base NVPL_LAPACK_GLOBAL(ssptrs,SSPTRS)
void NVPL_LAPACK_ssptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssptrs(...) NVPL_LAPACK_ssptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssptrs(...) NVPL_LAPACK_ssptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsptrs_base NVPL_LAPACK_GLOBAL(zsptrs,ZSPTRS)
void NVPL_LAPACK_zsptrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsptrs(...) NVPL_LAPACK_zsptrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsptrs(...) NVPL_LAPACK_zsptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstebz_base NVPL_LAPACK_GLOBAL(dstebz,DSTEBZ)
void NVPL_LAPACK_dstebz_base(
    char const* range, char const* order,
    nvpl_int_t const* n,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol,
    double const* D,
    double const* E, nvpl_int_t* m, nvpl_int_t* nsplit,
    double* W, nvpl_int_t* IBLOCK, nvpl_int_t* ISPLIT,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstebz(...) NVPL_LAPACK_dstebz_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dstebz(...) NVPL_LAPACK_dstebz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstebz_base NVPL_LAPACK_GLOBAL(sstebz,SSTEBZ)
void NVPL_LAPACK_sstebz_base(
    char const* range, char const* order,
    nvpl_int_t const* n,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol,
    float const* D,
    float const* E, nvpl_int_t* m, nvpl_int_t* nsplit,
    float* W, nvpl_int_t* IBLOCK, nvpl_int_t* ISPLIT,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstebz(...) NVPL_LAPACK_sstebz_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sstebz(...) NVPL_LAPACK_sstebz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cstedc_base NVPL_LAPACK_GLOBAL(cstedc,CSTEDC)
void NVPL_LAPACK_cstedc_base(
    char const* compz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cstedc(...) NVPL_LAPACK_cstedc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cstedc(...) NVPL_LAPACK_cstedc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstedc_base NVPL_LAPACK_GLOBAL(dstedc,DSTEDC)
void NVPL_LAPACK_dstedc_base(
    char const* compz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstedc(...) NVPL_LAPACK_dstedc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dstedc(...) NVPL_LAPACK_dstedc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstedc_base NVPL_LAPACK_GLOBAL(sstedc,SSTEDC)
void NVPL_LAPACK_sstedc_base(
    char const* compz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstedc(...) NVPL_LAPACK_sstedc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sstedc(...) NVPL_LAPACK_sstedc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zstedc_base NVPL_LAPACK_GLOBAL(zstedc,ZSTEDC)
void NVPL_LAPACK_zstedc_base(
    char const* compz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zstedc(...) NVPL_LAPACK_zstedc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zstedc(...) NVPL_LAPACK_zstedc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cstegr_base NVPL_LAPACK_GLOBAL(cstegr,CSTEGR)
void NVPL_LAPACK_cstegr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cstegr(...) NVPL_LAPACK_cstegr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cstegr(...) NVPL_LAPACK_cstegr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstegr_base NVPL_LAPACK_GLOBAL(dstegr,DSTEGR)
void NVPL_LAPACK_dstegr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstegr(...) NVPL_LAPACK_dstegr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dstegr(...) NVPL_LAPACK_dstegr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstegr_base NVPL_LAPACK_GLOBAL(sstegr,SSTEGR)
void NVPL_LAPACK_sstegr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstegr(...) NVPL_LAPACK_sstegr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sstegr(...) NVPL_LAPACK_sstegr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zstegr_base NVPL_LAPACK_GLOBAL(zstegr,ZSTEGR)
void NVPL_LAPACK_zstegr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zstegr(...) NVPL_LAPACK_zstegr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zstegr(...) NVPL_LAPACK_zstegr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cstein NVPL_LAPACK_GLOBAL(cstein,CSTEIN)
void NVPL_LAPACK_cstein(
    nvpl_int_t const* n,
    float const* D,
    float const* E, nvpl_int_t const* m,
    float const* W, nvpl_int_t const* IBLOCK, nvpl_int_t const* ISPLIT,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dstein NVPL_LAPACK_GLOBAL(dstein,DSTEIN)
void NVPL_LAPACK_dstein(
    nvpl_int_t const* n,
    double const* D,
    double const* E, nvpl_int_t const* m,
    double const* W, nvpl_int_t const* IBLOCK, nvpl_int_t const* ISPLIT,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_sstein NVPL_LAPACK_GLOBAL(sstein,SSTEIN)
void NVPL_LAPACK_sstein(
    nvpl_int_t const* n,
    float const* D,
    float const* E, nvpl_int_t const* m,
    float const* W, nvpl_int_t const* IBLOCK, nvpl_int_t const* ISPLIT,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zstein NVPL_LAPACK_GLOBAL(zstein,ZSTEIN)
void NVPL_LAPACK_zstein(
    nvpl_int_t const* n,
    double const* D,
    double const* E, nvpl_int_t const* m,
    double const* W, nvpl_int_t const* IBLOCK, nvpl_int_t const* ISPLIT,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cstemr_base NVPL_LAPACK_GLOBAL(cstemr,CSTEMR)
void NVPL_LAPACK_cstemr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* m,
    float* W,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t const* nzc, nvpl_int_t* ISUPPZ, nvpl_lapack_logical* tryrac,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cstemr(...) NVPL_LAPACK_cstemr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cstemr(...) NVPL_LAPACK_cstemr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstemr_base NVPL_LAPACK_GLOBAL(dstemr,DSTEMR)
void NVPL_LAPACK_dstemr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t const* nzc, nvpl_int_t* ISUPPZ, nvpl_lapack_logical* tryrac,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstemr(...) NVPL_LAPACK_dstemr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dstemr(...) NVPL_LAPACK_dstemr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstemr_base NVPL_LAPACK_GLOBAL(sstemr,SSTEMR)
void NVPL_LAPACK_sstemr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t const* nzc, nvpl_int_t* ISUPPZ, nvpl_lapack_logical* tryrac,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstemr(...) NVPL_LAPACK_sstemr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sstemr(...) NVPL_LAPACK_sstemr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zstemr_base NVPL_LAPACK_GLOBAL(zstemr,ZSTEMR)
void NVPL_LAPACK_zstemr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu, nvpl_int_t* m,
    double* W,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t const* nzc, nvpl_int_t* ISUPPZ, nvpl_lapack_logical* tryrac,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zstemr(...) NVPL_LAPACK_zstemr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zstemr(...) NVPL_LAPACK_zstemr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csteqr_base NVPL_LAPACK_GLOBAL(csteqr,CSTEQR)
void NVPL_LAPACK_csteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csteqr(...) NVPL_LAPACK_csteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csteqr(...) NVPL_LAPACK_csteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsteqr_base NVPL_LAPACK_GLOBAL(dsteqr,DSTEQR)
void NVPL_LAPACK_dsteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsteqr(...) NVPL_LAPACK_dsteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsteqr(...) NVPL_LAPACK_dsteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssteqr_base NVPL_LAPACK_GLOBAL(ssteqr,SSTEQR)
void NVPL_LAPACK_ssteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssteqr(...) NVPL_LAPACK_ssteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssteqr(...) NVPL_LAPACK_ssteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsteqr_base NVPL_LAPACK_GLOBAL(zsteqr,ZSTEQR)
void NVPL_LAPACK_zsteqr_base(
    char const* compz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsteqr(...) NVPL_LAPACK_zsteqr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsteqr(...) NVPL_LAPACK_zsteqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsterf NVPL_LAPACK_GLOBAL(dsterf,DSTERF)
void NVPL_LAPACK_dsterf(
    nvpl_int_t const* n,
    double* D,
    double* E,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ssterf NVPL_LAPACK_GLOBAL(ssterf,SSTERF)
void NVPL_LAPACK_ssterf(
    nvpl_int_t const* n,
    float* D,
    float* E,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dstev_base NVPL_LAPACK_GLOBAL(dstev,DSTEV)
void NVPL_LAPACK_dstev_base(
    char const* jobz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstev(...) NVPL_LAPACK_dstev_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dstev(...) NVPL_LAPACK_dstev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstev_base NVPL_LAPACK_GLOBAL(sstev,SSTEV)
void NVPL_LAPACK_sstev_base(
    char const* jobz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstev(...) NVPL_LAPACK_sstev_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sstev(...) NVPL_LAPACK_sstev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstevd_base NVPL_LAPACK_GLOBAL(dstevd,DSTEVD)
void NVPL_LAPACK_dstevd_base(
    char const* jobz,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstevd(...) NVPL_LAPACK_dstevd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dstevd(...) NVPL_LAPACK_dstevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstevd_base NVPL_LAPACK_GLOBAL(sstevd,SSTEVD)
void NVPL_LAPACK_sstevd_base(
    char const* jobz,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstevd(...) NVPL_LAPACK_sstevd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_sstevd(...) NVPL_LAPACK_sstevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstevr_base NVPL_LAPACK_GLOBAL(dstevr,DSTEVR)
void NVPL_LAPACK_dstevr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstevr(...) NVPL_LAPACK_dstevr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dstevr(...) NVPL_LAPACK_dstevr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstevr_base NVPL_LAPACK_GLOBAL(sstevr,SSTEVR)
void NVPL_LAPACK_sstevr_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstevr(...) NVPL_LAPACK_sstevr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sstevr(...) NVPL_LAPACK_sstevr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dstevx_base NVPL_LAPACK_GLOBAL(dstevx,DSTEVX)
void NVPL_LAPACK_dstevx_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    double* D,
    double* E,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dstevx(...) NVPL_LAPACK_dstevx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dstevx(...) NVPL_LAPACK_dstevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sstevx_base NVPL_LAPACK_GLOBAL(sstevx,SSTEVX)
void NVPL_LAPACK_sstevx_base(
    char const* jobz, char const* range,
    nvpl_int_t const* n,
    float* D,
    float* E,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sstevx(...) NVPL_LAPACK_sstevx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sstevx(...) NVPL_LAPACK_sstevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csycon_base NVPL_LAPACK_GLOBAL(csycon,CSYCON)
void NVPL_LAPACK_csycon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csycon(...) NVPL_LAPACK_csycon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csycon(...) NVPL_LAPACK_csycon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsycon_base NVPL_LAPACK_GLOBAL(dsycon,DSYCON)
void NVPL_LAPACK_dsycon_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsycon(...) NVPL_LAPACK_dsycon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsycon(...) NVPL_LAPACK_dsycon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssycon_base NVPL_LAPACK_GLOBAL(ssycon,SSYCON)
void NVPL_LAPACK_ssycon_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssycon(...) NVPL_LAPACK_ssycon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssycon(...) NVPL_LAPACK_ssycon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsycon_base NVPL_LAPACK_GLOBAL(zsycon,ZSYCON)
void NVPL_LAPACK_zsycon_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsycon(...) NVPL_LAPACK_zsycon_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsycon(...) NVPL_LAPACK_zsycon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csycon_3_base NVPL_LAPACK_GLOBAL(csycon_3,CSYCON_3)
void NVPL_LAPACK_csycon_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* E, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csycon_3(...) NVPL_LAPACK_csycon_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csycon_3(...) NVPL_LAPACK_csycon_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsycon_3_base NVPL_LAPACK_GLOBAL(dsycon_3,DSYCON_3)
void NVPL_LAPACK_dsycon_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* E, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsycon_3(...) NVPL_LAPACK_dsycon_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsycon_3(...) NVPL_LAPACK_dsycon_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssycon_3_base NVPL_LAPACK_GLOBAL(ssycon_3,SSYCON_3)
void NVPL_LAPACK_ssycon_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* E, nvpl_int_t const* ipiv,
    float const* anorm,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssycon_3(...) NVPL_LAPACK_ssycon_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssycon_3(...) NVPL_LAPACK_ssycon_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsycon_3_base NVPL_LAPACK_GLOBAL(zsycon_3,ZSYCON_3)
void NVPL_LAPACK_zsycon_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* E, nvpl_int_t const* ipiv,
    double const* anorm,
    double* rcond,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsycon_3(...) NVPL_LAPACK_zsycon_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsycon_3(...) NVPL_LAPACK_zsycon_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csyconv_base NVPL_LAPACK_GLOBAL(csyconv,CSYCONV)
void NVPL_LAPACK_csyconv_base(
    char const* uplo, char const* way,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* E,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csyconv(...) NVPL_LAPACK_csyconv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_csyconv(...) NVPL_LAPACK_csyconv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyconv_base NVPL_LAPACK_GLOBAL(dsyconv,DSYCONV)
void NVPL_LAPACK_dsyconv_base(
    char const* uplo, char const* way,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* E,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyconv(...) NVPL_LAPACK_dsyconv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsyconv(...) NVPL_LAPACK_dsyconv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyconv_base NVPL_LAPACK_GLOBAL(ssyconv,SSYCONV)
void NVPL_LAPACK_ssyconv_base(
    char const* uplo, char const* way,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* E,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyconv(...) NVPL_LAPACK_ssyconv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssyconv(...) NVPL_LAPACK_ssyconv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsyconv_base NVPL_LAPACK_GLOBAL(zsyconv,ZSYCONV)
void NVPL_LAPACK_zsyconv_base(
    char const* uplo, char const* way,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* E,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsyconv(...) NVPL_LAPACK_zsyconv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zsyconv(...) NVPL_LAPACK_zsyconv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csyequb_base NVPL_LAPACK_GLOBAL(csyequb,CSYEQUB)
void NVPL_LAPACK_csyequb_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csyequb(...) NVPL_LAPACK_csyequb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csyequb(...) NVPL_LAPACK_csyequb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyequb_base NVPL_LAPACK_GLOBAL(dsyequb,DSYEQUB)
void NVPL_LAPACK_dsyequb_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyequb(...) NVPL_LAPACK_dsyequb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsyequb(...) NVPL_LAPACK_dsyequb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyequb_base NVPL_LAPACK_GLOBAL(ssyequb,SSYEQUB)
void NVPL_LAPACK_ssyequb_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* S,
    float* scond,
    float* amax,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyequb(...) NVPL_LAPACK_ssyequb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssyequb(...) NVPL_LAPACK_ssyequb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsyequb_base NVPL_LAPACK_GLOBAL(zsyequb,ZSYEQUB)
void NVPL_LAPACK_zsyequb_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* S,
    double* scond,
    double* amax,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsyequb(...) NVPL_LAPACK_zsyequb_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsyequb(...) NVPL_LAPACK_zsyequb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyev_base NVPL_LAPACK_GLOBAL(dsyev,DSYEV)
void NVPL_LAPACK_dsyev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyev(...) NVPL_LAPACK_dsyev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsyev(...) NVPL_LAPACK_dsyev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyev_base NVPL_LAPACK_GLOBAL(ssyev,SSYEV)
void NVPL_LAPACK_ssyev_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyev(...) NVPL_LAPACK_ssyev_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssyev(...) NVPL_LAPACK_ssyev_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyev_2stage_base NVPL_LAPACK_GLOBAL(dsyev_2stage,DSYEV_2STAGE)
void NVPL_LAPACK_dsyev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyev_2stage(...) NVPL_LAPACK_dsyev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsyev_2stage(...) NVPL_LAPACK_dsyev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyev_2stage_base NVPL_LAPACK_GLOBAL(ssyev_2stage,SSYEV_2STAGE)
void NVPL_LAPACK_ssyev_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyev_2stage(...) NVPL_LAPACK_ssyev_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssyev_2stage(...) NVPL_LAPACK_ssyev_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyevd_base NVPL_LAPACK_GLOBAL(dsyevd,DSYEVD)
void NVPL_LAPACK_dsyevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyevd(...) NVPL_LAPACK_dsyevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsyevd(...) NVPL_LAPACK_dsyevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyevd_base NVPL_LAPACK_GLOBAL(ssyevd,SSYEVD)
void NVPL_LAPACK_ssyevd_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyevd(...) NVPL_LAPACK_ssyevd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssyevd(...) NVPL_LAPACK_ssyevd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyevd_2stage_base NVPL_LAPACK_GLOBAL(dsyevd_2stage,DSYEVD_2STAGE)
void NVPL_LAPACK_dsyevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyevd_2stage(...) NVPL_LAPACK_dsyevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsyevd_2stage(...) NVPL_LAPACK_dsyevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyevd_2stage_base NVPL_LAPACK_GLOBAL(ssyevd_2stage,SSYEVD_2STAGE)
void NVPL_LAPACK_ssyevd_2stage_base(
    char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyevd_2stage(...) NVPL_LAPACK_ssyevd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssyevd_2stage(...) NVPL_LAPACK_ssyevd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyevr_base NVPL_LAPACK_GLOBAL(dsyevr,DSYEVR)
void NVPL_LAPACK_dsyevr_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyevr(...) NVPL_LAPACK_dsyevr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsyevr(...) NVPL_LAPACK_dsyevr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyevr_base NVPL_LAPACK_GLOBAL(ssyevr,SSYEVR)
void NVPL_LAPACK_ssyevr_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyevr(...) NVPL_LAPACK_ssyevr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssyevr(...) NVPL_LAPACK_ssyevr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyevr_2stage_base NVPL_LAPACK_GLOBAL(dsyevr_2stage,DSYEVR_2STAGE)
void NVPL_LAPACK_dsyevr_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyevr_2stage(...) NVPL_LAPACK_dsyevr_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsyevr_2stage(...) NVPL_LAPACK_dsyevr_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyevr_2stage_base NVPL_LAPACK_GLOBAL(ssyevr_2stage,SSYEVR_2STAGE)
void NVPL_LAPACK_ssyevr_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t* ISUPPZ,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyevr_2stage(...) NVPL_LAPACK_ssyevr_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssyevr_2stage(...) NVPL_LAPACK_ssyevr_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyevx_base NVPL_LAPACK_GLOBAL(dsyevx,DSYEVX)
void NVPL_LAPACK_dsyevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyevx(...) NVPL_LAPACK_dsyevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsyevx(...) NVPL_LAPACK_dsyevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyevx_base NVPL_LAPACK_GLOBAL(ssyevx,SSYEVX)
void NVPL_LAPACK_ssyevx_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyevx(...) NVPL_LAPACK_ssyevx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssyevx(...) NVPL_LAPACK_ssyevx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyevx_2stage_base NVPL_LAPACK_GLOBAL(dsyevx_2stage,DSYEVX_2STAGE)
void NVPL_LAPACK_dsyevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyevx_2stage(...) NVPL_LAPACK_dsyevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsyevx_2stage(...) NVPL_LAPACK_dsyevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyevx_2stage_base NVPL_LAPACK_GLOBAL(ssyevx_2stage,SSYEVX_2STAGE)
void NVPL_LAPACK_ssyevx_2stage_base(
    char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyevx_2stage(...) NVPL_LAPACK_ssyevx_2stage_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssyevx_2stage(...) NVPL_LAPACK_ssyevx_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsygst_base NVPL_LAPACK_GLOBAL(dsygst,DSYGST)
void NVPL_LAPACK_dsygst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsygst(...) NVPL_LAPACK_dsygst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsygst(...) NVPL_LAPACK_dsygst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssygst_base NVPL_LAPACK_GLOBAL(ssygst,SSYGST)
void NVPL_LAPACK_ssygst_base(
    nvpl_int_t const* itype, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssygst(...) NVPL_LAPACK_ssygst_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssygst(...) NVPL_LAPACK_ssygst_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsygv_base NVPL_LAPACK_GLOBAL(dsygv,DSYGV)
void NVPL_LAPACK_dsygv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsygv(...) NVPL_LAPACK_dsygv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsygv(...) NVPL_LAPACK_dsygv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssygv_base NVPL_LAPACK_GLOBAL(ssygv,SSYGV)
void NVPL_LAPACK_ssygv_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssygv(...) NVPL_LAPACK_ssygv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssygv(...) NVPL_LAPACK_ssygv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsygv_2stage_base NVPL_LAPACK_GLOBAL(dsygv_2stage,DSYGV_2STAGE)
void NVPL_LAPACK_dsygv_2stage_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsygv_2stage(...) NVPL_LAPACK_dsygv_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsygv_2stage(...) NVPL_LAPACK_dsygv_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssygv_2stage_base NVPL_LAPACK_GLOBAL(ssygv_2stage,SSYGV_2STAGE)
void NVPL_LAPACK_ssygv_2stage_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssygv_2stage(...) NVPL_LAPACK_ssygv_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssygv_2stage(...) NVPL_LAPACK_ssygv_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsygvd_base NVPL_LAPACK_GLOBAL(dsygvd,DSYGVD)
void NVPL_LAPACK_dsygvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* W,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsygvd(...) NVPL_LAPACK_dsygvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsygvd(...) NVPL_LAPACK_dsygvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssygvd_base NVPL_LAPACK_GLOBAL(ssygvd,SSYGVD)
void NVPL_LAPACK_ssygvd_base(
    nvpl_int_t const* itype, char const* jobz, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* W,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssygvd(...) NVPL_LAPACK_ssygvd_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssygvd(...) NVPL_LAPACK_ssygvd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsygvx_base NVPL_LAPACK_GLOBAL(dsygvx,DSYGVX)
void NVPL_LAPACK_dsygvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double const* vl,
    double const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    double const* abstol, nvpl_int_t* m,
    double* W,
    double* Z, nvpl_int_t const* ldz,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsygvx(...) NVPL_LAPACK_dsygvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsygvx(...) NVPL_LAPACK_dsygvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssygvx_base NVPL_LAPACK_GLOBAL(ssygvx,SSYGVX)
void NVPL_LAPACK_ssygvx_base(
    nvpl_int_t const* itype, char const* jobz, char const* range, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float const* vl,
    float const* vu, nvpl_int_t const* il, nvpl_int_t const* iu,
    float const* abstol, nvpl_int_t* m,
    float* W,
    float* Z, nvpl_int_t const* ldz,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t* IFAIL,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssygvx(...) NVPL_LAPACK_ssygvx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssygvx(...) NVPL_LAPACK_ssygvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csyr_base NVPL_LAPACK_GLOBAL(csyr,CSYR)
void NVPL_LAPACK_csyr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* alpha,
    nvpl_scomplex_t const* X, nvpl_int_t const* incx,
    nvpl_scomplex_t* A, nvpl_int_t const* lda
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csyr(...) NVPL_LAPACK_csyr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csyr(...) NVPL_LAPACK_csyr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsyr_base NVPL_LAPACK_GLOBAL(zsyr,ZSYR)
void NVPL_LAPACK_zsyr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* alpha,
    nvpl_dcomplex_t const* X, nvpl_int_t const* incx,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsyr(...) NVPL_LAPACK_zsyr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsyr(...) NVPL_LAPACK_zsyr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csyrfs_base NVPL_LAPACK_GLOBAL(csyrfs,CSYRFS)
void NVPL_LAPACK_csyrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csyrfs(...) NVPL_LAPACK_csyrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csyrfs(...) NVPL_LAPACK_csyrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyrfs_base NVPL_LAPACK_GLOBAL(dsyrfs,DSYRFS)
void NVPL_LAPACK_dsyrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyrfs(...) NVPL_LAPACK_dsyrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsyrfs(...) NVPL_LAPACK_dsyrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyrfs_base NVPL_LAPACK_GLOBAL(ssyrfs,SSYRFS)
void NVPL_LAPACK_ssyrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyrfs(...) NVPL_LAPACK_ssyrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssyrfs(...) NVPL_LAPACK_ssyrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsyrfs_base NVPL_LAPACK_GLOBAL(zsyrfs,ZSYRFS)
void NVPL_LAPACK_zsyrfs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsyrfs(...) NVPL_LAPACK_zsyrfs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsyrfs(...) NVPL_LAPACK_zsyrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csyrfsx_base NVPL_LAPACK_GLOBAL(csyrfsx,CSYRFSX)
void NVPL_LAPACK_csyrfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    const float* S,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csyrfsx(...) NVPL_LAPACK_csyrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_csyrfsx(...) NVPL_LAPACK_csyrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyrfsx_base NVPL_LAPACK_GLOBAL(dsyrfsx,DSYRFSX)
void NVPL_LAPACK_dsyrfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    const double* S,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyrfsx(...) NVPL_LAPACK_dsyrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsyrfsx(...) NVPL_LAPACK_dsyrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyrfsx_base NVPL_LAPACK_GLOBAL(ssyrfsx,SSYRFSX)
void NVPL_LAPACK_ssyrfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    const float* S,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyrfsx(...) NVPL_LAPACK_ssyrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssyrfsx(...) NVPL_LAPACK_ssyrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsyrfsx_base NVPL_LAPACK_GLOBAL(zsyrfsx,ZSYRFSX)
void NVPL_LAPACK_zsyrfsx_base(
    char const* uplo, char const* equed,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* AF, nvpl_int_t const* ldaf, nvpl_int_t const* ipiv,
    const double* S,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsyrfsx(...) NVPL_LAPACK_zsyrfsx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zsyrfsx(...) NVPL_LAPACK_zsyrfsx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysv_base NVPL_LAPACK_GLOBAL(csysv,CSYSV)
void NVPL_LAPACK_csysv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysv(...) NVPL_LAPACK_csysv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csysv(...) NVPL_LAPACK_csysv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysv_base NVPL_LAPACK_GLOBAL(dsysv,DSYSV)
void NVPL_LAPACK_dsysv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysv(...) NVPL_LAPACK_dsysv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsysv(...) NVPL_LAPACK_dsysv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysv_base NVPL_LAPACK_GLOBAL(ssysv,SSYSV)
void NVPL_LAPACK_ssysv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysv(...) NVPL_LAPACK_ssysv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssysv(...) NVPL_LAPACK_ssysv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysv_base NVPL_LAPACK_GLOBAL(zsysv,ZSYSV)
void NVPL_LAPACK_zsysv_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysv(...) NVPL_LAPACK_zsysv_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsysv(...) NVPL_LAPACK_zsysv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysv_aa_base NVPL_LAPACK_GLOBAL(csysv_aa,CSYSV_AA)
void NVPL_LAPACK_csysv_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysv_aa(...) NVPL_LAPACK_csysv_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csysv_aa(...) NVPL_LAPACK_csysv_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysv_aa_base NVPL_LAPACK_GLOBAL(dsysv_aa,DSYSV_AA)
void NVPL_LAPACK_dsysv_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysv_aa(...) NVPL_LAPACK_dsysv_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsysv_aa(...) NVPL_LAPACK_dsysv_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysv_aa_base NVPL_LAPACK_GLOBAL(ssysv_aa,SSYSV_AA)
void NVPL_LAPACK_ssysv_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysv_aa(...) NVPL_LAPACK_ssysv_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssysv_aa(...) NVPL_LAPACK_ssysv_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysv_aa_base NVPL_LAPACK_GLOBAL(zsysv_aa,ZSYSV_AA)
void NVPL_LAPACK_zsysv_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysv_aa(...) NVPL_LAPACK_zsysv_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsysv_aa(...) NVPL_LAPACK_zsysv_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysv_aa_2stage_base NVPL_LAPACK_GLOBAL(csysv_aa_2stage,CSYSV_AA_2STAGE)
void NVPL_LAPACK_csysv_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysv_aa_2stage(...) NVPL_LAPACK_csysv_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csysv_aa_2stage(...) NVPL_LAPACK_csysv_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysv_aa_2stage_base NVPL_LAPACK_GLOBAL(dsysv_aa_2stage,DSYSV_AA_2STAGE)
void NVPL_LAPACK_dsysv_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysv_aa_2stage(...) NVPL_LAPACK_dsysv_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsysv_aa_2stage(...) NVPL_LAPACK_dsysv_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysv_aa_2stage_base NVPL_LAPACK_GLOBAL(ssysv_aa_2stage,SSYSV_AA_2STAGE)
void NVPL_LAPACK_ssysv_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysv_aa_2stage(...) NVPL_LAPACK_ssysv_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssysv_aa_2stage(...) NVPL_LAPACK_ssysv_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysv_aa_2stage_base NVPL_LAPACK_GLOBAL(zsysv_aa_2stage,ZSYSV_AA_2STAGE)
void NVPL_LAPACK_zsysv_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysv_aa_2stage(...) NVPL_LAPACK_zsysv_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsysv_aa_2stage(...) NVPL_LAPACK_zsysv_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysv_rk_base NVPL_LAPACK_GLOBAL(csysv_rk,CSYSV_RK)
void NVPL_LAPACK_csysv_rk_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* E, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysv_rk(...) NVPL_LAPACK_csysv_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csysv_rk(...) NVPL_LAPACK_csysv_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysv_rk_base NVPL_LAPACK_GLOBAL(dsysv_rk,DSYSV_RK)
void NVPL_LAPACK_dsysv_rk_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* E, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysv_rk(...) NVPL_LAPACK_dsysv_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsysv_rk(...) NVPL_LAPACK_dsysv_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysv_rk_base NVPL_LAPACK_GLOBAL(ssysv_rk,SSYSV_RK)
void NVPL_LAPACK_ssysv_rk_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* E, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysv_rk(...) NVPL_LAPACK_ssysv_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssysv_rk(...) NVPL_LAPACK_ssysv_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysv_rk_base NVPL_LAPACK_GLOBAL(zsysv_rk,ZSYSV_RK)
void NVPL_LAPACK_zsysv_rk_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* E, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysv_rk(...) NVPL_LAPACK_zsysv_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsysv_rk(...) NVPL_LAPACK_zsysv_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysv_rook_base NVPL_LAPACK_GLOBAL(csysv_rook,CSYSV_ROOK)
void NVPL_LAPACK_csysv_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysv_rook(...) NVPL_LAPACK_csysv_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csysv_rook(...) NVPL_LAPACK_csysv_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysv_rook_base NVPL_LAPACK_GLOBAL(dsysv_rook,DSYSV_ROOK)
void NVPL_LAPACK_dsysv_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysv_rook(...) NVPL_LAPACK_dsysv_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsysv_rook(...) NVPL_LAPACK_dsysv_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysv_rook_base NVPL_LAPACK_GLOBAL(ssysv_rook,SSYSV_ROOK)
void NVPL_LAPACK_ssysv_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysv_rook(...) NVPL_LAPACK_ssysv_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssysv_rook(...) NVPL_LAPACK_ssysv_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysv_rook_base NVPL_LAPACK_GLOBAL(zsysv_rook,ZSYSV_ROOK)
void NVPL_LAPACK_zsysv_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysv_rook(...) NVPL_LAPACK_zsysv_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsysv_rook(...) NVPL_LAPACK_zsysv_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysvx_base NVPL_LAPACK_GLOBAL(csysvx,CSYSVX)
void NVPL_LAPACK_csysvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysvx(...) NVPL_LAPACK_csysvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_csysvx(...) NVPL_LAPACK_csysvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysvx_base NVPL_LAPACK_GLOBAL(dsysvx,DSYSVX)
void NVPL_LAPACK_dsysvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv,
    double const* B, nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysvx(...) NVPL_LAPACK_dsysvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsysvx(...) NVPL_LAPACK_dsysvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysvx_base NVPL_LAPACK_GLOBAL(ssysvx,SSYSVX)
void NVPL_LAPACK_ssysvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv,
    float const* B, nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* ferr,
    float* berr,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysvx(...) NVPL_LAPACK_ssysvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssysvx(...) NVPL_LAPACK_ssysvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysvx_base NVPL_LAPACK_GLOBAL(zsysvx,ZSYSVX)
void NVPL_LAPACK_zsysvx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysvx(...) NVPL_LAPACK_zsysvx_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zsysvx(...) NVPL_LAPACK_zsysvx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csysvxx_base NVPL_LAPACK_GLOBAL(csysvxx,CSYSVXX)
void NVPL_LAPACK_csysvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* S,
    nvpl_scomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_scomplex_t* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csysvxx(...) NVPL_LAPACK_csysvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_csysvxx(...) NVPL_LAPACK_csysvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsysvxx_base NVPL_LAPACK_GLOBAL(dsysvxx,DSYSVXX)
void NVPL_LAPACK_dsysvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* S,
    double* B,
    nvpl_int_t const* ldb,
    double* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsysvxx(...) NVPL_LAPACK_dsysvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dsysvxx(...) NVPL_LAPACK_dsysvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssysvxx_base NVPL_LAPACK_GLOBAL(ssysvxx,SSYSVXX)
void NVPL_LAPACK_ssysvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    float* S,
    float* B,
    nvpl_int_t const* ldb,
    float* X, nvpl_int_t const* ldx,
    float* rcond,
    float* rpvgrw,
    float* berr, nvpl_int_t const* n_err_bnds,
    float* err_bnds_norm,
    float* err_bnds_comp, nvpl_int_t const* nparams,
    float* params,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssysvxx(...) NVPL_LAPACK_ssysvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ssysvxx(...) NVPL_LAPACK_ssysvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsysvxx_base NVPL_LAPACK_GLOBAL(zsysvxx,ZSYSVXX)
void NVPL_LAPACK_zsysvxx_base(
    char const* fact, char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AF, nvpl_int_t const* ldaf, nvpl_int_t* ipiv, char* equed,
    double* S,
    nvpl_dcomplex_t* B,
    nvpl_int_t const* ldb,
    nvpl_dcomplex_t* X, nvpl_int_t const* ldx,
    double* rcond,
    double* rpvgrw,
    double* berr, nvpl_int_t const* n_err_bnds,
    double* err_bnds_norm,
    double* err_bnds_comp, nvpl_int_t const* nparams,
    double* params,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsysvxx(...) NVPL_LAPACK_zsysvxx_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zsysvxx(...) NVPL_LAPACK_zsysvxx_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csyswapr_base NVPL_LAPACK_GLOBAL(csyswapr,CSYSWAPR)
void NVPL_LAPACK_csyswapr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* i1, nvpl_int_t const* i2
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csyswapr(...) NVPL_LAPACK_csyswapr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csyswapr(...) NVPL_LAPACK_csyswapr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsyswapr_base NVPL_LAPACK_GLOBAL(dsyswapr,DSYSWAPR)
void NVPL_LAPACK_dsyswapr_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* i1, nvpl_int_t const* i2
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsyswapr(...) NVPL_LAPACK_dsyswapr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsyswapr(...) NVPL_LAPACK_dsyswapr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssyswapr_base NVPL_LAPACK_GLOBAL(ssyswapr,SSYSWAPR)
void NVPL_LAPACK_ssyswapr_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* i1, nvpl_int_t const* i2
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssyswapr(...) NVPL_LAPACK_ssyswapr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssyswapr(...) NVPL_LAPACK_ssyswapr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsyswapr_base NVPL_LAPACK_GLOBAL(zsyswapr,ZSYSWAPR)
void NVPL_LAPACK_zsyswapr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* i1, nvpl_int_t const* i2
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsyswapr(...) NVPL_LAPACK_zsyswapr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsyswapr(...) NVPL_LAPACK_zsyswapr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrd_base NVPL_LAPACK_GLOBAL(dsytrd,DSYTRD)
void NVPL_LAPACK_dsytrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* D,
    double* E,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrd(...) NVPL_LAPACK_dsytrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrd(...) NVPL_LAPACK_dsytrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrd_base NVPL_LAPACK_GLOBAL(ssytrd,SSYTRD)
void NVPL_LAPACK_ssytrd_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* D,
    float* E,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrd(...) NVPL_LAPACK_ssytrd_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrd(...) NVPL_LAPACK_ssytrd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrd_2stage_base NVPL_LAPACK_GLOBAL(dsytrd_2stage,DSYTRD_2STAGE)
void NVPL_LAPACK_dsytrd_2stage_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* D,
    double* E,
    double* tau,
    double* HOUS2, nvpl_int_t const* lhous2,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrd_2stage(...) NVPL_LAPACK_dsytrd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dsytrd_2stage(...) NVPL_LAPACK_dsytrd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrd_2stage_base NVPL_LAPACK_GLOBAL(ssytrd_2stage,SSYTRD_2STAGE)
void NVPL_LAPACK_ssytrd_2stage_base(
    char const* vect, char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* D,
    float* E,
    float* tau,
    float* HOUS2, nvpl_int_t const* lhous2,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrd_2stage(...) NVPL_LAPACK_ssytrd_2stage_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ssytrd_2stage(...) NVPL_LAPACK_ssytrd_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrf_base NVPL_LAPACK_GLOBAL(csytrf,CSYTRF)
void NVPL_LAPACK_csytrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrf(...) NVPL_LAPACK_csytrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrf(...) NVPL_LAPACK_csytrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrf_base NVPL_LAPACK_GLOBAL(dsytrf,DSYTRF)
void NVPL_LAPACK_dsytrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrf(...) NVPL_LAPACK_dsytrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrf(...) NVPL_LAPACK_dsytrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrf_base NVPL_LAPACK_GLOBAL(ssytrf,SSYTRF)
void NVPL_LAPACK_ssytrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrf(...) NVPL_LAPACK_ssytrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrf(...) NVPL_LAPACK_ssytrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrf_base NVPL_LAPACK_GLOBAL(zsytrf,ZSYTRF)
void NVPL_LAPACK_zsytrf_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrf(...) NVPL_LAPACK_zsytrf_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrf(...) NVPL_LAPACK_zsytrf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrf_aa_base NVPL_LAPACK_GLOBAL(csytrf_aa,CSYTRF_AA)
void NVPL_LAPACK_csytrf_aa_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrf_aa(...) NVPL_LAPACK_csytrf_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrf_aa(...) NVPL_LAPACK_csytrf_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrf_aa_base NVPL_LAPACK_GLOBAL(dsytrf_aa,DSYTRF_AA)
void NVPL_LAPACK_dsytrf_aa_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrf_aa(...) NVPL_LAPACK_dsytrf_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrf_aa(...) NVPL_LAPACK_dsytrf_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrf_aa_base NVPL_LAPACK_GLOBAL(ssytrf_aa,SSYTRF_AA)
void NVPL_LAPACK_ssytrf_aa_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrf_aa(...) NVPL_LAPACK_ssytrf_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrf_aa(...) NVPL_LAPACK_ssytrf_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrf_aa_base NVPL_LAPACK_GLOBAL(zsytrf_aa,ZSYTRF_AA)
void NVPL_LAPACK_zsytrf_aa_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrf_aa(...) NVPL_LAPACK_zsytrf_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrf_aa(...) NVPL_LAPACK_zsytrf_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrf_aa_2stage_base NVPL_LAPACK_GLOBAL(csytrf_aa_2stage,CSYTRF_AA_2STAGE)
void NVPL_LAPACK_csytrf_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrf_aa_2stage(...) NVPL_LAPACK_csytrf_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrf_aa_2stage(...) NVPL_LAPACK_csytrf_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrf_aa_2stage_base NVPL_LAPACK_GLOBAL(dsytrf_aa_2stage,DSYTRF_AA_2STAGE)
void NVPL_LAPACK_dsytrf_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrf_aa_2stage(...) NVPL_LAPACK_dsytrf_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrf_aa_2stage(...) NVPL_LAPACK_dsytrf_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrf_aa_2stage_base NVPL_LAPACK_GLOBAL(ssytrf_aa_2stage,SSYTRF_AA_2STAGE)
void NVPL_LAPACK_ssytrf_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrf_aa_2stage(...) NVPL_LAPACK_ssytrf_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrf_aa_2stage(...) NVPL_LAPACK_ssytrf_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrf_aa_2stage_base NVPL_LAPACK_GLOBAL(zsytrf_aa_2stage,ZSYTRF_AA_2STAGE)
void NVPL_LAPACK_zsytrf_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t* ipiv, nvpl_int_t* ipiv2,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrf_aa_2stage(...) NVPL_LAPACK_zsytrf_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrf_aa_2stage(...) NVPL_LAPACK_zsytrf_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrf_rk_base NVPL_LAPACK_GLOBAL(csytrf_rk,CSYTRF_RK)
void NVPL_LAPACK_csytrf_rk_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* E, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrf_rk(...) NVPL_LAPACK_csytrf_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrf_rk(...) NVPL_LAPACK_csytrf_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrf_rk_base NVPL_LAPACK_GLOBAL(dsytrf_rk,DSYTRF_RK)
void NVPL_LAPACK_dsytrf_rk_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* E, nvpl_int_t* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrf_rk(...) NVPL_LAPACK_dsytrf_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrf_rk(...) NVPL_LAPACK_dsytrf_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrf_rk_base NVPL_LAPACK_GLOBAL(ssytrf_rk,SSYTRF_RK)
void NVPL_LAPACK_ssytrf_rk_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* E, nvpl_int_t* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrf_rk(...) NVPL_LAPACK_ssytrf_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrf_rk(...) NVPL_LAPACK_ssytrf_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrf_rk_base NVPL_LAPACK_GLOBAL(zsytrf_rk,ZSYTRF_RK)
void NVPL_LAPACK_zsytrf_rk_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* E, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrf_rk(...) NVPL_LAPACK_zsytrf_rk_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrf_rk(...) NVPL_LAPACK_zsytrf_rk_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrf_rook_base NVPL_LAPACK_GLOBAL(csytrf_rook,CSYTRF_ROOK)
void NVPL_LAPACK_csytrf_rook_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrf_rook(...) NVPL_LAPACK_csytrf_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrf_rook(...) NVPL_LAPACK_csytrf_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrf_rook_base NVPL_LAPACK_GLOBAL(dsytrf_rook,DSYTRF_ROOK)
void NVPL_LAPACK_dsytrf_rook_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrf_rook(...) NVPL_LAPACK_dsytrf_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrf_rook(...) NVPL_LAPACK_dsytrf_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrf_rook_base NVPL_LAPACK_GLOBAL(ssytrf_rook,SSYTRF_ROOK)
void NVPL_LAPACK_ssytrf_rook_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrf_rook(...) NVPL_LAPACK_ssytrf_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrf_rook(...) NVPL_LAPACK_ssytrf_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrf_rook_base NVPL_LAPACK_GLOBAL(zsytrf_rook,ZSYTRF_ROOK)
void NVPL_LAPACK_zsytrf_rook_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrf_rook(...) NVPL_LAPACK_zsytrf_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrf_rook(...) NVPL_LAPACK_zsytrf_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytri_base NVPL_LAPACK_GLOBAL(csytri,CSYTRI)
void NVPL_LAPACK_csytri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytri(...) NVPL_LAPACK_csytri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytri(...) NVPL_LAPACK_csytri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytri_base NVPL_LAPACK_GLOBAL(dsytri,DSYTRI)
void NVPL_LAPACK_dsytri_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytri(...) NVPL_LAPACK_dsytri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytri(...) NVPL_LAPACK_dsytri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytri_base NVPL_LAPACK_GLOBAL(ssytri,SSYTRI)
void NVPL_LAPACK_ssytri_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytri(...) NVPL_LAPACK_ssytri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytri(...) NVPL_LAPACK_ssytri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytri_base NVPL_LAPACK_GLOBAL(zsytri,ZSYTRI)
void NVPL_LAPACK_zsytri_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytri(...) NVPL_LAPACK_zsytri_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytri(...) NVPL_LAPACK_zsytri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytri2_base NVPL_LAPACK_GLOBAL(csytri2,CSYTRI2)
void NVPL_LAPACK_csytri2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytri2(...) NVPL_LAPACK_csytri2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytri2(...) NVPL_LAPACK_csytri2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytri2_base NVPL_LAPACK_GLOBAL(dsytri2,DSYTRI2)
void NVPL_LAPACK_dsytri2_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytri2(...) NVPL_LAPACK_dsytri2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytri2(...) NVPL_LAPACK_dsytri2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytri2_base NVPL_LAPACK_GLOBAL(ssytri2,SSYTRI2)
void NVPL_LAPACK_ssytri2_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytri2(...) NVPL_LAPACK_ssytri2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytri2(...) NVPL_LAPACK_ssytri2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytri2_base NVPL_LAPACK_GLOBAL(zsytri2,ZSYTRI2)
void NVPL_LAPACK_zsytri2_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytri2(...) NVPL_LAPACK_zsytri2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytri2(...) NVPL_LAPACK_zsytri2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytri2x_base NVPL_LAPACK_GLOBAL(csytri2x,CSYTRI2X)
void NVPL_LAPACK_csytri2x_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* nb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytri2x(...) NVPL_LAPACK_csytri2x_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytri2x(...) NVPL_LAPACK_csytri2x_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytri2x_base NVPL_LAPACK_GLOBAL(dsytri2x,DSYTRI2X)
void NVPL_LAPACK_dsytri2x_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* work, nvpl_int_t const* nb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytri2x(...) NVPL_LAPACK_dsytri2x_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytri2x(...) NVPL_LAPACK_dsytri2x_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytri2x_base NVPL_LAPACK_GLOBAL(ssytri2x,SSYTRI2X)
void NVPL_LAPACK_ssytri2x_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* work, nvpl_int_t const* nb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytri2x(...) NVPL_LAPACK_ssytri2x_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytri2x(...) NVPL_LAPACK_ssytri2x_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytri2x_base NVPL_LAPACK_GLOBAL(zsytri2x,ZSYTRI2X)
void NVPL_LAPACK_zsytri2x_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* nb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytri2x(...) NVPL_LAPACK_zsytri2x_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytri2x(...) NVPL_LAPACK_zsytri2x_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytri_3_base NVPL_LAPACK_GLOBAL(csytri_3,CSYTRI_3)
void NVPL_LAPACK_csytri_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytri_3(...) NVPL_LAPACK_csytri_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytri_3(...) NVPL_LAPACK_csytri_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytri_3_base NVPL_LAPACK_GLOBAL(dsytri_3,DSYTRI_3)
void NVPL_LAPACK_dsytri_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double const* E, nvpl_int_t const* ipiv,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytri_3(...) NVPL_LAPACK_dsytri_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytri_3(...) NVPL_LAPACK_dsytri_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytri_3_base NVPL_LAPACK_GLOBAL(ssytri_3,SSYTRI_3)
void NVPL_LAPACK_ssytri_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float const* E, nvpl_int_t const* ipiv,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytri_3(...) NVPL_LAPACK_ssytri_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytri_3(...) NVPL_LAPACK_ssytri_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytri_3_base NVPL_LAPACK_GLOBAL(zsytri_3,ZSYTRI_3)
void NVPL_LAPACK_zsytri_3_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytri_3(...) NVPL_LAPACK_zsytri_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytri_3(...) NVPL_LAPACK_zsytri_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrs_base NVPL_LAPACK_GLOBAL(csytrs,CSYTRS)
void NVPL_LAPACK_csytrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrs(...) NVPL_LAPACK_csytrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrs(...) NVPL_LAPACK_csytrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrs_base NVPL_LAPACK_GLOBAL(dsytrs,DSYTRS)
void NVPL_LAPACK_dsytrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrs(...) NVPL_LAPACK_dsytrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrs(...) NVPL_LAPACK_dsytrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrs_base NVPL_LAPACK_GLOBAL(ssytrs,SSYTRS)
void NVPL_LAPACK_ssytrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrs(...) NVPL_LAPACK_ssytrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrs(...) NVPL_LAPACK_ssytrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrs_base NVPL_LAPACK_GLOBAL(zsytrs,ZSYTRS)
void NVPL_LAPACK_zsytrs_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrs(...) NVPL_LAPACK_zsytrs_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrs(...) NVPL_LAPACK_zsytrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrs2_base NVPL_LAPACK_GLOBAL(csytrs2,CSYTRS2)
void NVPL_LAPACK_csytrs2_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    const nvpl_scomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrs2(...) NVPL_LAPACK_csytrs2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrs2(...) NVPL_LAPACK_csytrs2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrs2_base NVPL_LAPACK_GLOBAL(dsytrs2,DSYTRS2)
void NVPL_LAPACK_dsytrs2_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    const double* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrs2(...) NVPL_LAPACK_dsytrs2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrs2(...) NVPL_LAPACK_dsytrs2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrs2_base NVPL_LAPACK_GLOBAL(ssytrs2,SSYTRS2)
void NVPL_LAPACK_ssytrs2_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    const float* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrs2(...) NVPL_LAPACK_ssytrs2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrs2(...) NVPL_LAPACK_ssytrs2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrs2_base NVPL_LAPACK_GLOBAL(zsytrs2,ZSYTRS2)
void NVPL_LAPACK_zsytrs2_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    const nvpl_dcomplex_t* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrs2(...) NVPL_LAPACK_zsytrs2_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrs2(...) NVPL_LAPACK_zsytrs2_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrs_3_base NVPL_LAPACK_GLOBAL(csytrs_3,CSYTRS_3)
void NVPL_LAPACK_csytrs_3_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrs_3(...) NVPL_LAPACK_csytrs_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrs_3(...) NVPL_LAPACK_csytrs_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrs_3_base NVPL_LAPACK_GLOBAL(dsytrs_3,DSYTRS_3)
void NVPL_LAPACK_dsytrs_3_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* E, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrs_3(...) NVPL_LAPACK_dsytrs_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrs_3(...) NVPL_LAPACK_dsytrs_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrs_3_base NVPL_LAPACK_GLOBAL(ssytrs_3,SSYTRS_3)
void NVPL_LAPACK_ssytrs_3_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* E, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrs_3(...) NVPL_LAPACK_ssytrs_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrs_3(...) NVPL_LAPACK_ssytrs_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrs_3_base NVPL_LAPACK_GLOBAL(zsytrs_3,ZSYTRS_3)
void NVPL_LAPACK_zsytrs_3_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* E, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrs_3(...) NVPL_LAPACK_zsytrs_3_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrs_3(...) NVPL_LAPACK_zsytrs_3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrs_aa_base NVPL_LAPACK_GLOBAL(csytrs_aa,CSYTRS_AA)
void NVPL_LAPACK_csytrs_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrs_aa(...) NVPL_LAPACK_csytrs_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrs_aa(...) NVPL_LAPACK_csytrs_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrs_aa_base NVPL_LAPACK_GLOBAL(dsytrs_aa,DSYTRS_AA)
void NVPL_LAPACK_dsytrs_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrs_aa(...) NVPL_LAPACK_dsytrs_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrs_aa(...) NVPL_LAPACK_dsytrs_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrs_aa_base NVPL_LAPACK_GLOBAL(ssytrs_aa,SSYTRS_AA)
void NVPL_LAPACK_ssytrs_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrs_aa(...) NVPL_LAPACK_ssytrs_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrs_aa(...) NVPL_LAPACK_ssytrs_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrs_aa_base NVPL_LAPACK_GLOBAL(zsytrs_aa,ZSYTRS_AA)
void NVPL_LAPACK_zsytrs_aa_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrs_aa(...) NVPL_LAPACK_zsytrs_aa_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrs_aa(...) NVPL_LAPACK_zsytrs_aa_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrs_aa_2stage_base NVPL_LAPACK_GLOBAL(csytrs_aa_2stage,CSYTRS_AA_2STAGE)
void NVPL_LAPACK_csytrs_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t const* ipiv, nvpl_int_t const* ipiv2,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrs_aa_2stage(...) NVPL_LAPACK_csytrs_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrs_aa_2stage(...) NVPL_LAPACK_csytrs_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrs_aa_2stage_base NVPL_LAPACK_GLOBAL(dsytrs_aa_2stage,DSYTRS_AA_2STAGE)
void NVPL_LAPACK_dsytrs_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double* TB, nvpl_int_t const* ltb, nvpl_int_t const* ipiv, nvpl_int_t const* ipiv2,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrs_aa_2stage(...) NVPL_LAPACK_dsytrs_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrs_aa_2stage(...) NVPL_LAPACK_dsytrs_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrs_aa_2stage_base NVPL_LAPACK_GLOBAL(ssytrs_aa_2stage,SSYTRS_AA_2STAGE)
void NVPL_LAPACK_ssytrs_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float* TB, nvpl_int_t const* ltb, nvpl_int_t const* ipiv, nvpl_int_t const* ipiv2,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrs_aa_2stage(...) NVPL_LAPACK_ssytrs_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrs_aa_2stage(...) NVPL_LAPACK_ssytrs_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrs_aa_2stage_base NVPL_LAPACK_GLOBAL(zsytrs_aa_2stage,ZSYTRS_AA_2STAGE)
void NVPL_LAPACK_zsytrs_aa_2stage_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* TB, nvpl_int_t const* ltb, nvpl_int_t const* ipiv, nvpl_int_t const* ipiv2,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrs_aa_2stage(...) NVPL_LAPACK_zsytrs_aa_2stage_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrs_aa_2stage(...) NVPL_LAPACK_zsytrs_aa_2stage_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_csytrs_rook_base NVPL_LAPACK_GLOBAL(csytrs_rook,CSYTRS_ROOK)
void NVPL_LAPACK_csytrs_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_csytrs_rook(...) NVPL_LAPACK_csytrs_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_csytrs_rook(...) NVPL_LAPACK_csytrs_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dsytrs_rook_base NVPL_LAPACK_GLOBAL(dsytrs_rook,DSYTRS_ROOK)
void NVPL_LAPACK_dsytrs_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dsytrs_rook(...) NVPL_LAPACK_dsytrs_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dsytrs_rook(...) NVPL_LAPACK_dsytrs_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ssytrs_rook_base NVPL_LAPACK_GLOBAL(ssytrs_rook,SSYTRS_ROOK)
void NVPL_LAPACK_ssytrs_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ssytrs_rook(...) NVPL_LAPACK_ssytrs_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ssytrs_rook(...) NVPL_LAPACK_ssytrs_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zsytrs_rook_base NVPL_LAPACK_GLOBAL(zsytrs_rook,ZSYTRS_ROOK)
void NVPL_LAPACK_zsytrs_rook_base(
    char const* uplo,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda, nvpl_int_t const* ipiv,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zsytrs_rook(...) NVPL_LAPACK_zsytrs_rook_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zsytrs_rook(...) NVPL_LAPACK_zsytrs_rook_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctbcon_base NVPL_LAPACK_GLOBAL(ctbcon,CTBCON)
void NVPL_LAPACK_ctbcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctbcon(...) NVPL_LAPACK_ctbcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctbcon(...) NVPL_LAPACK_ctbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtbcon_base NVPL_LAPACK_GLOBAL(dtbcon,DTBCON)
void NVPL_LAPACK_dtbcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    double const* AB, nvpl_int_t const* ldab,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtbcon(...) NVPL_LAPACK_dtbcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtbcon(...) NVPL_LAPACK_dtbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stbcon_base NVPL_LAPACK_GLOBAL(stbcon,STBCON)
void NVPL_LAPACK_stbcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    float const* AB, nvpl_int_t const* ldab,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stbcon(...) NVPL_LAPACK_stbcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stbcon(...) NVPL_LAPACK_stbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztbcon_base NVPL_LAPACK_GLOBAL(ztbcon,ZTBCON)
void NVPL_LAPACK_ztbcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztbcon(...) NVPL_LAPACK_ztbcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztbcon(...) NVPL_LAPACK_ztbcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctbrfs_base NVPL_LAPACK_GLOBAL(ctbrfs,CTBRFS)
void NVPL_LAPACK_ctbrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t const* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctbrfs(...) NVPL_LAPACK_ctbrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctbrfs(...) NVPL_LAPACK_ctbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtbrfs_base NVPL_LAPACK_GLOBAL(dtbrfs,DTBRFS)
void NVPL_LAPACK_dtbrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab,
    double const* B, nvpl_int_t const* ldb,
    double const* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtbrfs(...) NVPL_LAPACK_dtbrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtbrfs(...) NVPL_LAPACK_dtbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stbrfs_base NVPL_LAPACK_GLOBAL(stbrfs,STBRFS)
void NVPL_LAPACK_stbrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab,
    float const* B, nvpl_int_t const* ldb,
    float const* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stbrfs(...) NVPL_LAPACK_stbrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stbrfs(...) NVPL_LAPACK_stbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztbrfs_base NVPL_LAPACK_GLOBAL(ztbrfs,ZTBRFS)
void NVPL_LAPACK_ztbrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t const* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztbrfs(...) NVPL_LAPACK_ztbrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztbrfs(...) NVPL_LAPACK_ztbrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctbtrs_base NVPL_LAPACK_GLOBAL(ctbtrs,CTBTRS)
void NVPL_LAPACK_ctbtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctbtrs(...) NVPL_LAPACK_ctbtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctbtrs(...) NVPL_LAPACK_ctbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtbtrs_base NVPL_LAPACK_GLOBAL(dtbtrs,DTBTRS)
void NVPL_LAPACK_dtbtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    double const* AB, nvpl_int_t const* ldab,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtbtrs(...) NVPL_LAPACK_dtbtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtbtrs(...) NVPL_LAPACK_dtbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stbtrs_base NVPL_LAPACK_GLOBAL(stbtrs,STBTRS)
void NVPL_LAPACK_stbtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    float const* AB, nvpl_int_t const* ldab,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stbtrs(...) NVPL_LAPACK_stbtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stbtrs(...) NVPL_LAPACK_stbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztbtrs_base NVPL_LAPACK_GLOBAL(ztbtrs,ZTBTRS)
void NVPL_LAPACK_ztbtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* kd, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AB, nvpl_int_t const* ldab,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztbtrs(...) NVPL_LAPACK_ztbtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztbtrs(...) NVPL_LAPACK_ztbtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctfsm_base NVPL_LAPACK_GLOBAL(ctfsm,CTFSM)
void NVPL_LAPACK_ctfsm_base(
    char const* transr, char const* side, char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* alpha,
    nvpl_scomplex_t const* A,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctfsm(...) NVPL_LAPACK_ctfsm_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctfsm(...) NVPL_LAPACK_ctfsm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtfsm_base NVPL_LAPACK_GLOBAL(dtfsm,DTFSM)
void NVPL_LAPACK_dtfsm_base(
    char const* transr, char const* side, char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* alpha,
    double const* A,
    double* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtfsm(...) NVPL_LAPACK_dtfsm_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtfsm(...) NVPL_LAPACK_dtfsm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stfsm_base NVPL_LAPACK_GLOBAL(stfsm,STFSM)
void NVPL_LAPACK_stfsm_base(
    char const* transr, char const* side, char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* alpha,
    float const* A,
    float* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stfsm(...) NVPL_LAPACK_stfsm_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_stfsm(...) NVPL_LAPACK_stfsm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztfsm_base NVPL_LAPACK_GLOBAL(ztfsm,ZTFSM)
void NVPL_LAPACK_ztfsm_base(
    char const* transr, char const* side, char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* alpha,
    nvpl_dcomplex_t const* A,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztfsm(...) NVPL_LAPACK_ztfsm_base(__VA_ARGS__, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztfsm(...) NVPL_LAPACK_ztfsm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctftri_base NVPL_LAPACK_GLOBAL(ctftri,CTFTRI)
void NVPL_LAPACK_ctftri_base(
    char const* transr, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctftri(...) NVPL_LAPACK_ctftri_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctftri(...) NVPL_LAPACK_ctftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtftri_base NVPL_LAPACK_GLOBAL(dtftri,DTFTRI)
void NVPL_LAPACK_dtftri_base(
    char const* transr, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    double* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtftri(...) NVPL_LAPACK_dtftri_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtftri(...) NVPL_LAPACK_dtftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stftri_base NVPL_LAPACK_GLOBAL(stftri,STFTRI)
void NVPL_LAPACK_stftri_base(
    char const* transr, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    float* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stftri(...) NVPL_LAPACK_stftri_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stftri(...) NVPL_LAPACK_stftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztftri_base NVPL_LAPACK_GLOBAL(ztftri,ZTFTRI)
void NVPL_LAPACK_ztftri_base(
    char const* transr, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztftri(...) NVPL_LAPACK_ztftri_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztftri(...) NVPL_LAPACK_ztftri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctfttp_base NVPL_LAPACK_GLOBAL(ctfttp,CTFTTP)
void NVPL_LAPACK_ctfttp_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* ARF,
    nvpl_scomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctfttp(...) NVPL_LAPACK_ctfttp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctfttp(...) NVPL_LAPACK_ctfttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtfttp_base NVPL_LAPACK_GLOBAL(dtfttp,DTFTTP)
void NVPL_LAPACK_dtfttp_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    double const* ARF,
    double* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtfttp(...) NVPL_LAPACK_dtfttp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtfttp(...) NVPL_LAPACK_dtfttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stfttp_base NVPL_LAPACK_GLOBAL(stfttp,STFTTP)
void NVPL_LAPACK_stfttp_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    float const* ARF,
    float* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stfttp(...) NVPL_LAPACK_stfttp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stfttp(...) NVPL_LAPACK_stfttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztfttp_base NVPL_LAPACK_GLOBAL(ztfttp,ZTFTTP)
void NVPL_LAPACK_ztfttp_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* ARF,
    nvpl_dcomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztfttp(...) NVPL_LAPACK_ztfttp_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztfttp(...) NVPL_LAPACK_ztfttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctfttr_base NVPL_LAPACK_GLOBAL(ctfttr,CTFTTR)
void NVPL_LAPACK_ctfttr_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* ARF,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctfttr(...) NVPL_LAPACK_ctfttr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctfttr(...) NVPL_LAPACK_ctfttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtfttr_base NVPL_LAPACK_GLOBAL(dtfttr,DTFTTR)
void NVPL_LAPACK_dtfttr_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    double const* ARF,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtfttr(...) NVPL_LAPACK_dtfttr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtfttr(...) NVPL_LAPACK_dtfttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stfttr_base NVPL_LAPACK_GLOBAL(stfttr,STFTTR)
void NVPL_LAPACK_stfttr_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    float const* ARF,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stfttr(...) NVPL_LAPACK_stfttr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stfttr(...) NVPL_LAPACK_stfttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztfttr_base NVPL_LAPACK_GLOBAL(ztfttr,ZTFTTR)
void NVPL_LAPACK_ztfttr_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* ARF,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztfttr(...) NVPL_LAPACK_ztfttr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztfttr(...) NVPL_LAPACK_ztfttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctgevc_base NVPL_LAPACK_GLOBAL(ctgevc,CTGEVC)
void NVPL_LAPACK_ctgevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* S, nvpl_int_t const* lds,
    nvpl_scomplex_t const* P, nvpl_int_t const* ldp,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctgevc(...) NVPL_LAPACK_ctgevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctgevc(...) NVPL_LAPACK_ctgevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtgevc_base NVPL_LAPACK_GLOBAL(dtgevc,DTGEVC)
void NVPL_LAPACK_dtgevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    double const* S, nvpl_int_t const* lds,
    double const* P, nvpl_int_t const* ldp,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtgevc(...) NVPL_LAPACK_dtgevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtgevc(...) NVPL_LAPACK_dtgevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stgevc_base NVPL_LAPACK_GLOBAL(stgevc,STGEVC)
void NVPL_LAPACK_stgevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    float const* S, nvpl_int_t const* lds,
    float const* P, nvpl_int_t const* ldp,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stgevc(...) NVPL_LAPACK_stgevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stgevc(...) NVPL_LAPACK_stgevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztgevc_base NVPL_LAPACK_GLOBAL(ztgevc,ZTGEVC)
void NVPL_LAPACK_ztgevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* S, nvpl_int_t const* lds,
    nvpl_dcomplex_t const* P, nvpl_int_t const* ldp,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztgevc(...) NVPL_LAPACK_ztgevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztgevc(...) NVPL_LAPACK_ztgevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctgexc NVPL_LAPACK_GLOBAL(ctgexc,CTGEXC)
void NVPL_LAPACK_ctgexc(
    nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t const* ifst, nvpl_int_t* ilst,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtgexc NVPL_LAPACK_GLOBAL(dtgexc,DTGEXC)
void NVPL_LAPACK_dtgexc(
    nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* Q, nvpl_int_t const* ldq,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t* ifst, nvpl_int_t* ilst,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stgexc NVPL_LAPACK_GLOBAL(stgexc,STGEXC)
void NVPL_LAPACK_stgexc(
    nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* Q, nvpl_int_t const* ldq,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t* ifst, nvpl_int_t* ilst,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztgexc NVPL_LAPACK_GLOBAL(ztgexc,ZTGEXC)
void NVPL_LAPACK_ztgexc(
    nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t const* ifst, nvpl_int_t* ilst,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ctgsen NVPL_LAPACK_GLOBAL(ctgsen,CTGSEN)
void NVPL_LAPACK_ctgsen(
    nvpl_int_t const* ijob, nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_lapack_logical const* select, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* m,
    float* pl,
    float* pr,
    float* DIF,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtgsen NVPL_LAPACK_GLOBAL(dtgsen,DTGSEN)
void NVPL_LAPACK_dtgsen(
    nvpl_int_t const* ijob, nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_lapack_logical const* select, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alphar,
    double* alphai,
    double* beta,
    double* Q, nvpl_int_t const* ldq,
    double* Z, nvpl_int_t const* ldz, nvpl_int_t* m,
    double* pl,
    double* pr,
    double* DIF,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stgsen NVPL_LAPACK_GLOBAL(stgsen,STGSEN)
void NVPL_LAPACK_stgsen(
    nvpl_int_t const* ijob, nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_lapack_logical const* select, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alphar,
    float* alphai,
    float* beta,
    float* Q, nvpl_int_t const* ldq,
    float* Z, nvpl_int_t const* ldz, nvpl_int_t* m,
    float* pl,
    float* pr,
    float* DIF,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztgsen NVPL_LAPACK_GLOBAL(ztgsen,ZTGSEN)
void NVPL_LAPACK_ztgsen(
    nvpl_int_t const* ijob, nvpl_lapack_logical const* wantq, nvpl_lapack_logical const* wantz, nvpl_lapack_logical const* select, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* Z, nvpl_int_t const* ldz, nvpl_int_t* m,
    double* pl,
    double* pr,
    double* DIF,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ctgsja_base NVPL_LAPACK_GLOBAL(ctgsja,CTGSJA)
void NVPL_LAPACK_ctgsja_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    float const* tola,
    float const* tolb,
    float* alpha,
    float* beta,
    nvpl_scomplex_t* U, nvpl_int_t const* ldu,
    nvpl_scomplex_t* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* work, nvpl_int_t* ncycle,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctgsja(...) NVPL_LAPACK_ctgsja_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctgsja(...) NVPL_LAPACK_ctgsja_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtgsja_base NVPL_LAPACK_GLOBAL(dtgsja,DTGSJA)
void NVPL_LAPACK_dtgsja_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double const* tola,
    double const* tolb,
    double* alpha,
    double* beta,
    double* U, nvpl_int_t const* ldu,
    double* V, nvpl_int_t const* ldv,
    double* Q, nvpl_int_t const* ldq,
    double* work, nvpl_int_t* ncycle,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtgsja(...) NVPL_LAPACK_dtgsja_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtgsja(...) NVPL_LAPACK_dtgsja_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stgsja_base NVPL_LAPACK_GLOBAL(stgsja,STGSJA)
void NVPL_LAPACK_stgsja_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float const* tola,
    float const* tolb,
    float* alpha,
    float* beta,
    float* U, nvpl_int_t const* ldu,
    float* V, nvpl_int_t const* ldv,
    float* Q, nvpl_int_t const* ldq,
    float* work, nvpl_int_t* ncycle,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stgsja(...) NVPL_LAPACK_stgsja_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stgsja(...) NVPL_LAPACK_stgsja_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztgsja_base NVPL_LAPACK_GLOBAL(ztgsja,ZTGSJA)
void NVPL_LAPACK_ztgsja_base(
    char const* jobu, char const* jobv, char const* jobq,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    double const* tola,
    double const* tolb,
    double* alpha,
    double* beta,
    nvpl_dcomplex_t* U, nvpl_int_t const* ldu,
    nvpl_dcomplex_t* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* work, nvpl_int_t* ncycle,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztgsja(...) NVPL_LAPACK_ztgsja_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztgsja(...) NVPL_LAPACK_ztgsja_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctgsna_base NVPL_LAPACK_GLOBAL(ctgsna,CTGSNA)
void NVPL_LAPACK_ctgsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t const* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t const* VR, nvpl_int_t const* ldvr,
    float* S,
    float* DIF, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctgsna(...) NVPL_LAPACK_ctgsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctgsna(...) NVPL_LAPACK_ctgsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtgsna_base NVPL_LAPACK_GLOBAL(dtgsna,DTGSNA)
void NVPL_LAPACK_dtgsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    double const* VL, nvpl_int_t const* ldvl,
    double const* VR, nvpl_int_t const* ldvr,
    double* S,
    double* DIF, nvpl_int_t const* mm, nvpl_int_t* m,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtgsna(...) NVPL_LAPACK_dtgsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtgsna(...) NVPL_LAPACK_dtgsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stgsna_base NVPL_LAPACK_GLOBAL(stgsna,STGSNA)
void NVPL_LAPACK_stgsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    float const* VL, nvpl_int_t const* ldvl,
    float const* VR, nvpl_int_t const* ldvr,
    float* S,
    float* DIF, nvpl_int_t const* mm, nvpl_int_t* m,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stgsna(...) NVPL_LAPACK_stgsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stgsna(...) NVPL_LAPACK_stgsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztgsna_base NVPL_LAPACK_GLOBAL(ztgsna,ZTGSNA)
void NVPL_LAPACK_ztgsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t const* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t const* VR, nvpl_int_t const* ldvr,
    double* S,
    double* DIF, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztgsna(...) NVPL_LAPACK_ztgsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztgsna(...) NVPL_LAPACK_ztgsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctgsyl_base NVPL_LAPACK_GLOBAL(ctgsyl,CTGSYL)
void NVPL_LAPACK_ctgsyl_base(
    char const* trans,
    nvpl_int_t const* ijob, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t const* D, nvpl_int_t const* ldd,
    nvpl_scomplex_t const* E, nvpl_int_t const* lde,
    nvpl_scomplex_t* F, nvpl_int_t const* ldf,
    float* dif,
    float* scale,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctgsyl(...) NVPL_LAPACK_ctgsyl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ctgsyl(...) NVPL_LAPACK_ctgsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtgsyl_base NVPL_LAPACK_GLOBAL(dtgsyl,DTGSYL)
void NVPL_LAPACK_dtgsyl_base(
    char const* trans,
    nvpl_int_t const* ijob, nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    double* C, nvpl_int_t const* ldc,
    double const* D, nvpl_int_t const* ldd,
    double const* E, nvpl_int_t const* lde,
    double* F, nvpl_int_t const* ldf,
    double* dif,
    double* scale,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtgsyl(...) NVPL_LAPACK_dtgsyl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dtgsyl(...) NVPL_LAPACK_dtgsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stgsyl_base NVPL_LAPACK_GLOBAL(stgsyl,STGSYL)
void NVPL_LAPACK_stgsyl_base(
    char const* trans,
    nvpl_int_t const* ijob, nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    float* C, nvpl_int_t const* ldc,
    float const* D, nvpl_int_t const* ldd,
    float const* E, nvpl_int_t const* lde,
    float* F, nvpl_int_t const* ldf,
    float* dif,
    float* scale,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stgsyl(...) NVPL_LAPACK_stgsyl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_stgsyl(...) NVPL_LAPACK_stgsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztgsyl_base NVPL_LAPACK_GLOBAL(ztgsyl,ZTGSYL)
void NVPL_LAPACK_ztgsyl_base(
    char const* trans,
    nvpl_int_t const* ijob, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t const* D, nvpl_int_t const* ldd,
    nvpl_dcomplex_t const* E, nvpl_int_t const* lde,
    nvpl_dcomplex_t* F, nvpl_int_t const* ldf,
    double* dif,
    double* scale,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztgsyl(...) NVPL_LAPACK_ztgsyl_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ztgsyl(...) NVPL_LAPACK_ztgsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctpcon_base NVPL_LAPACK_GLOBAL(ctpcon,CTPCON)
void NVPL_LAPACK_ctpcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctpcon(...) NVPL_LAPACK_ctpcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctpcon(...) NVPL_LAPACK_ctpcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtpcon_base NVPL_LAPACK_GLOBAL(dtpcon,DTPCON)
void NVPL_LAPACK_dtpcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    double const* AP,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtpcon(...) NVPL_LAPACK_dtpcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtpcon(...) NVPL_LAPACK_dtpcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stpcon_base NVPL_LAPACK_GLOBAL(stpcon,STPCON)
void NVPL_LAPACK_stpcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    float const* AP,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stpcon(...) NVPL_LAPACK_stpcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stpcon(...) NVPL_LAPACK_stpcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztpcon_base NVPL_LAPACK_GLOBAL(ztpcon,ZTPCON)
void NVPL_LAPACK_ztpcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztpcon(...) NVPL_LAPACK_ztpcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztpcon(...) NVPL_LAPACK_ztpcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctplqt NVPL_LAPACK_GLOBAL(ctplqt,CTPLQT)
void NVPL_LAPACK_ctplqt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* mb,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtplqt NVPL_LAPACK_GLOBAL(dtplqt,DTPLQT)
void NVPL_LAPACK_dtplqt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* mb,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* T, nvpl_int_t const* ldt,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stplqt NVPL_LAPACK_GLOBAL(stplqt,STPLQT)
void NVPL_LAPACK_stplqt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* mb,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* T, nvpl_int_t const* ldt,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztplqt NVPL_LAPACK_GLOBAL(ztplqt,ZTPLQT)
void NVPL_LAPACK_ztplqt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* mb,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ctplqt2 NVPL_LAPACK_GLOBAL(ctplqt2,CTPLQT2)
void NVPL_LAPACK_ctplqt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtplqt2 NVPL_LAPACK_GLOBAL(dtplqt2,DTPLQT2)
void NVPL_LAPACK_dtplqt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stplqt2 NVPL_LAPACK_GLOBAL(stplqt2,STPLQT2)
void NVPL_LAPACK_stplqt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztplqt2 NVPL_LAPACK_GLOBAL(ztplqt2,ZTPLQT2)
void NVPL_LAPACK_ztplqt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ctpmlqt_base NVPL_LAPACK_GLOBAL(ctpmlqt,CTPMLQT)
void NVPL_LAPACK_ctpmlqt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* mb,
    nvpl_scomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctpmlqt(...) NVPL_LAPACK_ctpmlqt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctpmlqt(...) NVPL_LAPACK_ctpmlqt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtpmlqt_base NVPL_LAPACK_GLOBAL(dtpmlqt,DTPMLQT)
void NVPL_LAPACK_dtpmlqt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* mb,
    double const* V, nvpl_int_t const* ldv,
    double const* T, nvpl_int_t const* ldt,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtpmlqt(...) NVPL_LAPACK_dtpmlqt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtpmlqt(...) NVPL_LAPACK_dtpmlqt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stpmlqt_base NVPL_LAPACK_GLOBAL(stpmlqt,STPMLQT)
void NVPL_LAPACK_stpmlqt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* mb,
    float const* V, nvpl_int_t const* ldv,
    float const* T, nvpl_int_t const* ldt,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stpmlqt(...) NVPL_LAPACK_stpmlqt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stpmlqt(...) NVPL_LAPACK_stpmlqt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztpmlqt_base NVPL_LAPACK_GLOBAL(ztpmlqt,ZTPMLQT)
void NVPL_LAPACK_ztpmlqt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* mb,
    nvpl_dcomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztpmlqt(...) NVPL_LAPACK_ztpmlqt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztpmlqt(...) NVPL_LAPACK_ztpmlqt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctpmqrt_base NVPL_LAPACK_GLOBAL(ctpmqrt,CTPMQRT)
void NVPL_LAPACK_ctpmqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* nb,
    nvpl_scomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctpmqrt(...) NVPL_LAPACK_ctpmqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctpmqrt(...) NVPL_LAPACK_ctpmqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtpmqrt_base NVPL_LAPACK_GLOBAL(dtpmqrt,DTPMQRT)
void NVPL_LAPACK_dtpmqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* nb,
    double const* V, nvpl_int_t const* ldv,
    double const* T, nvpl_int_t const* ldt,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtpmqrt(...) NVPL_LAPACK_dtpmqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtpmqrt(...) NVPL_LAPACK_dtpmqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stpmqrt_base NVPL_LAPACK_GLOBAL(stpmqrt,STPMQRT)
void NVPL_LAPACK_stpmqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* nb,
    float const* V, nvpl_int_t const* ldv,
    float const* T, nvpl_int_t const* ldt,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stpmqrt(...) NVPL_LAPACK_stpmqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stpmqrt(...) NVPL_LAPACK_stpmqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztpmqrt_base NVPL_LAPACK_GLOBAL(ztpmqrt,ZTPMQRT)
void NVPL_LAPACK_ztpmqrt_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l, nvpl_int_t const* nb,
    nvpl_dcomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztpmqrt(...) NVPL_LAPACK_ztpmqrt_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztpmqrt(...) NVPL_LAPACK_ztpmqrt_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctpqrt NVPL_LAPACK_GLOBAL(ctpqrt,CTPQRT)
void NVPL_LAPACK_ctpqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* nb,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtpqrt NVPL_LAPACK_GLOBAL(dtpqrt,DTPQRT)
void NVPL_LAPACK_dtpqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* nb,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* T, nvpl_int_t const* ldt,
    double* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stpqrt NVPL_LAPACK_GLOBAL(stpqrt,STPQRT)
void NVPL_LAPACK_stpqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* nb,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* T, nvpl_int_t const* ldt,
    float* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztpqrt NVPL_LAPACK_GLOBAL(ztpqrt,ZTPQRT)
void NVPL_LAPACK_ztpqrt(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l, nvpl_int_t const* nb,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ctpqrt2 NVPL_LAPACK_GLOBAL(ctpqrt2,CTPQRT2)
void NVPL_LAPACK_ctpqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtpqrt2 NVPL_LAPACK_GLOBAL(dtpqrt2,DTPQRT2)
void NVPL_LAPACK_dtpqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stpqrt2 NVPL_LAPACK_GLOBAL(stpqrt2,STPQRT2)
void NVPL_LAPACK_stpqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztpqrt2 NVPL_LAPACK_GLOBAL(ztpqrt2,ZTPQRT2)
void NVPL_LAPACK_ztpqrt2(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* l,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ctprfb_base NVPL_LAPACK_GLOBAL(ctprfb,CTPRFB)
void NVPL_LAPACK_ctprfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    nvpl_scomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctprfb(...) NVPL_LAPACK_ctprfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctprfb(...) NVPL_LAPACK_ctprfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtprfb_base NVPL_LAPACK_GLOBAL(dtprfb,DTPRFB)
void NVPL_LAPACK_dtprfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    double const* V, nvpl_int_t const* ldv,
    double const* T, nvpl_int_t const* ldt,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtprfb(...) NVPL_LAPACK_dtprfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtprfb(...) NVPL_LAPACK_dtprfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stprfb_base NVPL_LAPACK_GLOBAL(stprfb,STPRFB)
void NVPL_LAPACK_stprfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    float const* V, nvpl_int_t const* ldv,
    float const* T, nvpl_int_t const* ldt,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stprfb(...) NVPL_LAPACK_stprfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_stprfb(...) NVPL_LAPACK_stprfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztprfb_base NVPL_LAPACK_GLOBAL(ztprfb,ZTPRFB)
void NVPL_LAPACK_ztprfb_base(
    char const* side, char const* trans, char const* direct, char const* storev,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    nvpl_dcomplex_t const* V, nvpl_int_t const* ldv,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* work, nvpl_int_t const* ldwork
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztprfb(...) NVPL_LAPACK_ztprfb_base(__VA_ARGS__, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztprfb(...) NVPL_LAPACK_ztprfb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctprfs_base NVPL_LAPACK_GLOBAL(ctprfs,CTPRFS)
void NVPL_LAPACK_ctprfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t const* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctprfs(...) NVPL_LAPACK_ctprfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctprfs(...) NVPL_LAPACK_ctprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtprfs_base NVPL_LAPACK_GLOBAL(dtprfs,DTPRFS)
void NVPL_LAPACK_dtprfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP,
    double const* B, nvpl_int_t const* ldb,
    double const* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtprfs(...) NVPL_LAPACK_dtprfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtprfs(...) NVPL_LAPACK_dtprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stprfs_base NVPL_LAPACK_GLOBAL(stprfs,STPRFS)
void NVPL_LAPACK_stprfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP,
    float const* B, nvpl_int_t const* ldb,
    float const* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stprfs(...) NVPL_LAPACK_stprfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stprfs(...) NVPL_LAPACK_stprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztprfs_base NVPL_LAPACK_GLOBAL(ztprfs,ZTPRFS)
void NVPL_LAPACK_ztprfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t const* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztprfs(...) NVPL_LAPACK_ztprfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztprfs(...) NVPL_LAPACK_ztprfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctptri_base NVPL_LAPACK_GLOBAL(ctptri,CTPTRI)
void NVPL_LAPACK_ctptri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_scomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctptri(...) NVPL_LAPACK_ctptri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctptri(...) NVPL_LAPACK_ctptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtptri_base NVPL_LAPACK_GLOBAL(dtptri,DTPTRI)
void NVPL_LAPACK_dtptri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    double* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtptri(...) NVPL_LAPACK_dtptri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtptri(...) NVPL_LAPACK_dtptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stptri_base NVPL_LAPACK_GLOBAL(stptri,STPTRI)
void NVPL_LAPACK_stptri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    float* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stptri(...) NVPL_LAPACK_stptri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stptri(...) NVPL_LAPACK_stptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztptri_base NVPL_LAPACK_GLOBAL(ztptri,ZTPTRI)
void NVPL_LAPACK_ztptri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztptri(...) NVPL_LAPACK_ztptri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztptri(...) NVPL_LAPACK_ztptri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctptrs_base NVPL_LAPACK_GLOBAL(ctptrs,CTPTRS)
void NVPL_LAPACK_ctptrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctptrs(...) NVPL_LAPACK_ctptrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctptrs(...) NVPL_LAPACK_ctptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtptrs_base NVPL_LAPACK_GLOBAL(dtptrs,DTPTRS)
void NVPL_LAPACK_dtptrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* AP,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtptrs(...) NVPL_LAPACK_dtptrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtptrs(...) NVPL_LAPACK_dtptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stptrs_base NVPL_LAPACK_GLOBAL(stptrs,STPTRS)
void NVPL_LAPACK_stptrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* AP,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stptrs(...) NVPL_LAPACK_stptrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_stptrs(...) NVPL_LAPACK_stptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztptrs_base NVPL_LAPACK_GLOBAL(ztptrs,ZTPTRS)
void NVPL_LAPACK_ztptrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztptrs(...) NVPL_LAPACK_ztptrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztptrs(...) NVPL_LAPACK_ztptrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctpttf_base NVPL_LAPACK_GLOBAL(ctpttf,CTPTTF)
void NVPL_LAPACK_ctpttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctpttf(...) NVPL_LAPACK_ctpttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctpttf(...) NVPL_LAPACK_ctpttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtpttf_base NVPL_LAPACK_GLOBAL(dtpttf,DTPTTF)
void NVPL_LAPACK_dtpttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    double const* AP,
    double* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtpttf(...) NVPL_LAPACK_dtpttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtpttf(...) NVPL_LAPACK_dtpttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stpttf_base NVPL_LAPACK_GLOBAL(stpttf,STPTTF)
void NVPL_LAPACK_stpttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    float const* AP,
    float* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stpttf(...) NVPL_LAPACK_stpttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_stpttf(...) NVPL_LAPACK_stpttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztpttf_base NVPL_LAPACK_GLOBAL(ztpttf,ZTPTTF)
void NVPL_LAPACK_ztpttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztpttf(...) NVPL_LAPACK_ztpttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztpttf(...) NVPL_LAPACK_ztpttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctpttr_base NVPL_LAPACK_GLOBAL(ctpttr,CTPTTR)
void NVPL_LAPACK_ctpttr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctpttr(...) NVPL_LAPACK_ctpttr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ctpttr(...) NVPL_LAPACK_ctpttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtpttr_base NVPL_LAPACK_GLOBAL(dtpttr,DTPTTR)
void NVPL_LAPACK_dtpttr_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* AP,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtpttr(...) NVPL_LAPACK_dtpttr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dtpttr(...) NVPL_LAPACK_dtpttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_stpttr_base NVPL_LAPACK_GLOBAL(stpttr,STPTTR)
void NVPL_LAPACK_stpttr_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* AP,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_stpttr(...) NVPL_LAPACK_stpttr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_stpttr(...) NVPL_LAPACK_stpttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztpttr_base NVPL_LAPACK_GLOBAL(ztpttr,ZTPTTR)
void NVPL_LAPACK_ztpttr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztpttr(...) NVPL_LAPACK_ztpttr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ztpttr(...) NVPL_LAPACK_ztpttr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrcon_base NVPL_LAPACK_GLOBAL(ctrcon,CTRCON)
void NVPL_LAPACK_ctrcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    float* rcond,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrcon(...) NVPL_LAPACK_ctrcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctrcon(...) NVPL_LAPACK_ctrcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrcon_base NVPL_LAPACK_GLOBAL(dtrcon,DTRCON)
void NVPL_LAPACK_dtrcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* rcond,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrcon(...) NVPL_LAPACK_dtrcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtrcon(...) NVPL_LAPACK_dtrcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strcon_base NVPL_LAPACK_GLOBAL(strcon,STRCON)
void NVPL_LAPACK_strcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* rcond,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strcon(...) NVPL_LAPACK_strcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_strcon(...) NVPL_LAPACK_strcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrcon_base NVPL_LAPACK_GLOBAL(ztrcon,ZTRCON)
void NVPL_LAPACK_ztrcon_base(
    char const* norm, char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    double* rcond,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrcon(...) NVPL_LAPACK_ztrcon_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztrcon(...) NVPL_LAPACK_ztrcon_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrevc_base NVPL_LAPACK_GLOBAL(ctrevc,CTREVC)
void NVPL_LAPACK_ctrevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrevc(...) NVPL_LAPACK_ctrevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrevc(...) NVPL_LAPACK_ctrevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrevc_base NVPL_LAPACK_GLOBAL(dtrevc,DTREVC)
void NVPL_LAPACK_dtrevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical* select,
    nvpl_int_t const* n,
    double const* T, nvpl_int_t const* ldt,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrevc(...) NVPL_LAPACK_dtrevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrevc(...) NVPL_LAPACK_dtrevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strevc_base NVPL_LAPACK_GLOBAL(strevc,STREVC)
void NVPL_LAPACK_strevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical* select,
    nvpl_int_t const* n,
    float const* T, nvpl_int_t const* ldt,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strevc(...) NVPL_LAPACK_strevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strevc(...) NVPL_LAPACK_strevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrevc_base NVPL_LAPACK_GLOBAL(ztrevc,ZTREVC)
void NVPL_LAPACK_ztrevc_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrevc(...) NVPL_LAPACK_ztrevc_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrevc(...) NVPL_LAPACK_ztrevc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrevc3_base NVPL_LAPACK_GLOBAL(ctrevc3,CTREVC3)
void NVPL_LAPACK_ctrevc3_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrevc3(...) NVPL_LAPACK_ctrevc3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrevc3(...) NVPL_LAPACK_ctrevc3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrevc3_base NVPL_LAPACK_GLOBAL(dtrevc3,DTREVC3)
void NVPL_LAPACK_dtrevc3_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical* select,
    nvpl_int_t const* n,
    double const* T, nvpl_int_t const* ldt,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrevc3(...) NVPL_LAPACK_dtrevc3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrevc3(...) NVPL_LAPACK_dtrevc3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strevc3_base NVPL_LAPACK_GLOBAL(strevc3,STREVC3)
void NVPL_LAPACK_strevc3_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical* select,
    nvpl_int_t const* n,
    float const* T, nvpl_int_t const* ldt,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strevc3(...) NVPL_LAPACK_strevc3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strevc3(...) NVPL_LAPACK_strevc3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrevc3_base NVPL_LAPACK_GLOBAL(ztrevc3,ZTREVC3)
void NVPL_LAPACK_ztrevc3_base(
    char const* side, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrevc3(...) NVPL_LAPACK_ztrevc3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrevc3(...) NVPL_LAPACK_ztrevc3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrexc_base NVPL_LAPACK_GLOBAL(ctrexc,CTREXC)
void NVPL_LAPACK_ctrexc_base(
    char const* compq,
    nvpl_int_t const* n,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq, nvpl_int_t const* ifst, nvpl_int_t const* ilst,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrexc(...) NVPL_LAPACK_ctrexc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ctrexc(...) NVPL_LAPACK_ctrexc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrexc_base NVPL_LAPACK_GLOBAL(dtrexc,DTREXC)
void NVPL_LAPACK_dtrexc_base(
    char const* compq,
    nvpl_int_t const* n,
    double* T, nvpl_int_t const* ldt,
    double* Q, nvpl_int_t const* ldq, nvpl_int_t* ifst, nvpl_int_t* ilst,
    double* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrexc(...) NVPL_LAPACK_dtrexc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dtrexc(...) NVPL_LAPACK_dtrexc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strexc_base NVPL_LAPACK_GLOBAL(strexc,STREXC)
void NVPL_LAPACK_strexc_base(
    char const* compq,
    nvpl_int_t const* n,
    float* T, nvpl_int_t const* ldt,
    float* Q, nvpl_int_t const* ldq, nvpl_int_t* ifst, nvpl_int_t* ilst,
    float* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strexc(...) NVPL_LAPACK_strexc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_strexc(...) NVPL_LAPACK_strexc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrexc_base NVPL_LAPACK_GLOBAL(ztrexc,ZTREXC)
void NVPL_LAPACK_ztrexc_base(
    char const* compq,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq, nvpl_int_t const* ifst, nvpl_int_t const* ilst,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrexc(...) NVPL_LAPACK_ztrexc_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ztrexc(...) NVPL_LAPACK_ztrexc_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrrfs_base NVPL_LAPACK_GLOBAL(ctrrfs,CTRRFS)
void NVPL_LAPACK_ctrrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t const* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrrfs(...) NVPL_LAPACK_ctrrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctrrfs(...) NVPL_LAPACK_ctrrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrrfs_base NVPL_LAPACK_GLOBAL(dtrrfs,DTRRFS)
void NVPL_LAPACK_dtrrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    double const* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    double* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrrfs(...) NVPL_LAPACK_dtrrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtrrfs(...) NVPL_LAPACK_dtrrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strrfs_base NVPL_LAPACK_GLOBAL(strrfs,STRRFS)
void NVPL_LAPACK_strrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    float const* X, nvpl_int_t const* ldx,
    float* ferr,
    float* berr,
    float* work,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strrfs(...) NVPL_LAPACK_strrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_strrfs(...) NVPL_LAPACK_strrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrrfs_base NVPL_LAPACK_GLOBAL(ztrrfs,ZTRRFS)
void NVPL_LAPACK_ztrrfs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t const* X, nvpl_int_t const* ldx,
    double* ferr,
    double* berr,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrrfs(...) NVPL_LAPACK_ztrrfs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztrrfs(...) NVPL_LAPACK_ztrrfs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrsen_base NVPL_LAPACK_GLOBAL(ctrsen,CTRSEN)
void NVPL_LAPACK_ctrsen_base(
    char const* job, char const* compq,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* W, nvpl_int_t* m,
    float* s,
    float* sep,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrsen(...) NVPL_LAPACK_ctrsen_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrsen(...) NVPL_LAPACK_ctrsen_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrsen_base NVPL_LAPACK_GLOBAL(dtrsen,DTRSEN)
void NVPL_LAPACK_dtrsen_base(
    char const* job, char const* compq,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    double* T, nvpl_int_t const* ldt,
    double* Q, nvpl_int_t const* ldq,
    double* WR,
    double* WI, nvpl_int_t* m,
    double* s,
    double* sep,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrsen(...) NVPL_LAPACK_dtrsen_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrsen(...) NVPL_LAPACK_dtrsen_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strsen_base NVPL_LAPACK_GLOBAL(strsen,STRSEN)
void NVPL_LAPACK_strsen_base(
    char const* job, char const* compq,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    float* T, nvpl_int_t const* ldt,
    float* Q, nvpl_int_t const* ldq,
    float* WR,
    float* WI, nvpl_int_t* m,
    float* s,
    float* sep,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strsen(...) NVPL_LAPACK_strsen_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strsen(...) NVPL_LAPACK_strsen_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrsen_base NVPL_LAPACK_GLOBAL(ztrsen,ZTRSEN)
void NVPL_LAPACK_ztrsen_base(
    char const* job, char const* compq,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* W, nvpl_int_t* m,
    double* s,
    double* sep,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrsen(...) NVPL_LAPACK_ztrsen_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrsen(...) NVPL_LAPACK_ztrsen_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrsna_base NVPL_LAPACK_GLOBAL(ctrsna,CTRSNA)
void NVPL_LAPACK_ctrsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t const* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t const* VR, nvpl_int_t const* ldvr,
    float* S,
    float* SEP, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_scomplex_t* work, nvpl_int_t const* ldwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrsna(...) NVPL_LAPACK_ctrsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrsna(...) NVPL_LAPACK_ctrsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrsna_base NVPL_LAPACK_GLOBAL(dtrsna,DTRSNA)
void NVPL_LAPACK_dtrsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    double const* T, nvpl_int_t const* ldt,
    double const* VL, nvpl_int_t const* ldvl,
    double const* VR, nvpl_int_t const* ldvr,
    double* S,
    double* SEP, nvpl_int_t const* mm, nvpl_int_t* m,
    double* work, nvpl_int_t const* ldwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrsna(...) NVPL_LAPACK_dtrsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrsna(...) NVPL_LAPACK_dtrsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strsna_base NVPL_LAPACK_GLOBAL(strsna,STRSNA)
void NVPL_LAPACK_strsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    float const* T, nvpl_int_t const* ldt,
    float const* VL, nvpl_int_t const* ldvl,
    float const* VR, nvpl_int_t const* ldvr,
    float* S,
    float* SEP, nvpl_int_t const* mm, nvpl_int_t* m,
    float* work, nvpl_int_t const* ldwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strsna(...) NVPL_LAPACK_strsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strsna(...) NVPL_LAPACK_strsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrsna_base NVPL_LAPACK_GLOBAL(ztrsna,ZTRSNA)
void NVPL_LAPACK_ztrsna_base(
    char const* job, char const* howmny,
    nvpl_lapack_logical const* select,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t const* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t const* VR, nvpl_int_t const* ldvr,
    double* S,
    double* SEP, nvpl_int_t const* mm, nvpl_int_t* m,
    nvpl_dcomplex_t* work, nvpl_int_t const* ldwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrsna(...) NVPL_LAPACK_ztrsna_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrsna(...) NVPL_LAPACK_ztrsna_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrsyl_base NVPL_LAPACK_GLOBAL(ctrsyl,CTRSYL)
void NVPL_LAPACK_ctrsyl_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    float* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrsyl(...) NVPL_LAPACK_ctrsyl_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrsyl(...) NVPL_LAPACK_ctrsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrsyl_base NVPL_LAPACK_GLOBAL(dtrsyl,DTRSYL)
void NVPL_LAPACK_dtrsyl_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    double* C, nvpl_int_t const* ldc,
    double* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrsyl(...) NVPL_LAPACK_dtrsyl_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrsyl(...) NVPL_LAPACK_dtrsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strsyl_base NVPL_LAPACK_GLOBAL(strsyl,STRSYL)
void NVPL_LAPACK_strsyl_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    float* C, nvpl_int_t const* ldc,
    float* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strsyl(...) NVPL_LAPACK_strsyl_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strsyl(...) NVPL_LAPACK_strsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrsyl_base NVPL_LAPACK_GLOBAL(ztrsyl,ZTRSYL)
void NVPL_LAPACK_ztrsyl_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    double* scale,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrsyl(...) NVPL_LAPACK_ztrsyl_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrsyl(...) NVPL_LAPACK_ztrsyl_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrsyl3_base NVPL_LAPACK_GLOBAL(ctrsyl3,CTRSYL3)
void NVPL_LAPACK_ctrsyl3_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc, float* scale,
    float* swork, nvpl_int_t const *ldswork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrsyl3(...) NVPL_LAPACK_ctrsyl3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrsyl3(...) NVPL_LAPACK_ctrsyl3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrsyl3_base NVPL_LAPACK_GLOBAL(dtrsyl3,DTRSYL3)
void NVPL_LAPACK_dtrsyl3_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double const* B, nvpl_int_t const* ldb,
    double* C, nvpl_int_t const* ldc, double* scale,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    double* swork, nvpl_int_t const *ldswork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrsyl3(...) NVPL_LAPACK_dtrsyl3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrsyl3(...) NVPL_LAPACK_dtrsyl3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strsyl3_base NVPL_LAPACK_GLOBAL(strsyl3,STRSYL3)
void NVPL_LAPACK_strsyl3_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float const* B, nvpl_int_t const* ldb,
    float* C, nvpl_int_t const* ldc, float* scale,
    nvpl_int_t* iwork, nvpl_int_t const* liwork,
    float* swork, nvpl_int_t const *ldswork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strsyl3(...) NVPL_LAPACK_strsyl3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strsyl3(...) NVPL_LAPACK_strsyl3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrsyl3_base NVPL_LAPACK_GLOBAL(ztrsyl3,ZTRSYL3)
void NVPL_LAPACK_ztrsyl3_base(
    char const* trana, char const* tranb,
    nvpl_int_t const* isgn, nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc, double* scale,
    double* swork, nvpl_int_t const *ldswork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrsyl3(...) NVPL_LAPACK_ztrsyl3_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrsyl3(...) NVPL_LAPACK_ztrsyl3_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrtri_base NVPL_LAPACK_GLOBAL(ctrtri,CTRTRI)
void NVPL_LAPACK_ctrtri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrtri(...) NVPL_LAPACK_ctrtri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrtri(...) NVPL_LAPACK_ctrtri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrtri_base NVPL_LAPACK_GLOBAL(dtrtri,DTRTRI)
void NVPL_LAPACK_dtrtri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrtri(...) NVPL_LAPACK_dtrtri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrtri(...) NVPL_LAPACK_dtrtri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strtri_base NVPL_LAPACK_GLOBAL(strtri,STRTRI)
void NVPL_LAPACK_strtri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strtri(...) NVPL_LAPACK_strtri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strtri(...) NVPL_LAPACK_strtri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrtri_base NVPL_LAPACK_GLOBAL(ztrtri,ZTRTRI)
void NVPL_LAPACK_ztrtri_base(
    char const* uplo, char const* diag,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrtri(...) NVPL_LAPACK_ztrtri_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrtri(...) NVPL_LAPACK_ztrtri_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrtrs_base NVPL_LAPACK_GLOBAL(ctrtrs,CTRTRS)
void NVPL_LAPACK_ctrtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrtrs(...) NVPL_LAPACK_ctrtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ctrtrs(...) NVPL_LAPACK_ctrtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrtrs_base NVPL_LAPACK_GLOBAL(dtrtrs,DTRTRS)
void NVPL_LAPACK_dtrtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double const* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrtrs(...) NVPL_LAPACK_dtrtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_dtrtrs(...) NVPL_LAPACK_dtrtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strtrs_base NVPL_LAPACK_GLOBAL(strtrs,STRTRS)
void NVPL_LAPACK_strtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float const* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strtrs(...) NVPL_LAPACK_strtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_strtrs(...) NVPL_LAPACK_strtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrtrs_base NVPL_LAPACK_GLOBAL(ztrtrs,ZTRTRS)
void NVPL_LAPACK_ztrtrs_base(
    char const* uplo, char const* trans, char const* diag,
    nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrtrs(...) NVPL_LAPACK_ztrtrs_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_ztrtrs(...) NVPL_LAPACK_ztrtrs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrttf_base NVPL_LAPACK_GLOBAL(ctrttf,CTRTTF)
void NVPL_LAPACK_ctrttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrttf(...) NVPL_LAPACK_ctrttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ctrttf(...) NVPL_LAPACK_ctrttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrttf_base NVPL_LAPACK_GLOBAL(dtrttf,DTRTTF)
void NVPL_LAPACK_dtrttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrttf(...) NVPL_LAPACK_dtrttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dtrttf(...) NVPL_LAPACK_dtrttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strttf_base NVPL_LAPACK_GLOBAL(strttf,STRTTF)
void NVPL_LAPACK_strttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strttf(...) NVPL_LAPACK_strttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_strttf(...) NVPL_LAPACK_strttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrttf_base NVPL_LAPACK_GLOBAL(ztrttf,ZTRTTF)
void NVPL_LAPACK_ztrttf_base(
    char const* transr, char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* ARF,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrttf(...) NVPL_LAPACK_ztrttf_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_ztrttf(...) NVPL_LAPACK_ztrttf_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctrttp_base NVPL_LAPACK_GLOBAL(ctrttp,CTRTTP)
void NVPL_LAPACK_ctrttp_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ctrttp(...) NVPL_LAPACK_ctrttp_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ctrttp(...) NVPL_LAPACK_ctrttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dtrttp_base NVPL_LAPACK_GLOBAL(dtrttp,DTRTTP)
void NVPL_LAPACK_dtrttp_base(
    char const* uplo,
    nvpl_int_t const* n,
    double const* A, nvpl_int_t const* lda,
    double* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dtrttp(...) NVPL_LAPACK_dtrttp_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dtrttp(...) NVPL_LAPACK_dtrttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_strttp_base NVPL_LAPACK_GLOBAL(strttp,STRTTP)
void NVPL_LAPACK_strttp_base(
    char const* uplo,
    nvpl_int_t const* n,
    float const* A, nvpl_int_t const* lda,
    float* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_strttp(...) NVPL_LAPACK_strttp_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_strttp(...) NVPL_LAPACK_strttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ztrttp_base NVPL_LAPACK_GLOBAL(ztrttp,ZTRTTP)
void NVPL_LAPACK_ztrttp_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* AP,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_ztrttp(...) NVPL_LAPACK_ztrttp_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_ztrttp(...) NVPL_LAPACK_ztrttp_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctzrzf NVPL_LAPACK_GLOBAL(ctzrzf,CTZRZF)
void NVPL_LAPACK_ctzrzf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_dtzrzf NVPL_LAPACK_GLOBAL(dtzrzf,DTZRZF)
void NVPL_LAPACK_dtzrzf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_stzrzf NVPL_LAPACK_GLOBAL(stzrzf,STZRZF)
void NVPL_LAPACK_stzrzf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_ztzrzf NVPL_LAPACK_GLOBAL(ztzrzf,ZTZRZF)
void NVPL_LAPACK_ztzrzf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cunbdb_base NVPL_LAPACK_GLOBAL(cunbdb,CUNBDB)
void NVPL_LAPACK_cunbdb_base(
    char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    nvpl_scomplex_t* X11, nvpl_int_t const* ldx11,
    nvpl_scomplex_t* X12, nvpl_int_t const* ldx12,
    nvpl_scomplex_t* X21, nvpl_int_t const* ldx21,
    nvpl_scomplex_t* X22, nvpl_int_t const* ldx22,
    float* theta,
    float* phi,
    nvpl_scomplex_t* TAUP1,
    nvpl_scomplex_t* TAUP2,
    nvpl_scomplex_t* TAUQ1,
    nvpl_scomplex_t* TAUQ2,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunbdb(...) NVPL_LAPACK_cunbdb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunbdb(...) NVPL_LAPACK_cunbdb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunbdb_base NVPL_LAPACK_GLOBAL(zunbdb,ZUNBDB)
void NVPL_LAPACK_zunbdb_base(
    char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    nvpl_dcomplex_t* X11, nvpl_int_t const* ldx11,
    nvpl_dcomplex_t* X12, nvpl_int_t const* ldx12,
    nvpl_dcomplex_t* X21, nvpl_int_t const* ldx21,
    nvpl_dcomplex_t* X22, nvpl_int_t const* ldx22,
    double* theta,
    double* phi,
    nvpl_dcomplex_t* TAUP1,
    nvpl_dcomplex_t* TAUP2,
    nvpl_dcomplex_t* TAUQ1,
    nvpl_dcomplex_t* TAUQ2,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunbdb(...) NVPL_LAPACK_zunbdb_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunbdb(...) NVPL_LAPACK_zunbdb_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cuncsd_base NVPL_LAPACK_GLOBAL(cuncsd,CUNCSD)
void NVPL_LAPACK_cuncsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    nvpl_scomplex_t* X11, nvpl_int_t const* ldx11,
    nvpl_scomplex_t* X12, nvpl_int_t const* ldx12,
    nvpl_scomplex_t* X21, nvpl_int_t const* ldx21,
    nvpl_scomplex_t* X22, nvpl_int_t const* ldx22,
    float* theta,
    nvpl_scomplex_t* U1, nvpl_int_t const* ldu1,
    nvpl_scomplex_t* U2, nvpl_int_t const* ldu2,
    nvpl_scomplex_t* V1T, nvpl_int_t const* ldv1t,
    nvpl_scomplex_t* V2T, nvpl_int_t const* ldv2t,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cuncsd(...) NVPL_LAPACK_cuncsd_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_cuncsd(...) NVPL_LAPACK_cuncsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zuncsd_base NVPL_LAPACK_GLOBAL(zuncsd,ZUNCSD)
void NVPL_LAPACK_zuncsd_base(
    char const* jobu1, char const* jobu2, char const* jobv1t, char const* jobv2t, char const* trans, char const* signs,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    nvpl_dcomplex_t* X11, nvpl_int_t const* ldx11,
    nvpl_dcomplex_t* X12, nvpl_int_t const* ldx12,
    nvpl_dcomplex_t* X21, nvpl_int_t const* ldx21,
    nvpl_dcomplex_t* X22, nvpl_int_t const* ldx22,
    double* theta,
    nvpl_dcomplex_t* U1, nvpl_int_t const* ldu1,
    nvpl_dcomplex_t* U2, nvpl_int_t const* ldu2,
    nvpl_dcomplex_t* V1T, nvpl_int_t const* ldv1t,
    nvpl_dcomplex_t* V2T, nvpl_int_t const* ldv2t,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t, size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zuncsd(...) NVPL_LAPACK_zuncsd_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
#else
    #define NVPL_LAPACK_zuncsd(...) NVPL_LAPACK_zuncsd_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cuncsd2by1_base NVPL_LAPACK_GLOBAL(cuncsd2by1,CUNCSD2BY1)
void NVPL_LAPACK_cuncsd2by1_base(
    char const* jobu1, char const* jobu2, char const* jobv1t,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    nvpl_scomplex_t* X11, nvpl_int_t const* ldx11,
    nvpl_scomplex_t* X21, nvpl_int_t const* ldx21,
    float* theta,
    nvpl_scomplex_t* U1, nvpl_int_t const* ldu1,
    nvpl_scomplex_t* U2, nvpl_int_t const* ldu2,
    nvpl_scomplex_t* V1T, nvpl_int_t const* ldv1t,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cuncsd2by1(...) NVPL_LAPACK_cuncsd2by1_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cuncsd2by1(...) NVPL_LAPACK_cuncsd2by1_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zuncsd2by1_base NVPL_LAPACK_GLOBAL(zuncsd2by1,ZUNCSD2BY1)
void NVPL_LAPACK_zuncsd2by1_base(
    char const* jobu1, char const* jobu2, char const* jobv1t,
    nvpl_int_t const* m, nvpl_int_t const* p, nvpl_int_t const* q,
    nvpl_dcomplex_t* X11, nvpl_int_t const* ldx11,
    nvpl_dcomplex_t* X21, nvpl_int_t const* ldx21,
    double* theta,
    nvpl_dcomplex_t* U1, nvpl_int_t const* ldu1,
    nvpl_dcomplex_t* U2, nvpl_int_t const* ldu2,
    nvpl_dcomplex_t* V1T, nvpl_int_t const* ldv1t,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork, nvpl_int_t const* lrwork,
    nvpl_int_t* iwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zuncsd2by1(...) NVPL_LAPACK_zuncsd2by1_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zuncsd2by1(...) NVPL_LAPACK_zuncsd2by1_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cungbr_base NVPL_LAPACK_GLOBAL(cungbr,CUNGBR)
void NVPL_LAPACK_cungbr_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cungbr(...) NVPL_LAPACK_cungbr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cungbr(...) NVPL_LAPACK_cungbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zungbr_base NVPL_LAPACK_GLOBAL(zungbr,ZUNGBR)
void NVPL_LAPACK_zungbr_base(
    char const* vect,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zungbr(...) NVPL_LAPACK_zungbr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zungbr(...) NVPL_LAPACK_zungbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunghr NVPL_LAPACK_GLOBAL(cunghr,CUNGHR)
void NVPL_LAPACK_cunghr(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zunghr NVPL_LAPACK_GLOBAL(zunghr,ZUNGHR)
void NVPL_LAPACK_zunghr(
    nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cunglq NVPL_LAPACK_GLOBAL(cunglq,CUNGLQ)
void NVPL_LAPACK_cunglq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zunglq NVPL_LAPACK_GLOBAL(zunglq,ZUNGLQ)
void NVPL_LAPACK_zunglq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cungql NVPL_LAPACK_GLOBAL(cungql,CUNGQL)
void NVPL_LAPACK_cungql(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zungql NVPL_LAPACK_GLOBAL(zungql,ZUNGQL)
void NVPL_LAPACK_zungql(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cungqr NVPL_LAPACK_GLOBAL(cungqr,CUNGQR)
void NVPL_LAPACK_cungqr(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zungqr NVPL_LAPACK_GLOBAL(zungqr,ZUNGQR)
void NVPL_LAPACK_zungqr(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cungrq NVPL_LAPACK_GLOBAL(cungrq,CUNGRQ)
void NVPL_LAPACK_cungrq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zungrq NVPL_LAPACK_GLOBAL(zungrq,ZUNGRQ)
void NVPL_LAPACK_zungrq(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cungtr_base NVPL_LAPACK_GLOBAL(cungtr,CUNGTR)
void NVPL_LAPACK_cungtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cungtr(...) NVPL_LAPACK_cungtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cungtr(...) NVPL_LAPACK_cungtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zungtr_base NVPL_LAPACK_GLOBAL(zungtr,ZUNGTR)
void NVPL_LAPACK_zungtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zungtr(...) NVPL_LAPACK_zungtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zungtr(...) NVPL_LAPACK_zungtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cungtsqr_row NVPL_LAPACK_GLOBAL(cungtsqr_row,CUNGTSQR_ROW)
void NVPL_LAPACK_cungtsqr_row(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb, nvpl_int_t const* nb,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_zungtsqr_row NVPL_LAPACK_GLOBAL(zungtsqr_row,ZUNGTSQR_ROW)
void NVPL_LAPACK_zungtsqr_row(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_int_t const* mb, nvpl_int_t const* nb,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* T, nvpl_int_t const* ldt,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info ) NVPL_LAPACK_API;

#define NVPL_LAPACK_cunmbr_base NVPL_LAPACK_GLOBAL(cunmbr,CUNMBR)
void NVPL_LAPACK_cunmbr_base(
    char const* vect, char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmbr(...) NVPL_LAPACK_cunmbr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cunmbr(...) NVPL_LAPACK_cunmbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmbr_base NVPL_LAPACK_GLOBAL(zunmbr,ZUNMBR)
void NVPL_LAPACK_zunmbr_base(
    char const* vect, char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmbr(...) NVPL_LAPACK_zunmbr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zunmbr(...) NVPL_LAPACK_zunmbr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmhr_base NVPL_LAPACK_GLOBAL(cunmhr,CUNMHR)
void NVPL_LAPACK_cunmhr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmhr(...) NVPL_LAPACK_cunmhr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunmhr(...) NVPL_LAPACK_cunmhr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmhr_base NVPL_LAPACK_GLOBAL(zunmhr,ZUNMHR)
void NVPL_LAPACK_zunmhr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* ilo, nvpl_int_t const* ihi,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmhr(...) NVPL_LAPACK_zunmhr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunmhr(...) NVPL_LAPACK_zunmhr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmlq_base NVPL_LAPACK_GLOBAL(cunmlq,CUNMLQ)
void NVPL_LAPACK_cunmlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmlq(...) NVPL_LAPACK_cunmlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunmlq(...) NVPL_LAPACK_cunmlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmlq_base NVPL_LAPACK_GLOBAL(zunmlq,ZUNMLQ)
void NVPL_LAPACK_zunmlq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmlq(...) NVPL_LAPACK_zunmlq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunmlq(...) NVPL_LAPACK_zunmlq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmql_base NVPL_LAPACK_GLOBAL(cunmql,CUNMQL)
void NVPL_LAPACK_cunmql_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmql(...) NVPL_LAPACK_cunmql_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunmql(...) NVPL_LAPACK_cunmql_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmql_base NVPL_LAPACK_GLOBAL(zunmql,ZUNMQL)
void NVPL_LAPACK_zunmql_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmql(...) NVPL_LAPACK_zunmql_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunmql(...) NVPL_LAPACK_zunmql_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmqr_base NVPL_LAPACK_GLOBAL(cunmqr,CUNMQR)
void NVPL_LAPACK_cunmqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmqr(...) NVPL_LAPACK_cunmqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunmqr(...) NVPL_LAPACK_cunmqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmqr_base NVPL_LAPACK_GLOBAL(zunmqr,ZUNMQR)
void NVPL_LAPACK_zunmqr_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmqr(...) NVPL_LAPACK_zunmqr_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunmqr(...) NVPL_LAPACK_zunmqr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmrq_base NVPL_LAPACK_GLOBAL(cunmrq,CUNMRQ)
void NVPL_LAPACK_cunmrq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmrq(...) NVPL_LAPACK_cunmrq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunmrq(...) NVPL_LAPACK_cunmrq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmrq_base NVPL_LAPACK_GLOBAL(zunmrq,ZUNMRQ)
void NVPL_LAPACK_zunmrq_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmrq(...) NVPL_LAPACK_zunmrq_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunmrq(...) NVPL_LAPACK_zunmrq_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmrz_base NVPL_LAPACK_GLOBAL(cunmrz,CUNMRZ)
void NVPL_LAPACK_cunmrz_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmrz(...) NVPL_LAPACK_cunmrz_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cunmrz(...) NVPL_LAPACK_cunmrz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmrz_base NVPL_LAPACK_GLOBAL(zunmrz,ZUNMRZ)
void NVPL_LAPACK_zunmrz_base(
    char const* side, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* k, nvpl_int_t const* l,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmrz(...) NVPL_LAPACK_zunmrz_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zunmrz(...) NVPL_LAPACK_zunmrz_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cunmtr_base NVPL_LAPACK_GLOBAL(cunmtr,CUNMTR)
void NVPL_LAPACK_cunmtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* A, nvpl_int_t const* lda,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cunmtr(...) NVPL_LAPACK_cunmtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cunmtr(...) NVPL_LAPACK_cunmtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zunmtr_base NVPL_LAPACK_GLOBAL(zunmtr,ZUNMTR)
void NVPL_LAPACK_zunmtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zunmtr(...) NVPL_LAPACK_zunmtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zunmtr(...) NVPL_LAPACK_zunmtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cupgtr_base NVPL_LAPACK_GLOBAL(cupgtr,CUPGTR)
void NVPL_LAPACK_cupgtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cupgtr(...) NVPL_LAPACK_cupgtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_cupgtr(...) NVPL_LAPACK_cupgtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zupgtr_base NVPL_LAPACK_GLOBAL(zupgtr,ZUPGTR)
void NVPL_LAPACK_zupgtr_base(
    char const* uplo,
    nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* Q, nvpl_int_t const* ldq,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zupgtr(...) NVPL_LAPACK_zupgtr_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zupgtr(...) NVPL_LAPACK_zupgtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cupmtr_base NVPL_LAPACK_GLOBAL(cupmtr,CUPMTR)
void NVPL_LAPACK_cupmtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* AP,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cupmtr(...) NVPL_LAPACK_cupmtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_cupmtr(...) NVPL_LAPACK_cupmtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zupmtr_base NVPL_LAPACK_GLOBAL(zupmtr,ZUPMTR)
void NVPL_LAPACK_zupmtr_base(
    char const* side, char const* uplo, char const* trans,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* AP,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t, size_t
#endif
) NVPL_LAPACK_API;
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zupmtr(...) NVPL_LAPACK_zupmtr_base(__VA_ARGS__, 1, 1, 1)
#else
    #define NVPL_LAPACK_zupmtr(...) NVPL_LAPACK_zupmtr_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgegv_base NVPL_LAPACK_GLOBAL(cgegv,CGEGV)
void NVPL_LAPACK_cgegv_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_scomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(cgegv,CGEGV));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgegv(...) NVPL_LAPACK_cgegv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgegv(...) NVPL_LAPACK_cgegv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgegv_base NVPL_LAPACK_GLOBAL(dgegv,DGEGV)
void NVPL_LAPACK_dgegv_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alphar,
    double* alphai,
    double* beta,
    double* VL, nvpl_int_t const* ldvl,
    double* VR, nvpl_int_t const* ldvr,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dgegv,DGEGV));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgegv(...) NVPL_LAPACK_dgegv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgegv(...) NVPL_LAPACK_dgegv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgegv_base NVPL_LAPACK_GLOBAL(sgegv,SGEGV)
void NVPL_LAPACK_sgegv_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alphar,
    float* alphai,
    float* beta,
    float* VL, nvpl_int_t const* ldvl,
    float* VR, nvpl_int_t const* ldvr,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(sgegv,SGEGV));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgegv(...) NVPL_LAPACK_sgegv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgegv(...) NVPL_LAPACK_sgegv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgegv_base NVPL_LAPACK_GLOBAL(zgegv,ZGEGV)
void NVPL_LAPACK_zgegv_base(
    char const* jobvl, char const* jobvr,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VL, nvpl_int_t const* ldvl,
    nvpl_dcomplex_t* VR, nvpl_int_t const* ldvr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zgegv,ZGEGV));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgegv(...) NVPL_LAPACK_zgegv_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgegv(...) NVPL_LAPACK_zgegv_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgegs_base NVPL_LAPACK_GLOBAL(cgegs,CGEGS)
void NVPL_LAPACK_cgegs_base(
    char const* jobvsl, char const* jobvsr,
    nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb,
    nvpl_scomplex_t* alpha,
    nvpl_scomplex_t* beta,
    nvpl_scomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_scomplex_t* VSR, nvpl_int_t const* ldvsr,
    nvpl_scomplex_t* work, nvpl_int_t const* lwork,
    float* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(cgegs,CGEGS));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_cgegs(...) NVPL_LAPACK_cgegs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_cgegs(...) NVPL_LAPACK_cgegs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dgegs_base NVPL_LAPACK_GLOBAL(dgegs,DGEGS)
void NVPL_LAPACK_dgegs_base(
    char const* jobvsl, char const* jobvsr,
    nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb,
    double* alphar,
    double* alphai,
    double* beta,
    double* VSL, nvpl_int_t const* ldvsl,
    double* VSR, nvpl_int_t const* ldvsr,
    double* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dgegs,DGEGS));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dgegs(...) NVPL_LAPACK_dgegs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_dgegs(...) NVPL_LAPACK_dgegs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_sgegs_base NVPL_LAPACK_GLOBAL(sgegs,SGEGS)
void NVPL_LAPACK_sgegs_base(
    char const* jobvsl, char const* jobvsr,
    nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb,
    float* alphar,
    float* alphai,
    float* beta,
    float* VSL, nvpl_int_t const* ldvsl,
    float* VSR, nvpl_int_t const* ldvsr,
    float* work, nvpl_int_t const* lwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(sgegs,SGEGS));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_sgegs(...) NVPL_LAPACK_sgegs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_sgegs(...) NVPL_LAPACK_sgegs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zgegs_base NVPL_LAPACK_GLOBAL(zgegs,ZGEGS)
void NVPL_LAPACK_zgegs_base(
    char const* jobvsl, char const* jobvsr,
    nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb,
    nvpl_dcomplex_t* alpha,
    nvpl_dcomplex_t* beta,
    nvpl_dcomplex_t* VSL, nvpl_int_t const* ldvsl,
    nvpl_dcomplex_t* VSR, nvpl_int_t const* ldvsr,
    nvpl_dcomplex_t* work, nvpl_int_t const* lwork,
    double* rwork,
    nvpl_int_t* info
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t, size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zgegs,ZGEGS));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zgegs(...) NVPL_LAPACK_zgegs_base(__VA_ARGS__, 1, 1)
#else
    #define NVPL_LAPACK_zgegs(...) NVPL_LAPACK_zgegs_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_cgelsx NVPL_LAPACK_GLOBAL(cgelsx,CGELSX)
void NVPL_LAPACK_cgelsx(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    float const* rcond, nvpl_int_t* rank,
    nvpl_scomplex_t* work,
    float* rwork,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(cgelsx,CGELSX));

#define NVPL_LAPACK_dgelsx NVPL_LAPACK_GLOBAL(dgelsx,DGELSX)
void NVPL_LAPACK_dgelsx(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    double* A, nvpl_int_t const* lda,
    double* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    double const* rcond, nvpl_int_t* rank,
    double* work,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dgelsx,DGELSX));

#define NVPL_LAPACK_sgelsx NVPL_LAPACK_GLOBAL(sgelsx,SGELSX)
void NVPL_LAPACK_sgelsx(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    float* A, nvpl_int_t const* lda,
    float* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    float const* rcond, nvpl_int_t* rank,
    float* work,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(sgelsx,SGELSX));

#define NVPL_LAPACK_zgelsx NVPL_LAPACK_GLOBAL(zgelsx,ZGELSX)
void NVPL_LAPACK_zgelsx(
    nvpl_int_t const* m, nvpl_int_t const* n, nvpl_int_t const* nrhs,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* B, nvpl_int_t const* ldb, nvpl_int_t* JPVT,
    double const* rcond, nvpl_int_t* rank,
    nvpl_dcomplex_t* work,
    double* rwork,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zgelsx,ZGELSX));

#define NVPL_LAPACK_clatzm_base NVPL_LAPACK_GLOBAL(clatzm,CLATZM)
void NVPL_LAPACK_clatzm_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t const* V, nvpl_int_t const* incv,
    nvpl_scomplex_t const* tau,
    nvpl_scomplex_t* C1, nvpl_scomplex_t* C2, nvpl_int_t const* ldc,
    nvpl_scomplex_t* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(clatzm,CLATZM));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_clatzm(...) NVPL_LAPACK_clatzm_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_clatzm(...) NVPL_LAPACK_clatzm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_dlatzm_base NVPL_LAPACK_GLOBAL(dlatzm,DLATZM)
void NVPL_LAPACK_dlatzm_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    double const* V, nvpl_int_t const* incv,
    double const* tau,
    double* C1, double* C2, nvpl_int_t const* ldc,
    double* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dlatzm,DLATZM));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_dlatzm(...) NVPL_LAPACK_dlatzm_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_dlatzm(...) NVPL_LAPACK_dlatzm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_slatzm_base NVPL_LAPACK_GLOBAL(slatzm,SLATZM)
void NVPL_LAPACK_slatzm_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    float const* V, nvpl_int_t const* incv,
    float const* tau,
    float* C1, float* C2, nvpl_int_t const* ldc,
    float* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(slatzm,SLATZM));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_slatzm(...) NVPL_LAPACK_slatzm_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_slatzm(...) NVPL_LAPACK_slatzm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_zlatzm_base NVPL_LAPACK_GLOBAL(zlatzm,ZLATZM)
void NVPL_LAPACK_zlatzm_base(
    char const* side,
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t const* V, nvpl_int_t const* incv,
    nvpl_dcomplex_t const* tau,
    nvpl_dcomplex_t* C1, nvpl_dcomplex_t* C2, nvpl_int_t const* ldc,
    nvpl_dcomplex_t* work
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    , size_t
#endif
) NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(zlatzm,ZLATZM));
#ifdef NVPL_LAPACK_FORTRAN_STRLEN_END
    #define NVPL_LAPACK_zlatzm(...) NVPL_LAPACK_zlatzm_base(__VA_ARGS__, 1)
#else
    #define NVPL_LAPACK_zlatzm(...) NVPL_LAPACK_zlatzm_base(__VA_ARGS__)
#endif

#define NVPL_LAPACK_ctzrqf NVPL_LAPACK_GLOBAL(ctzrqf,CTZRQF)
void NVPL_LAPACK_ctzrqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_scomplex_t* A, nvpl_int_t const* lda,
    nvpl_scomplex_t* tau,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(ctzrqf,CTZRQF));

#define NVPL_LAPACK_dtzrqf NVPL_LAPACK_GLOBAL(dtzrqf,DTZRQF)
void NVPL_LAPACK_dtzrqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    double* A, nvpl_int_t const* lda,
    double* tau,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(dtzrqf,DTZRQF));

#define NVPL_LAPACK_stzrqf NVPL_LAPACK_GLOBAL(stzrqf,STZRQF)
void NVPL_LAPACK_stzrqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    float* A, nvpl_int_t const* lda,
    float* tau,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(stzrqf,STZRQF));

#define NVPL_LAPACK_ztzrqf NVPL_LAPACK_GLOBAL(ztzrqf,ZTZRQF)
void NVPL_LAPACK_ztzrqf(
    nvpl_int_t const* m, nvpl_int_t const* n,
    nvpl_dcomplex_t* A, nvpl_int_t const* lda,
    nvpl_dcomplex_t* tau,
    nvpl_int_t* info )
    NVPL_LAPACK_DEPRECATED_API(NVPL_LAPACK_GLOBAL(ztzrqf,ZTZRQF));

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

// clang-format on

#endif /* NVPL_LAPACK_H */
