diff options
author | John Richardson <john.richardson@arm.com> | 2017-10-04 15:27:37 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:35:24 +0000 |
commit | 3c5f949ad73fff961a7d193c9275b73df13b8096 (patch) | |
tree | f7285b4223d2f40907ac5edb4d32bfe3c2883830 /src/runtime/NEON/functions | |
parent | 0063380ca6e43d04722707c707e610b59e1f8dde (diff) | |
download | ComputeLibrary-3c5f949ad73fff961a7d193c9275b73df13b8096.tar.gz |
COMPMID-575: Port Magnitude to new validation
Change-Id: I2600947bef30853d00adfa4b919dbcb860de9bfd
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/91717
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/runtime/NEON/functions')
-rw-r--r-- | src/runtime/NEON/functions/NEMagnitude.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/runtime/NEON/functions/NEMagnitude.cpp b/src/runtime/NEON/functions/NEMagnitude.cpp index 7877995d6b..f86505449f 100644 --- a/src/runtime/NEON/functions/NEMagnitude.cpp +++ b/src/runtime/NEON/functions/NEMagnitude.cpp @@ -31,18 +31,36 @@ using namespace arm_compute; -void NEMagnitude::configure(const ITensor *input1, const ITensor *input2, ITensor *output, bool use_fp16) +void NEMagnitude::configure(const ITensor *input1, const ITensor *input2, ITensor *output, MagnitudeType mag_type, bool use_fp16) { if(use_fp16) { - auto k = arm_compute::support::cpp14::make_unique<NEMagnitudePhaseFP16Kernel<MagnitudeType::L2NORM, PhaseType::SIGNED>>(); - k->configure(input1, input2, output, nullptr); - _kernel = std::move(k); + if(mag_type == MagnitudeType::L1NORM) + { + auto k = arm_compute::support::cpp14::make_unique<NEMagnitudePhaseFP16Kernel<MagnitudeType::L1NORM, PhaseType::SIGNED>>(); + k->configure(input1, input2, output, nullptr); + _kernel = std::move(k); + } + else + { + auto k = arm_compute::support::cpp14::make_unique<NEMagnitudePhaseFP16Kernel<MagnitudeType::L2NORM, PhaseType::SIGNED>>(); + k->configure(input1, input2, output, nullptr); + _kernel = std::move(k); + } } else { - auto k = arm_compute::support::cpp14::make_unique<NEMagnitudePhaseKernel<MagnitudeType::L2NORM, PhaseType::SIGNED>>(); - k->configure(input1, input2, output, nullptr); - _kernel = std::move(k); + if(mag_type == MagnitudeType::L1NORM) + { + auto k = arm_compute::support::cpp14::make_unique<NEMagnitudePhaseKernel<MagnitudeType::L1NORM, PhaseType::SIGNED>>(); + k->configure(input1, input2, output, nullptr); + _kernel = std::move(k); + } + else + { + auto k = arm_compute::support::cpp14::make_unique<NEMagnitudePhaseKernel<MagnitudeType::L2NORM, PhaseType::SIGNED>>(); + k->configure(input1, input2, output, nullptr); + _kernel = std::move(k); + } } } |