MCPcopy Create free account
hub / github.com/apache/arrow / StridedIntegerTensorContentEquals

Function StridedIntegerTensorContentEquals

cpp/src/arrow/compare.cc:1194–1218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1192namespace {
1193
1194bool StridedIntegerTensorContentEquals(const int dim_index, int64_t left_offset,
1195 int64_t right_offset, int elem_size,
1196 const Tensor& left, const Tensor& right) {
1197 const auto n = left.shape()[dim_index];
1198 const auto left_stride = left.strides()[dim_index];
1199 const auto right_stride = right.strides()[dim_index];
1200 if (dim_index == left.ndim() - 1) {
1201 for (int64_t i = 0; i < n; ++i) {
1202 if (memcmp(left.raw_data() + left_offset + i * left_stride,
1203 right.raw_data() + right_offset + i * right_stride, elem_size) != 0) {
1204 return false;
1205 }
1206 }
1207 return true;
1208 }
1209 for (int64_t i = 0; i < n; ++i) {
1210 if (!StridedIntegerTensorContentEquals(dim_index + 1, left_offset, right_offset,
1211 elem_size, left, right)) {
1212 return false;
1213 }
1214 left_offset += left_stride;
1215 right_offset += right_stride;
1216 }
1217 return true;
1218}
1219
1220bool IntegerTensorEquals(const Tensor& left, const Tensor& right) {
1221 bool are_equal;

Callers 1

IntegerTensorEqualsFunction · 0.85

Calls 3

stridesMethod · 0.80
raw_dataMethod · 0.80
shapeMethod · 0.45

Tested by

no test coverage detected