xref: /aosp_15_r20/external/pytorch/aten/src/ATen/LinalgBackend.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #pragma once
2 
3 #include <c10/util/Exception.h>
4 
5 #include <ostream>
6 #include <string>
7 
8 namespace at {
9 
10 enum class LinalgBackend : int8_t { Default, Cusolver, Magma };
11 
LinalgBackendToString(at::LinalgBackend backend)12 inline std::string LinalgBackendToString(at::LinalgBackend backend) {
13   switch (backend) {
14     case LinalgBackend::Default:
15       return "at::LinalgBackend::Default";
16     case LinalgBackend::Cusolver:
17       return "at::LinalgBackend::Cusolver";
18     case LinalgBackend::Magma:
19       return "at::LinalgBackend::Magma";
20     default:
21       TORCH_CHECK(false, "Unknown linalg backend");
22   }
23 }
24 
25 inline std::ostream& operator<<(
26     std::ostream& stream,
27     at::LinalgBackend backend) {
28   return stream << LinalgBackendToString(backend);
29 }
30 
31 } // namespace at
32