BOOST_FORCEINLINE result_type operator()(A0& a0, A1& a1) const { result_type that; nt2_la_int m = nt2::height(a0); nt2_la_int n = nt2::width(a0); nt2_la_int ld = a0.leading_size(); a1.resize( nt2::of_size(std::min(n, m), 1) ); magma_cgetrf(m, n, (cuFloatComplex*)a0.data(), ld, a1.data(), &that); return that; }
BOOST_FORCEINLINE result_type operator()(A0& a0, A1& a1, A2& a2) const { result_type that; nt2_la_int n = std::min(nt2::height(a0),nt2::width(a0)); nt2_la_int lda = n; nt2_la_int nhrs = nt2::width(a2); nt2_la_int ldb = a2.leading_size(); a1.resize(nt2::of_size(n,1)); magma_zgesv(n,nhrs,(cuDoubleComplex*)a0.data(),lda,a1.data() ,(cuDoubleComplex*)a2.data(),ldb,&that); return that; }