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)12inline 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