35#ifndef _BLAZE_MATH_LAPACK_CLAPACK_GGES_H_
36#define _BLAZE_MATH_LAPACK_CLAPACK_GGES_H_
57#if !defined(INTEL_MKL_VERSION)
60void sgges_(
char* jobvsl,
char* jobvsr,
char* sort,
68void dgges_(
char* jobvsl,
char* jobvsr,
char* sort,
71 blaze::blas_int_t* sdim,
double* alphar,
double* alphai,
double* beta,
double* VSL,
76void cgges_(
char* jobvsl,
char* jobvsr,
char* sort,
84void zgges_(
char* jobvsl,
char* jobvsr,
char* sort,
112void gges(
char jobvsl,
char jobvsr,
char sort,
115 blas_int_t* sdim,
float* alphar,
float* alphai,
float* beta,
120void gges(
char jobvsl,
char jobvsr,
char sort,
123 blas_int_t* sdim,
double* alphar,
double* alphai,
double* beta,
128void gges(
char jobvsl,
char jobvsr,
char sort,
136void gges(
char jobvsl,
char jobvsr,
char sort,
227inline void gges(
char jobvsl,
char jobvsr,
char sort,
230 blas_int_t* sdim,
float* alphar,
float* alphai,
float* beta,
235#if defined(INTEL_MKL_VERSION)
239 sgges_( &jobvsl, &jobvsr, &sort, selctg, &n, A, &lda, B, &ldb, sdim, alphar, alphai, beta,
240 VSL, &ldvsl, VSR, &ldvsr, work, &lwork, bwork, info
241#
if !defined(INTEL_MKL_VERSION)
329inline void gges(
char jobvsl,
char jobvsr,
char sort,
332 blas_int_t* sdim,
double* alphar,
double* alphai,
double* beta,
337#if defined(INTEL_MKL_VERSION)
341 dgges_( &jobvsl, &jobvsr, &sort, selctg, &n, A, &lda, B, &ldb, sdim, alphar, alphai, beta,
342 VSL, &ldvsl, VSR, &ldvsr, work, &lwork, bwork, info
343#
if !defined(INTEL_MKL_VERSION)
431inline void gges(
char jobvsl,
char jobvsr,
char sort,
434 blas_int_t* sdim, complex<float>* alpha, complex<float>* beta,
435 complex<float>* VSL,
blas_int_t ldvsl, complex<float>* VSR,
441#if defined(INTEL_MKL_VERSION)
444 using ET = MKL_Complex8;
445 using Selctg = MKL_INT (*)(
const ET*,
const ET* );
448 using Selctg =
blas_int_t (*)(
const ET*,
const ET* );
451 cgges_( &jobvsl, &jobvsr, &sort,
reinterpret_cast<Selctg
>( selctg ), &n,
452 reinterpret_cast<ET*
>( A ), &lda,
reinterpret_cast<ET*
>( B ), &ldb, sdim,
453 reinterpret_cast<ET*
>( alpha ),
reinterpret_cast<ET*
>( beta ),
454 reinterpret_cast<ET*
>( VSL ), &ldvsl,
reinterpret_cast<ET*
>( VSR ), &ldvsr,
455 reinterpret_cast<ET*
>( work ), &lwork, rwork, bwork, info
456#
if !defined(INTEL_MKL_VERSION)
544inline void gges(
char jobvsl,
char jobvsr,
char sort,
547 blas_int_t* sdim, complex<double>* alpha, complex<double>* beta,
548 complex<double>* VSL,
blas_int_t ldvsl, complex<double>* VSR,
554#if defined(INTEL_MKL_VERSION)
557 using ET = MKL_Complex16;
558 using Selctg = MKL_INT (*)(
const ET*,
const ET* );
561 using Selctg =
blas_int_t (*)(
const ET*,
const ET* );
564 zgges_( &jobvsl, &jobvsr, &sort,
reinterpret_cast<Selctg
>( selctg ), &n,
565 reinterpret_cast<ET*
>( A ), &lda,
reinterpret_cast<ET*
>( B ), &ldb, sdim,
566 reinterpret_cast<ET*
>( alpha ),
reinterpret_cast<ET*
>( beta ),
567 reinterpret_cast<ET*
>( VSL ), &ldvsl,
reinterpret_cast<ET*
>( VSR ), &ldvsr,
568 reinterpret_cast<ET*
>( work ), &lwork, rwork, bwork, info
569#
if !defined(INTEL_MKL_VERSION)
Header file for the complex data type.
Complex data type of the Blaze library.
void gges(DenseMatrix< MT1, SO1 > &A, DenseMatrix< MT2, SO2 > &B, DenseMatrix< MT3, SO3 > &VSL, DenseVector< VT1, TF1 > &alpha, DenseVector< VT2, TF2 > &beta, DenseMatrix< MT4, SO4 > &VSR, Select select)
LAPACK kernel for computing the generalized Schur factorization of the given pair of dense general ma...
Definition: gges.h:945
int32_t blas_int_t
Signed integer type used in the BLAS/LAPACK wrapper functions.
Definition: Types.h:64
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.
Definition: StaticAssert.h:112
size_t fortran_charlen_t
Type of the hidden arguments of character type within a Fortran forward declaration.
Definition: Types.h:186
Header file for basic BLAS type definitions.
Header file for basic type definitions.