47 #ifndef SHARK_LINALG_IMPL_NUMERIC_BINDINGS_ATLAS_POTRS_H
48 #define SHARK_LINALG_IMPL_NUMERIC_BINDINGS_ATLAS_POTRS_H
51 namespace shark {
namespace detail {
namespace bindings {
53 inline int potrs(CBLAS_ORDER Order, CBLAS_UPLO Uplo,
55 float const *A,
int lda,
float *B,
int ldb
57 return clapack_spotrs(Order, Uplo, N, NRHS, A, lda, B, ldb);
60 inline int potrs(CBLAS_ORDER Order, CBLAS_UPLO Uplo,
62 double const *A,
int lda,
double *B,
int ldb
64 return clapack_dpotrs(Order, Uplo, N, NRHS, A, lda, B, ldb);
67 inline int potrs(CBLAS_ORDER Order, CBLAS_UPLO Uplo,
69 std::complex<float>
const *A,
int lda,
70 std::complex<float> *B,
int ldb
72 return clapack_cpotrs(Order, Uplo, N, NRHS,
73 static_cast<void const *>(A), lda,
74 static_cast<void *>(B), ldb
78 inline int potrs(CBLAS_ORDER Order, CBLAS_UPLO Uplo,
80 std::complex<double>
const *A,
int lda,
81 std::complex<double> *B,
int ldb
83 return clapack_zpotrs(Order, Uplo, N, NRHS,
84 static_cast<void const *>(A), lda,
85 static_cast<void *>(B), ldb
91 template <
typename SymmA,
typename MatrB>
98 int nrhs = b().size1();
102 return potrs(stor_ord, uplo, n, nrhs,