MCPcopy Create free account
hub / github.com/LabSound/LabSound / vdeintlve

Function vdeintlve

src/internal/src/VectorMath.cpp:755–785  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

753 }
754
755 void vdeintlve(const float * sourceP, float * realDestP, float * imagDestP, int framesToProcess)
756 {
757 int i = 0;
758#if defined(ARM_NEON_INTRINSICS)
759 int j = 0;
760 int endSize = framesToProcess - framesToProcess % 4;
761
762 while (i < endSize)
763 {
764 float32x4_t source1 = vld1q_f32(sourceP);
765 float32x4_t source2 = vld1q_f32(sourceP + 4);
766
767 float32x4x2_t source = vuzpq_f32(source1, source2);
768
769 vst1q_f32(realDestP + j, source.val[0]);
770 vst1q_f32(imagDestP + j, source.val[1]);
771
772 sourceP += 8;
773
774 i += 8;
775 j += 4;
776 }
777#endif
778 int lenTail = framesToProcess / 2;
779 for (; i < lenTail; ++i)
780 {
781 int baseIndex = 2 * i;
782 realDestP[i] = sourceP[baseIndex];
783 imagDestP[i] = sourceP[baseIndex + 1];
784 }
785 }
786
787} // namespace VectorMath
788

Callers 1

computeForwardFFTMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected