aboutsummaryrefslogtreecommitdiff
path: root/verif/generator/tosa_arg_gen.py
diff options
context:
space:
mode:
Diffstat (limited to 'verif/generator/tosa_arg_gen.py')
-rw-r--r--verif/generator/tosa_arg_gen.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/verif/generator/tosa_arg_gen.py b/verif/generator/tosa_arg_gen.py
index 1e23822..8641499 100644
--- a/verif/generator/tosa_arg_gen.py
+++ b/verif/generator/tosa_arg_gen.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021-2023, ARM Limited.
+# Copyright (c) 2021-2024, ARM Limited.
# SPDX-License-Identifier: Apache-2.0
import itertools
import math
@@ -1274,6 +1274,30 @@ class TosaTensorValuesGen:
testGen, opName, dtypeList, shapeList, argsDict, error_name
)
+ @staticmethod
+ def tvgReduceProduct(
+ testGen, opName, dtypeList, shapeList, argsDict, error_name=None
+ ):
+ dtype = dtypeList[0]
+ if error_name is None:
+ # Limit ranges for (non error) tests by using
+ # values that can be multiplied on any axis to not hit infinity
+ highval_lookup = {
+ dtype: math.pow(
+ TosaTensorValuesGen.TVG_FLOAT_HIGH_VALUE[dtype],
+ 1 / max(shapeList[0]),
+ )
+ }
+ data_range = TosaTensorValuesGen._get_data_range(
+ testGen, dtype, highval_lookup
+ )
+ assert data_range is not None
+ argsDict["data_range"] = data_range
+
+ return TosaTensorValuesGen.tvgLazyGenDefault(
+ testGen, opName, dtypeList, shapeList, argsDict, error_name
+ )
+
# Set the POW exponent high data range
TVG_FLOAT_HIGH_VALUE_POW_EXP = {
DType.FP32: 10.0,