RetroArch
Typedefs | Functions
XDSP Namespace Reference

Typedefs

typedef __m128 XVECTOR
 
typedef XVECTORXVECTORREF
 
typedef const XVECTORXVECTORREFC
 

Functions

__forceinline void vmulComplex (__out XVECTORREF rResult, __out XVECTORREF iResult, __in XVECTORREFC r1, __in XVECTORREFC i1, __in XVECTORREFC r2, __in XVECTORREFC i2)
 
__forceinline void vmulComplex (__inout XVECTORREF r1, __inout XVECTORREF i1, __in XVECTORREFC r2, __in XVECTORREFC i2)
 
__forceinline void ButterflyDIT4_1 (__inout XVECTORREF r1, __inout XVECTORREF i1)
 
__forceinline void ButterflyDIT4_4 (__inout XVECTORREF r0, __inout XVECTORREF r1, __inout XVECTORREF r2, __inout XVECTORREF r3, __inout XVECTORREF i0, __inout XVECTORREF i1, __inout XVECTORREF i2, __inout XVECTORREF i3, __in_ecount(uStride *4) const XVECTOR *__restrict pUnityTableReal, __in_ecount(uStride *4) const XVECTOR *__restrict pUnityTableImaginary, const UINT32 uStride, const BOOL fLast)
 
__forceinline void FFT4 (__inout_ecount(uCount) XVECTOR *__restrict pReal, __inout_ecount(uCount) XVECTOR *__restrict pImaginary, const UINT32 uCount=1)
 
__forceinline void FFT8 (__inout_ecount(uCount *2) XVECTOR *__restrict pReal, __inout_ecount(uCount *2) XVECTOR *__restrict pImaginary, const UINT32 uCount=1)
 
__forceinline void FFT16 (__inout_ecount(uCount *4) XVECTOR *__restrict pReal, __inout_ecount(uCount *4) XVECTOR *__restrict pImaginary, const UINT32 uCount=1)
 
void FFT (__inout_ecount((uLength *uCount)/4) XVECTOR *__restrict pReal, __inout_ecount((uLength *uCount)/4) XVECTOR *__restrict pImaginary, __in_ecount(uLength *uCount) const XVECTOR *__restrict pUnityTable, const UINT32 uLength, const UINT32 uCount=1)
 
void FFTInitializeUnityTable (__out_ecount(uLength) XVECTOR *__restrict pUnityTable, UINT32 uLength)
 
void FFTUnswizzle (__out_ecount((1<< uLog2Length)/4) XVECTOR *__restrict pOutput, __in_ecount((1<< uLog2Length)/4) const XVECTOR *__restrict pInput, const UINT32 uLog2Length)
 
void FFTPolar (__out_ecount(uLength/4) XVECTOR *__restrict pOutput, __in_ecount(uLength/4) const XVECTOR *__restrict pInputReal, __in_ecount(uLength/4) const XVECTOR *__restrict pInputImaginary, const UINT32 uLength)
 
void Deinterleave (__out_ecount((uChannelCount *uFrameCount)/4) XVECTOR *__restrict pOutput, __in_ecount((uChannelCount *uFrameCount)/4) const XVECTOR *__restrict pInput, const UINT32 uChannelCount, const UINT32 uFrameCount)
 
void Interleave (__out_ecount((uChannelCount *uFrameCount)/4) XVECTOR *__restrict pOutput, __in_ecount((uChannelCount *uFrameCount)/4) const XVECTOR *__restrict pInput, const UINT32 uChannelCount, const UINT32 uFrameCount)
 
void FFTInterleaved (__inout_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict pReal, __out_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict pImaginary, __in_ecount(1<< uLog2Length) const XVECTOR *__restrict pUnityTable, const UINT32 uChannelCount, const UINT32 uLog2Length)
 
void IFFTDeinterleaved (__inout_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict pReal, __out_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict pImaginary, __in_ecount(1<< uLog2Length) const XVECTOR *__restrict pUnityTable, const UINT32 uChannelCount, const UINT32 uLog2Length)
 

Typedef Documentation

◆ XVECTOR

typedef __m128 XDSP::XVECTOR

◆ XVECTORREF

◆ XVECTORREFC

Function Documentation

◆ ButterflyDIT4_1()

__forceinline void XDSP::ButterflyDIT4_1 ( __inout XVECTORREF  r1,
__inout XVECTORREF  i1 
)
Here is the caller graph for this function:

◆ ButterflyDIT4_4()

__forceinline void XDSP::ButterflyDIT4_4 ( __inout XVECTORREF  r0,
__inout XVECTORREF  r1,
__inout XVECTORREF  r2,
__inout XVECTORREF  r3,
__inout XVECTORREF  i0,
__inout XVECTORREF  i1,
__inout XVECTORREF  i2,
__inout XVECTORREF  i3,
__in_ecount(uStride *4) const XVECTOR *__restrict  pUnityTableReal,
__in_ecount(uStride *4) const XVECTOR *__restrict  pUnityTableImaginary,
const UINT32  uStride,
const BOOL  fLast 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Deinterleave()

void XDSP::Deinterleave ( __out_ecount((uChannelCount *uFrameCount)/4) XVECTOR *__restrict  pOutput,
__in_ecount((uChannelCount *uFrameCount)/4) const XVECTOR *__restrict  pInput,
const UINT32  uChannelCount,
const UINT32  uFrameCount 
)
inline
Here is the caller graph for this function:

◆ FFT()

void XDSP::FFT ( __inout_ecount((uLength *uCount)/4) XVECTOR *__restrict  pReal,
__inout_ecount((uLength *uCount)/4) XVECTOR *__restrict  pImaginary,
__in_ecount(uLength *uCount) const XVECTOR *__restrict  pUnityTable,
const UINT32  uLength,
const UINT32  uCount = 1 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FFT16()

__forceinline void XDSP::FFT16 ( __inout_ecount(uCount *4) XVECTOR *__restrict  pReal,
__inout_ecount(uCount *4) XVECTOR *__restrict  pImaginary,
const UINT32  uCount = 1 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FFT4()

__forceinline void XDSP::FFT4 ( __inout_ecount(uCount) XVECTOR *__restrict  pReal,
__inout_ecount(uCount) XVECTOR *__restrict  pImaginary,
const UINT32  uCount = 1 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FFT8()

__forceinline void XDSP::FFT8 ( __inout_ecount(uCount *2) XVECTOR *__restrict  pReal,
__inout_ecount(uCount *2) XVECTOR *__restrict  pImaginary,
const UINT32  uCount = 1 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ FFTInitializeUnityTable()

void XDSP::FFTInitializeUnityTable ( __out_ecount(uLength) XVECTOR *__restrict  pUnityTable,
UINT32  uLength 
)
inline

◆ FFTInterleaved()

void XDSP::FFTInterleaved ( __inout_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict  pReal,
__out_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict  pImaginary,
__in_ecount(1<< uLog2Length) const XVECTOR *__restrict  pUnityTable,
const UINT32  uChannelCount,
const UINT32  uLog2Length 
)
inline
Here is the call graph for this function:

◆ FFTPolar()

void XDSP::FFTPolar ( __out_ecount(uLength/4) XVECTOR *__restrict  pOutput,
__in_ecount(uLength/4) const XVECTOR *__restrict  pInputReal,
__in_ecount(uLength/4) const XVECTOR *__restrict  pInputImaginary,
const UINT32  uLength 
)
inline

◆ FFTUnswizzle()

void XDSP::FFTUnswizzle ( __out_ecount((1<< uLog2Length)/4) XVECTOR *__restrict  pOutput,
__in_ecount((1<< uLog2Length)/4) const XVECTOR *__restrict  pInput,
const UINT32  uLog2Length 
)
inline
Here is the caller graph for this function:

◆ IFFTDeinterleaved()

void XDSP::IFFTDeinterleaved ( __inout_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict  pReal,
__out_ecount((1<< uLog2Length *uChannelCount)/4) XVECTOR *__restrict  pImaginary,
__in_ecount(1<< uLog2Length) const XVECTOR *__restrict  pUnityTable,
const UINT32  uChannelCount,
const UINT32  uLog2Length 
)
inline
Here is the call graph for this function:

◆ Interleave()

void XDSP::Interleave ( __out_ecount((uChannelCount *uFrameCount)/4) XVECTOR *__restrict  pOutput,
__in_ecount((uChannelCount *uFrameCount)/4) const XVECTOR *__restrict  pInput,
const UINT32  uChannelCount,
const UINT32  uFrameCount 
)
inline
Here is the caller graph for this function:

◆ vmulComplex() [1/2]

__forceinline void XDSP::vmulComplex ( __out XVECTORREF  rResult,
__out XVECTORREF  iResult,
__in XVECTORREFC  r1,
__in XVECTORREFC  i1,
__in XVECTORREFC  r2,
__in XVECTORREFC  i2 
)
Here is the caller graph for this function:

◆ vmulComplex() [2/2]

__forceinline void XDSP::vmulComplex ( __inout XVECTORREF  r1,
__inout XVECTORREF  i1,
__in XVECTORREFC  r2,
__in XVECTORREFC  i2 
)