RetroArch
Namespaces | Macros | Typedefs | Functions
xdsp.h File Reference
#include <windef.h>
#include <math.h>
#include <emmintrin.h>
Include dependency graph for xdsp.h:

Go to the source code of this file.

Namespaces

 XDSP
 

Macros

#define DSPASSERT(exp)   __assume(exp)
 
#define ISPOWEROF2(n)   ( ((n)&((n)-1)) == 0 && (n) != 0 )
 

Typedefs

typedef __m128 XDSP::XVECTOR
 
typedef XVECTOR & XDSP::XVECTORREF
 
typedef const XVECTOR & XDSP::XVECTORREFC
 

Functions

__forceinline void XDSP::vmulComplex (__out XVECTORREF rResult, __out XVECTORREF iResult, __in XVECTORREFC r1, __in XVECTORREFC i1, __in XVECTORREFC r2, __in XVECTORREFC i2)
 
__forceinline void XDSP::vmulComplex (__inout XVECTORREF r1, __inout XVECTORREF i1, __in XVECTORREFC r2, __in XVECTORREFC i2)
 
__forceinline void XDSP::ButterflyDIT4_1 (__inout XVECTORREF r1, __inout XVECTORREF i1)
 
__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)
 
__forceinline void XDSP::FFT4 (__inout_ecount(uCount) XVECTOR *__restrict pReal, __inout_ecount(uCount) XVECTOR *__restrict pImaginary, const UINT32 uCount=1)
 
__forceinline void XDSP::FFT8 (__inout_ecount(uCount *2) XVECTOR *__restrict pReal, __inout_ecount(uCount *2) XVECTOR *__restrict pImaginary, const UINT32 uCount=1)
 
__forceinline void XDSP::FFT16 (__inout_ecount(uCount *4) XVECTOR *__restrict pReal, __inout_ecount(uCount *4) XVECTOR *__restrict pImaginary, const UINT32 uCount=1)
 
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)
 
void XDSP::FFTInitializeUnityTable (__out_ecount(uLength) XVECTOR *__restrict pUnityTable, UINT32 uLength)
 
void XDSP::FFTUnswizzle (__out_ecount((1<< uLog2Length)/4) XVECTOR *__restrict pOutput, __in_ecount((1<< uLog2Length)/4) const XVECTOR *__restrict pInput, const UINT32 uLog2Length)
 
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)
 
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)
 
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)
 
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)
 
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)
 

Macro Definition Documentation

◆ DSPASSERT

#define DSPASSERT (   exp)    __assume(exp)

◆ ISPOWEROF2

#define ISPOWEROF2 (   n)    ( ((n)&((n)-1)) == 0 && (n) != 0 )