xref: /aosp_15_r20/external/pytorch/aten/src/ATen/PadNd.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #pragma once
2*da0073e9SAndroid Build Coastguard Worker #include <c10/util/Exception.h>
3*da0073e9SAndroid Build Coastguard Worker #include <c10/util/string_view.h>
4*da0073e9SAndroid Build Coastguard Worker 
5*da0073e9SAndroid Build Coastguard Worker namespace at {
6*da0073e9SAndroid Build Coastguard Worker 
7*da0073e9SAndroid Build Coastguard Worker enum class padding_mode {
8*da0073e9SAndroid Build Coastguard Worker   reflect,
9*da0073e9SAndroid Build Coastguard Worker   replicate,
10*da0073e9SAndroid Build Coastguard Worker   circular,
11*da0073e9SAndroid Build Coastguard Worker   constant,
12*da0073e9SAndroid Build Coastguard Worker };
13*da0073e9SAndroid Build Coastguard Worker 
padding_mode_string(padding_mode m)14*da0073e9SAndroid Build Coastguard Worker static inline c10::string_view padding_mode_string(padding_mode m) {
15*da0073e9SAndroid Build Coastguard Worker   switch (m) {
16*da0073e9SAndroid Build Coastguard Worker     case padding_mode::reflect:
17*da0073e9SAndroid Build Coastguard Worker       return "reflect";
18*da0073e9SAndroid Build Coastguard Worker     case padding_mode::replicate:
19*da0073e9SAndroid Build Coastguard Worker       return "replicate";
20*da0073e9SAndroid Build Coastguard Worker     case padding_mode::circular:
21*da0073e9SAndroid Build Coastguard Worker       return "circular";
22*da0073e9SAndroid Build Coastguard Worker     case padding_mode::constant:
23*da0073e9SAndroid Build Coastguard Worker       return "constant";
24*da0073e9SAndroid Build Coastguard Worker   }
25*da0073e9SAndroid Build Coastguard Worker   TORCH_CHECK(false, "Invalid padding mode (", static_cast<int64_t>(m), ")");
26*da0073e9SAndroid Build Coastguard Worker }
27*da0073e9SAndroid Build Coastguard Worker 
28*da0073e9SAndroid Build Coastguard Worker } // namespace at
29