Auto-switch to LINEAR GEMM/IGEMM/DWCONV micro-kernels
- Initialize pointers to LINEAR-activation micro-kernels on WebAssembly
- Automatically detect and use LINEAR-activation micro-kernels
- Update unit tests to test both MINMAX- and LINEAR-activation micro-kernels
PiperOrigin-RevId: 305792844
diff --git a/test/fully-connected-operator-tester.h b/test/fully-connected-operator-tester.h
index d28a18d..cfc3738 100644
--- a/test/fully-connected-operator-tester.h
+++ b/test/fully-connected-operator-tester.h
@@ -295,8 +295,10 @@
const float accumulated_min = *std::min_element(output_ref.cbegin(), output_ref.cend());
const float accumulated_max = *std::max_element(output_ref.cbegin(), output_ref.cend());
- const float output_min = accumulated_min + (accumulated_max - accumulated_min) / 255.0f * float(qmin());
- const float output_max = accumulated_max - (accumulated_max - accumulated_min) / 255.0f * float(255 - qmax());
+ const float output_min = qmin() == 0 ? -std::numeric_limits<float>::infinity() :
+ accumulated_min + (accumulated_max - accumulated_min) / 255.0f * float(qmin());
+ const float output_max = qmax() == 255 ? std::numeric_limits<float>::infinity() :
+ accumulated_max - (accumulated_max - accumulated_min) / 255.0f * float(255 - qmax());
// Clamp reference results.
for (float& value : output_ref) {