26 #include "slicot_layer.hpp"
31 typedef long long int f_int;
34 int mb03vd_(f_int* n, f_int* p, f_int* ilo, f_int* ihi,
double *a, f_int* lda1, f_int* lda2,
35 double* tau, f_int* ldtau,
double* dwork, f_int *info);
36 int mb03vy_(f_int* n, f_int* p, f_int* ilo, f_int* ihi,
double *a, f_int* lda1, f_int* lda2,
37 const double* tau, f_int* ldtau,
double* dwork, f_int *ld_work, f_int *info);
38 int mb03wd_(
char* job,
char* compz, f_int* n, f_int* p, f_int* ilo, f_int* ihi, f_int* iloz,
39 f_int* ihiz,
double *h, f_int* ldh1, f_int* ldh2,
double* z, f_int* ldz1,
40 f_int* ldz2,
double* wr,
double *wi,
double* dwork, f_int *ld_work, f_int *info);
43 int mb05nd_(f_int* n,
double* delta,
const double* a, f_int* lda,
44 double* ex, f_int* ldex,
double * exint, f_int* ldexin,
45 double* tol, f_int* iwork,
double * dwork, f_int* ldwork, f_int *info);
51 int slicot_mb03vd(
int n,
int p,
int ilo,
int ihi,
double * a,
int lda1,
int lda2,
double * tau,
52 int ldtau,
double * dwork) {
62 mb03vd_(&n_, &p_, &ilo_, &ihi_, a, &lda1_, &lda2_, tau, &ldtau_, dwork, &ret_);
66 int slicot_mb03vy(
int n,
int p,
int ilo,
int ihi,
double * a,
int lda1,
int lda2,
67 const double * tau,
int ldtau,
double * dwork,
int ldwork) {
75 f_int ldwork_ = ldwork;
77 mb03vy_(&n_, &p_, &ilo_, &ihi_, a, &lda1_, &lda2_, tau, &ldtau_, dwork, &ldwork_, &ret_);
83 int slicot_mb03wd(
char job,
char compz,
int n,
int p,
int ilo,
int ihi,
int iloz,
int ihiz,
84 double *h,
int ldh1,
int ldh2,
double* z,
int ldz1,
int ldz2,
double* wr,
85 double *wi,
double * dwork,
int ldwork) {
96 f_int ldwork_ = ldwork;
98 mb03wd_(&job, &compz, &n_, &p_, &ilo_, &ihi_, &iloz_, &ihiz_, h, &ldh1_, &ldh2_,
99 z, &ldz1_, &ldz2_, wr, wi, dwork, &ldwork_, &ret_);
106 double* ex,
int ldex,
double * exint,
int ldexin,
107 double tol,
int* iwork,
double * dwork,
int ldwork) {
111 f_int ldexin_ = ldexin;
112 f_int* iwork_ =
reinterpret_cast<f_int*
>(iwork);
113 f_int ldwork_ = ldwork;
115 mb05nd_(&n_, &delta, a, &lda_, ex, &ldex_, exint, &ldexin_,
116 &tol, iwork_, dwork, &ldwork_, &ret_);
int slicot_mb03wd(char job, char compz, int n, int p, int ilo, int ihi, int iloz, int ihiz, double *h, int ldh1, int ldh2, double *z, int ldz1, int ldz2, double *wr, double *wi, double *dwork, int ldwork)
int slicot_mb03vy(int n, int p, int ilo, int ihi, double *a, int lda1, int lda2, const double *tau, int ldtau, double *dwork, int ldwork)
int slicot_mb03vd(int n, int p, int ilo, int ihi, double *a, int lda1, int lda2, double *tau, int ldtau, double *dwork)
int slicot_mb05nd(int n, double delta, const double *a, int lda, double *ex, int ldex, double *exint, int ldexin, double tol, int *iwork, double *dwork, int ldwork)