Skip to content

Add arm_cmplx_mult_real_f64 - #353

Open
Kiptoo-Deus wants to merge 1 commit into
ARM-software:mainfrom
Kiptoo-Deus:cmplx-mult-real-f64
Open

Kiptoo-Deus wants to merge 1 commit into
ARM-software:mainfrom
Kiptoo-Deus:cmplx-mult-real-f64

Conversation

@Kiptoo-Deus

Copy link
Copy Markdown

Fixes #350.

The complex math functions have f64 versions of mag, mag_squared and mult_cmplx, but not of mult_real. This adds arm_cmplx_mult_real_f64:

  • Source/ComplexMathFunctions/arm_cmplx_mult_real_f64.c: a scalar implementation, like the other f64 complex functions, documented in the existing CmplxByRealMult group.
  • Declared in Include/dsp/complex_math_functions.h next to arm_cmplx_mult_cmplx_f64.
  • Added to ComplexMathFunctions.c and Config.cmake.
  • Testing/desc.txt: the F64 complex suite already has test_cmplx_mult_real_f64, its setUp cases (nb = 2, 4, 5 and the long test) and the Reference8_f64.txt pattern, but the four tests were disabled because the function didn't exist. They're enabled now.

Testing (macOS, Apple clang):

  • Called the function on Input1_f64.txt (complex) and Input3_f64.txt (real) for nb = 2, 4, 5 and 256, the sizes the test cases use, and compared with Reference8_f64.txt: the output is bit-exact in every case, built for both arm64 and x86_64, and nothing is written past the end of the output.
  • ComplexMathFunctions.c and the CMake build of Source (CMSISDSP static library) both build, with arm_cmplx_mult_real_f64 exported.

I didn't add Python wrapper or dsppp bindings for it; happy to do that in a follow-up if you'd like.

The complex math functions have f64 versions of mag, mag_squared and
mult_cmplx, but not of mult_real. Add arm_cmplx_mult_real_f64 as a
scalar implementation like the other f64 functions, declare it in
complex_math_functions.h and add it to ComplexMathFunctions.c and
Config.cmake.

The F64 complex test suite already has test_cmplx_mult_real_f64, its
setUp cases and the Reference8_f64.txt pattern, so the four disabled
mult_real_f64 tests in desc.txt are enabled.

Fixes ARM-software#350.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

arm_cmplx_mult_real_f64

1 participant