From c85edf1a5a3ad0e6906c0e90c18cc0080d71501d Mon Sep 17 00:00:00 2001 From: Viet-Hoa Do Date: Fri, 1 Sep 2023 16:48:17 +0100 Subject: Make zip and combine variadic * Illustrate the benefit by writing CPU MatMul test dataset in a more readable way. Part of: COMPMID-6353 Signed-off-by: Viet-Hoa Do Change-Id: Id5dbc13a051709237bbcc4dd88716d0b24ecfd5d Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10227 Tested-by: Arm Jenkins Reviewed-by: Jakub Sujak Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins --- tests/framework/datasets/CartesianProductDataset.h | 16 +++++++++++++++- tests/framework/datasets/ZipDataset.h | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) (limited to 'tests/framework') diff --git a/tests/framework/datasets/CartesianProductDataset.h b/tests/framework/datasets/CartesianProductDataset.h index 19ac4f6666..7b3ff12047 100644 --- a/tests/framework/datasets/CartesianProductDataset.h +++ b/tests/framework/datasets/CartesianProductDataset.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2018, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -182,6 +182,20 @@ CartesianProductDataset combine(T &&dataset1, U &&dataset2) return CartesianProductDataset(std::forward(dataset1), std::forward(dataset2)); } +/** Helper function to create a @ref CartesianProductDataset. + * + * @param[in] dataset1 First dataset. + * @param[in] dataset2 Second dataset. + * @param[in] datasets Subsequent dataset. + * + * @return A grid dataset. + */ +template +auto combine(T1 &&dataset1, T2 &&dataset2, Ts &&... datasets) -> decltype(combine(std::forward(dataset1), combine(std::forward(dataset2), std::forward(datasets)...))) +{ + return combine(std::forward(dataset1), combine(std::forward(dataset2), std::forward(datasets)...)); +} + /** Helper function to create a @ref CartesianProductDataset. * * @param[in] dataset1 First dataset. diff --git a/tests/framework/datasets/ZipDataset.h b/tests/framework/datasets/ZipDataset.h index ce1bb37cab..0b963484c5 100644 --- a/tests/framework/datasets/ZipDataset.h +++ b/tests/framework/datasets/ZipDataset.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2018, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -150,6 +150,20 @@ ZipDataset zip(T &&dataset1, U &&dataset2) { return ZipDataset(std::forward(dataset1), std::forward(dataset2)); } + +/** Helper function to create a @ref ZipDataset. + * + * @param[in] dataset1 First dataset. + * @param[in] dataset2 Second dataset. + * @param[in] datasets Subsequent datasets. + * + * @return A zip dataset. + */ +template +auto zip(T1 &&dataset1, T2 &&dataset2, Ts &&... datasets) -> decltype(zip(std::forward(dataset1), zip(std::forward(dataset2), std::forward(datasets)...))) +{ + return zip(std::forward(dataset1), zip(std::forward(dataset2), std::forward(datasets)...)); +} } // namespace dataset } // namespace framework } // namespace test -- cgit v1.2.1