// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "VerificationHelpers.hpp" #include #include using namespace armnn; namespace armnnUtils { void CheckValidSize(std::initializer_list validInputCounts, size_t actualValue, const char* validExpr, const char* actualExpr, const CheckLocation& location) { bool isValid = std::any_of(validInputCounts.begin(), validInputCounts.end(), [&actualValue](size_t x) { return x == actualValue; } ); if (!isValid) { throw ParseException( boost::str( boost::format("%1% = %2% is not valid, not in {%3%}. %4%") % actualExpr % actualValue % validExpr % location.AsString())); } } uint32_t NonNegative(const char* expr, int32_t value, const CheckLocation& location) { if (value < 0) { throw ParseException( boost::str( boost::format("'%1%' must be non-negative, received: %2% at %3%") % expr % value % location.AsString() )); } else { return static_cast(value); } } int32_t VerifyInt32(const char* expr, int64_t value, const armnn::CheckLocation& location) { if (value < std::numeric_limits::min() || value > std::numeric_limits::max()) { throw ParseException( boost::str( boost::format("'%1%' must should fit into a int32 (ArmNN don't support int64), received: %2% at %3%") % expr % value % location.AsString() )); } else { return static_cast(value); } } }// armnnUtils