mat_utils.hpp 952 B

1234567891011121314151617181920212223242526
  1. #ifndef _SCTL_MAT_UTILS_
  2. #define _SCTL_MAT_UTILS_
  3. #include SCTL_INCLUDE(common.hpp)
  4. namespace SCTL_NAMESPACE {
  5. namespace mat {
  6. template <class T> void gemm(char TransA, char TransB, int M, int N, int K, T alpha, T *A, int lda, T *B, int ldb, T beta, T *C, int ldc);
  7. template <class T> void cublasgemm(char TransA, char TransB, int M, int N, int K, T alpha, T *A, int lda, T *B, int ldb, T beta, T *C, int ldc);
  8. template <class T> void svd(char *JOBU, char *JOBVT, int *M, int *N, Iterator<T> A, int *LDA, Iterator<T> S, Iterator<T> U, int *LDU, Iterator<T> VT, int *LDVT, Iterator<T> WORK, int *LWORK, int *INFO);
  9. /**
  10. * \brief Computes the pseudo inverse of matrix M(n1xn2) (in row major form)
  11. * and returns the output M_(n2xn1).
  12. */
  13. template <class T> void pinv(Iterator<T> M, int n1, int n2, T eps, Iterator<T> M_);
  14. } // end namespace mat
  15. } // end namespace SCTL_NAMESPACE
  16. #include SCTL_INCLUDE(mat_utils.txx)
  17. #endif //_SCTL_MAT_UTILS_