Lines Matching +full:- +full:g

1 /* ----------------------------------------------------------------------
9 * Target Processor: Cortex-M and Cortex-A cores
10 * -------------------------------------------------------------------- */
12 * Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
14 * SPDX-License-Identifier: Apache-2.0
20 * www.apache.org/licenses/LICENSE-2.0
39 const float32_t * pCoeff = S->pTwiddleRFFT; /* Points to RFFT Twiddle factors */ in stage_rfft_f32()
52 vecStridesBkwd = -vecStridesFwd; in stage_rfft_f32()
57 k = (S->Sint).fftLen - 1; in stage_rfft_f32()
72 // U2 = XB(1) - XA(1); % It is imaginary in stage_rfft_f32()
75 // real(tw * (xB - xA)) = twR * (xBR - xAR) - twI * (xBI - xAI); in stage_rfft_f32()
76 // imag(tw * (xB - xA)) = twI * (xBR - xAR) + twR * (xBI - xAI); in stage_rfft_f32()
78 *pOut++ = 0.5f * ( t1a - t1b ); in stage_rfft_f32()
80 // XA(1) = 1/2*( U1 - imag(U2) + i*( U1 +imag(U2) )); in stage_rfft_f32()
93 XB = conj(XA([1 end:-1:2])); in stage_rfft_f32()
94 TW = i*exp(-2*pi*i*[0:L/2-1]/L).'; in stage_rfft_f32()
96 XA(l) = 1/2 * (XA(l) + XB(l) + TW(l) * (XB(l) - XA(l))); in stage_rfft_f32()
98 …XA(1) = 1/2* (XA(1) + XB(1) + TW(1) * (XB(1) - XA(1))) + i*( 1/2*( XA(1) + XB(1) + i*( XA(1) - XB(… in stage_rfft_f32()
112 pB -= 8; in stage_rfft_f32()
142 blockCnt--; in stage_rfft_f32()
154 XB = conj(XA([1 end:-1:2])); in stage_rfft_f32()
155 TW = i*exp(-2*pi*i*[0:L/2-1]/L).'; in stage_rfft_f32()
157 XA(l) = 1/2 * (XA(l) + XB(l) + TW(l) * (XB(l) - XA(l))); in stage_rfft_f32()
159 …XA(1) = 1/2* (XA(1) + XB(1) + TW(1) * (XB(1) - XA(1))) + i*( 1/2*( XA(1) + XB(1) + i*( XA(1) - XB(… in stage_rfft_f32()
171 t1a = xBR - xAR ; in stage_rfft_f32()
174 // real(tw * (xB - xA)) = twR * (xBR - xAR) - twI * (xBI - xAI); in stage_rfft_f32()
175 // imag(tw * (xB - xA)) = twI * (xBR - xAR) + twR * (xBI - xAI); in stage_rfft_f32()
182 *pOut++ = 0.5f * (xAI - xBI + p1 - p2 ); //xAI in stage_rfft_f32()
185 pB -= 2; in stage_rfft_f32()
186 blockCnt--; in stage_rfft_f32()
198 const float32_t *pCoeff = S->pTwiddleRFFT; /* Points to RFFT Twiddle factors */ in merge_rfft_f32()
209 vecStridesBkwd = -vecStridesFwd; in merge_rfft_f32()
214 k = (S->Sint).fftLen - 1; in merge_rfft_f32()
222 *pOut++ = 0.5f * ( xAR - xAI ); in merge_rfft_f32()
230 /* G is half of the frequency complex spectrum */ in merge_rfft_f32()
232 // Xk(k) = 1/2 * (G(k) + conj(G(N-k+2)) + Tw(k)*( G(k) - conj(G(N-k+2)))); in merge_rfft_f32()
242 pB -= 8; in merge_rfft_f32()
273 blockCnt--; in merge_rfft_f32()
279 /* G is half of the frequency complex spectrum */ in merge_rfft_f32()
281 // Xk(k) = 1/2 * (G(k) + conj(G(N-k+2)) + Tw(k)*( G(k) - conj(G(N-k+2)))); in merge_rfft_f32()
290 t1a = xAR - xBR ; in merge_rfft_f32()
298 // real(tw * (xA - xB)) = twR * (xAR - xBR) - twI * (xAI - xBI); in merge_rfft_f32()
299 // imag(tw * (xA - xB)) = twI * (xAR - xBR) + twR * (xAI - xBI); in merge_rfft_f32()
300 *pOut++ = 0.5f * (xAR + xBR - r - s ); //xAR in merge_rfft_f32()
301 *pOut++ = 0.5f * (xAI - xBI + t - u ); //xAI in merge_rfft_f32()
304 pB -= 2; in merge_rfft_f32()
305 blockCnt--; in merge_rfft_f32()
317 const float32_t * pCoeff = S->pTwiddleRFFT; /* Points to RFFT Twiddle factors */ in stage_rfft_f32()
325 k = (S->Sint).fftLen - 1; in stage_rfft_f32()
341 // U2 = XB(1) - XA(1); % It is imaginary in stage_rfft_f32()
344 // real(tw * (xB - xA)) = twR * (xBR - xAR) - twI * (xBI - xAI); in stage_rfft_f32()
345 // imag(tw * (xB - xA)) = twI * (xBR - xAR) + twR * (xBI - xAI); in stage_rfft_f32()
347 *pOut++ = 0.5f * ( t1a - t1b ); in stage_rfft_f32()
349 // XA(1) = 1/2*( U1 - imag(U2) + i*( U1 +imag(U2) )); in stage_rfft_f32()
361 XB = conj(XA([1 end:-1:2])); in stage_rfft_f32()
362 TW = i*exp(-2*pi*i*[0:L/2-1]/L).'; in stage_rfft_f32()
364 XA(l) = 1/2 * (XA(l) + XB(l) + TW(l) * (XB(l) - XA(l))); in stage_rfft_f32()
366 …XA(1) = 1/2* (XA(1) + XB(1) + TW(1) * (XB(1) - XA(1))) + i*( 1/2*( XA(1) + XB(1) + i*( XA(1) - XB(… in stage_rfft_f32()
378 t1a = xBR - xAR ; in stage_rfft_f32()
381 // real(tw * (xB - xA)) = twR * (xBR - xAR) - twI * (xBI - xAI); in stage_rfft_f32()
382 // imag(tw * (xB - xA)) = twI * (xBR - xAR) + twR * (xBI - xAI); in stage_rfft_f32()
389 *pOut++ = 0.5f * (xAI - xBI + p1 - p2 ); //xAI in stage_rfft_f32()
393 pB -= 2; in stage_rfft_f32()
394 k--; in stage_rfft_f32()
406 const float32_t *pCoeff = S->pTwiddleRFFT; /* Points to RFFT Twiddle factors */ in merge_rfft_f32()
412 k = (S->Sint).fftLen - 1; in merge_rfft_f32()
420 *pOut++ = 0.5f * ( xAR - xAI ); in merge_rfft_f32()
427 /* G is half of the frequency complex spectrum */ in merge_rfft_f32()
429 // Xk(k) = 1/2 * (G(k) + conj(G(N-k+2)) + Tw(k)*( G(k) - conj(G(N-k+2)))); in merge_rfft_f32()
438 t1a = xAR - xBR ; in merge_rfft_f32()
446 // real(tw * (xA - xB)) = twR * (xAR - xBR) - twI * (xAI - xBI); in merge_rfft_f32()
447 // imag(tw * (xA - xB)) = twI * (xAR - xBR) + twR * (xAI - xBI); in merge_rfft_f32()
448 *pOut++ = 0.5f * (xAR + xBR - r - s ); //xAR in merge_rfft_f32()
449 *pOut++ = 0.5f * (xAI - xBI + t - u ); //xAI in merge_rfft_f32()
452 pB -= 2; in merge_rfft_f32()
453 k--; in merge_rfft_f32()
486 forward RFFT. A first processing stage pre-process the data to later perform an
491 The algorithms for floating-point, Q15, and Q31 data are slightly different
493 @par Floating-point
500 The FFT of a real N-point sequence has even symmetry in the frequency domain.
537 The complex transforms used internally include scaling to prevent fixed-point
547 - Sets the values of the internal structure fields.
548 - Initializes twiddle factor table and bit reversal table pointers.
549 - Initializes the internal complex FFT data structure.
587 @brief Processing function for the floating-point real FFT.
592 - value = 0: RFFT
593 - value = 1: RIFFT
602 const arm_cfft_instance_f32 * Sint = &(S->Sint); in arm_rfft_fast_f32()
609 /* Complex radix-4 IFFT process */ in arm_rfft_fast_f32()