summaryrefslogtreecommitdiff
path: root/src/utilities
diff options
context:
space:
mode:
authorKoichi Akabe <vbkaisetsu@gmail.com>2018-11-12 10:12:07 +0900
committerKoichi Akabe <vbkaisetsu@gmail.com>2018-11-12 10:12:07 +0900
commit032e3b0cc00a15dd2af8b4fb82d261eb7b086e26 (patch)
treecdcf4d0fc342c9ff92ee7ab3f75b0cdeced46e96 /src/utilities
parent90112618daa0d6b24ae3e53203a636d2e908dfba (diff)
Add kernel_mode option to im2col, col2im, and convgemm functions
Diffstat (limited to 'src/utilities')
-rw-r--r--src/utilities/utilities.cpp8
-rw-r--r--src/utilities/utilities.hpp2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp
index a6cd82e7..a0e89c98 100644
--- a/src/utilities/utilities.cpp
+++ b/src/utilities/utilities.cpp
@@ -175,6 +175,13 @@ std::string ToString(Precision value) {
}
}
template <>
+std::string ToString(KernelMode value) {
+ switch(value) {
+ case KernelMode::kCrossCorrelation: return ToString(static_cast<int>(value))+" (cross-correlation)";
+ case KernelMode::kConvolution: return ToString(static_cast<int>(value))+" (convolution)";
+ }
+}
+template <>
std::string ToString(StatusCode value) {
return std::to_string(static_cast<int>(value));
}
@@ -281,6 +288,7 @@ template Side GetArgument<Side>(const std::vector<std::string>&, std::string&, c
template Triangle GetArgument<Triangle>(const std::vector<std::string>&, std::string&, const std::string&, const Triangle);
template Diagonal GetArgument<Diagonal>(const std::vector<std::string>&, std::string&, const std::string&, const Diagonal);
template Precision GetArgument<Precision>(const std::vector<std::string>&, std::string&, const std::string&, const Precision);
+template KernelMode GetArgument<KernelMode>(const std::vector<std::string>&, std::string&, const std::string&, const KernelMode);
// =================================================================================================
diff --git a/src/utilities/utilities.hpp b/src/utilities/utilities.hpp
index fcc1c57f..23486d35 100644
--- a/src/utilities/utilities.hpp
+++ b/src/utilities/utilities.hpp
@@ -69,6 +69,7 @@ constexpr auto kArgBTransp = "transB";
constexpr auto kArgSide = "side";
constexpr auto kArgTriangle = "triangle";
constexpr auto kArgDiagonal = "diagonal";
+constexpr auto kArgKernelMode = "kernel_mode";
constexpr auto kArgXInc = "incx";
constexpr auto kArgYInc = "incy";
constexpr auto kArgXOffset = "offx";
@@ -183,6 +184,7 @@ struct Arguments {
Side side = Side::kLeft;
Triangle triangle = Triangle::kUpper;
Diagonal diagonal = Diagonal::kUnit;
+ KernelMode kernel_mode = KernelMode::kCrossCorrelation;
size_t x_inc = 1;
size_t y_inc = 1;
size_t x_offset = 0;