@@ -209,7 +209,7 @@ inline lapack_int qr_solve_factored(lapack_int m, lapack_int n, lapack_int bn, T
209
209
return info;
210
210
}
211
211
212
- template <typename T, typename UNMQR, typename TRSM>
212
+ template <typename T, typename R, typename UNMQR, typename TRSM>
213
213
inline lapack_int complex_qr_solve_factored (lapack_int m, lapack_int n, lapack_int bn, T r[], T b[], T tau[], T x[], T work[], lapack_int len, UNMQR unmqr, TRSM trsm)
214
214
{
215
215
T* clone_b = Clone (m, bn, b);
@@ -218,7 +218,7 @@ inline lapack_int complex_qr_solve_factored(lapack_int m, lapack_int n, lapack_i
218
218
lapack_int info = 0 ;
219
219
unmqr (&side, &tran, &m, &bn, &n, r, &m, tau, clone_b, &m, work, &len, &info);
220
220
T one = { 1 .0f , 0 .0f };
221
- trsm (CblasColMajor, CblasLeft, CblasUpper, CblasNoTrans, CblasNonUnit, n, bn, &( one. real ), &(r-> real ), m, & (clone_b-> real ), m);
221
+ trsm (CblasColMajor, CblasLeft, CblasUpper, CblasNoTrans, CblasNonUnit, n, bn, reinterpret_cast <R*>(& one), reinterpret_cast <R*>(r ), m, reinterpret_cast <R*> (clone_b), m);
222
222
copyBtoX (m, n, bn, clone_b, x);
223
223
delete[] clone_b;
224
224
return info;
@@ -354,14 +354,14 @@ inline lapack_int sym_eigen_factor(lapack_int n, T a[], T vectors[], lapack_comp
354
354
delete[] w;
355
355
return info;
356
356
}
357
-
357
+
358
358
memcpy (vectors, clone_a, n*n*sizeof (T));
359
359
360
360
for (lapack_int index = 0 ; index < n; ++index)
361
361
{
362
362
values[index] = lapack_complex_double (w[index]);
363
363
}
364
-
364
+
365
365
for (lapack_int j = 0 ; j < n; ++j)
366
366
{
367
367
lapack_int jn = j*n;
@@ -634,12 +634,12 @@ extern "C" {
634
634
635
635
DLLEXPORT lapack_int c_qr_solve_factored (lapack_int m, lapack_int n, lapack_int bn, lapack_complex_float r[], lapack_complex_float b[], lapack_complex_float tau[], lapack_complex_float x[], lapack_complex_float work[], lapack_int len)
636
636
{
637
- return complex_qr_solve_factored (m, n, bn, r, b, tau, x, work, len, LAPACK_cunmqr, cblas_ctrsm);
637
+ return complex_qr_solve_factored<lapack_complex_float, float > (m, n, bn, r, b, tau, x, work, len, LAPACK_cunmqr, cblas_ctrsm);
638
638
}
639
639
640
640
DLLEXPORT lapack_int z_qr_solve_factored (lapack_int m, lapack_int n, lapack_int bn, lapack_complex_double r[], lapack_complex_double b[], lapack_complex_double tau[], lapack_complex_double x[], lapack_complex_double work[], lapack_int len)
641
641
{
642
- return complex_qr_solve_factored (m, n, bn, r, b, tau, x, work, len, LAPACK_zunmqr, cblas_ztrsm);
642
+ return complex_qr_solve_factored<lapack_complex_double, double > (m, n, bn, r, b, tau, x, work, len, LAPACK_zunmqr, cblas_ztrsm);
643
643
}
644
644
645
645
DLLEXPORT lapack_int s_svd_factor (bool compute_vectors, lapack_int m, lapack_int n, float a[], float s[], float u[], float v[], float work[], lapack_int len)
@@ -697,7 +697,7 @@ extern "C" {
697
697
return eigen_complex_factor (n, a, vectors, values, d, LAPACKE_cgees, LAPACKE_ctrevc);
698
698
}
699
699
}
700
-
700
+
701
701
DLLEXPORT lapack_int z_eigen (bool isSymmetric, lapack_int n, lapack_complex_double a[], lapack_complex_double vectors[], lapack_complex_double values[], lapack_complex_double d[])
702
702
{
703
703
if (isSymmetric)
0 commit comments