@@ -19,7 +19,7 @@ namespace paddle {
1919namespace operators {
2020namespace math {
2121
22- // LU
22+ // LU (for example)
2323template <>
2424void lapackLu<double >(int m, int n, double *a, int lda, int *ipiv, int *info) {
2525 platform::dynload::dgetrf_ (&m, &n, a, &lda, ipiv, info);
@@ -30,74 +30,6 @@ void lapackLu<float>(int m, int n, float *a, int lda, int *ipiv, int *info) {
3030 platform::dynload::sgetrf_ (&m, &n, a, &lda, ipiv, info);
3131}
3232
33- // Solve
34- template <>
35- void lapackLuSolve<double >(char trans, int n, int nrhs, double *a, int lda,
36- int *ipiv, double *b, int ldb, int *info) {
37- platform::dynload::dgetrs_ (&trans, &n, &nrhs, a, &lda, ipiv, b, &ldb, info);
38- }
39-
40- template <>
41- void lapackLuSolve<float >(char trans, int n, int nrhs, float *a, int lda,
42- int *ipiv, float *b, int ldb, int *info) {
43- platform::dynload::sgetrs_ (&trans, &n, &nrhs, a, &lda, ipiv, b, &ldb, info);
44- }
45-
46- // Cholesky
47- template <>
48- void lapackCholesky<double >(char uplo, int n, double *a, int lda, int *info) {
49- platform::dynload::dpotrf_ (&uplo, &n, a, &lda, info);
50- }
51-
52- template <>
53- void lapackCholesky<float >(char uplo, int n, float *a, int lda, int *info) {
54- platform::dynload::spotrf_ (&uplo, &n, a, &lda, info);
55- }
56-
57- // Eig
58- template <>
59- void lapackEig<double >(char jobvl, char jobvr, int n, double *a, int lda,
60- double *w, double *vl, int ldvl, double *vr, int ldvr,
61- double *work, int lwork, double *rwork, int *info) {
62- double *wr = w;
63- double *wi = w + n;
64- (void )rwork; // unused
65- platform::dynload::dgeev_ (&jobvl, &jobvr, &n, a, &lda, wr, wi, vl, &ldvl, vr,
66- &ldvr, work, &lwork, info);
67- }
68-
69- template <>
70- void lapackEig<float >(char jobvl, char jobvr, int n, float *a, int lda,
71- float *w, float *vl, int ldvl, float *vr, int ldvr,
72- float *work, int lwork, float *rwork, int *info) {
73- float *wr = w;
74- float *wi = w + n;
75- (void )rwork; // unused
76- platform::dynload::sgeev_ (&jobvl, &jobvr, &n, a, &lda, wr, wi, vl, &ldvl, vr,
77- &ldvr, work, &lwork, info);
78- }
79-
80- // Syevd
81- template <>
82- void lapackSyevd<double >(char jobz, char uplo, int n, double *a, int lda,
83- double *w, double *work, int lwork, double *rwork,
84- int lrwork, int *iwork, int liwork, int *info) {
85- (void )rwork; // unused
86- (void )lrwork; // unused
87- platform::dynload::dsyevd_ (&jobz, &uplo, &n, a, &lda, w, work, &lwork, iwork,
88- &liwork, info);
89- }
90-
91- template <>
92- void lapackSyevd<float >(char jobz, char uplo, int n, float *a, int lda,
93- float *w, float *work, int lwork, float *rwork,
94- int lrwork, int *iwork, int liwork, int *info) {
95- (void )rwork; // unused
96- (void )lrwork; // unused
97- platform::dynload::ssyevd_ (&jobz, &uplo, &n, a, &lda, w, work, &lwork, iwork,
98- &liwork, info);
99- }
100-
10133} // namespace math
10234} // namespace operators
10335} // namespace paddle
0 commit comments