diff options
Diffstat (limited to 'runtimes/libs/misc/src/tensor/Comparator.cpp')
-rw-r--r-- | runtimes/libs/misc/src/tensor/Comparator.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/runtimes/libs/misc/src/tensor/Comparator.cpp b/runtimes/libs/misc/src/tensor/Comparator.cpp new file mode 100644 index 000000000..e765e77b2 --- /dev/null +++ b/runtimes/libs/misc/src/tensor/Comparator.cpp @@ -0,0 +1,38 @@ +#include "misc/tensor/Comparator.h" +#include "misc/tensor/Zipper.h" + +#include "misc/fp32.h" + +namespace nnfw +{ +namespace misc +{ +namespace tensor +{ + +std::vector<Diff<float>> Comparator::compare(const Shape &shape, const Reader<float> &expected, + const Reader<float> &obtained, + Observer *observer) const +{ + std::vector<Diff<float>> res; + + zip(shape, expected, obtained) << + [&](const Index &index, float expected_value, float obtained_value) { + if (!_compare_fn(expected_value, obtained_value)) + { + res.emplace_back(index, expected_value, obtained_value); + } + + // Update max_diff_index, if necessary + if (observer != nullptr) + { + observer->notify(index, expected_value, obtained_value); + } + }; + + return res; +} + +} // namespace tensor +} // namespace misc +} // namespace nnfw |