Tensor Comprehensions
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
exceptions.h
Go to the documentation of this file.
1 
16 #pragma once
17 
18 #include <stdexcept>
19 #include <string>
20 
21 namespace tc {
22 namespace polyhedral {
23 
24 struct EmptyFilterException : public std::runtime_error {
25  explicit EmptyFilterException(const std::string& s) : std::runtime_error(s) {}
26 };
27 
28 struct EmptyMappingFilterException : public std::runtime_error {
29  explicit EmptyMappingFilterException(const std::string& s)
30  : std::runtime_error(s) {}
31 };
32 
33 struct NoBandsException : public std::runtime_error {
34  explicit NoBandsException(const std::string& s) : std::runtime_error(s) {}
35 };
36 
37 namespace tightening {
38 struct TighteningException : public std::logic_error {
39  explicit TighteningException(const std::string& s)
40  : std::logic_error(std::string("[TighteningException]") + s) {}
41 };
42 } // namespace tightening
43 
44 namespace promotion {
45 struct OutOfRangeException : public std::out_of_range {
46  explicit OutOfRangeException(const std::string& s) : std::out_of_range(s) {}
47 };
48 
49 struct PromotionLogicError : public std::logic_error {
50  explicit PromotionLogicError(const std::string& s) : std::logic_error(s) {}
51 };
52 
53 struct PromotionBelowThreadsException : public PromotionLogicError {
54  explicit PromotionBelowThreadsException(const std::string& s)
55  : PromotionLogicError(s) {}
56 };
57 
58 struct PromotionNYI : public std::logic_error {
59  explicit PromotionNYI(const std::string& s) : std::logic_error(s) {}
60 };
61 
62 struct GroupingError : public std::logic_error {
63  explicit GroupingError(const std::string& s) : std::logic_error(s) {}
64 };
65 } // namespace promotion
66 
67 } // namespace polyhedral
68 } // namespace tc