[Function] Fix slice function (#724)

Add ()
This commit is contained in:
Jack Zhou
2022-11-28 17:32:06 +08:00
committed by GitHub
parent 623af3e90e
commit 82fc8a17f5

View File

@@ -65,25 +65,25 @@ void CheckAndUpdateSliceAttrs(const std::vector<int64_t>& in_dims,
step); step);
int64_t start = int64_t start =
(*starts)[i] < 0 ? ((*starts)[i] + dim_value) : (*starts)[i]; (*starts)[i] < 0 ? ((*starts)[i] + dim_value) : (*starts)[i];
start = std::max(start, static_cast<int64_t>(0)); start = (std::max)(start, static_cast<int64_t>(0));
int64_t end = int64_t end =
0 < step && (*ends)[i] < 0 ? ((*ends)[i] + dim_value) : (*ends)[i]; 0 < step && (*ends)[i] < 0 ? ((*ends)[i] + dim_value) : (*ends)[i];
end = std::min(end, dim_value); end = (std::min)(end, dim_value);
if (step > 0) { if (step > 0) {
start = std::min(start, dim_value); start = (std::min)(start, dim_value);
end = std::max(end, static_cast<int64_t>(0)); end = (std::max)(end, static_cast<int64_t>(0));
FDASSERT(end > start, FDASSERT(end > start,
"When step > 0, end should be greater than start, but " "When step > 0, end should be greater than start, but "
"received end = %d, start = %d.", "received end = %d, start = %d.",
end, start) end, start)
} else { } else {
start = std::min(start, dim_value - 1); start = (std::min)(start, dim_value - 1);
if (end < -1) { if (end < -1) {
end += dim_value; end += dim_value;
} }
end = std::max(end, static_cast<int64_t>(-1)); end = (std::max)(end, static_cast<int64_t>(-1));
FDASSERT(start >= end, FDASSERT(start >= end,
"When step < 0, start should be greater than end, but " "When step < 0, start should be greater than end, but "
"received start = %d, end = %d.", "received start = %d, end = %d.",
@@ -164,4 +164,4 @@ void Slice(const FDTensor& x, const std::vector<int64_t>& axes,
} }
} // namespace function } // namespace function
} // namespace fastdeploy } // namespace fastdeploy