Improve FFTUnswizzle performance
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- performance
Research direction
Start by reading the FFT and FFTUnswizzle implementation in XDSP.h, focusing on the odd-power-of-two index ordering described in the issue. Determine whether an in-place reordering approach can support the pure-real transform and improve its performance; completion would require a decided implementation rather than further investigation.
Written by the indexing model from the issue text.
Description
Edit: I'm completely rewriting my entry
Using the FFT in XDSP.h I'm implementing a transform routine for pure real sequences equivalent to the function ippsFFTFwd_RToCCS_32f in the Intel IPP. The idea is to use an N/2 complex FFT as described in the literature.
In order to improve the performance of my routine I would like to unswizzle the frequency domain values in place. For even powers of two a swap reordering will do (i.e. the usual radix-4 digit reversal). For odd powers of two, though, FFTUnswizzle keeps the three most significant bits of the index together, like this: 011 10 11 01 -> 01 11 10 011 , which makes implementing in place reordering a bit more challenging.
Has anyone looked into this already?
- Dominant language
- C++
- Stars
- 1.8k
- Forks
- 262
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 5
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/DirectXMath
-
Difficulty 3/5 1-2 days Newbie friendliness 58/100
microsoft/DirectXMath#346 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
microsoft/DirectXMath#342 ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
microsoft/DirectXMath#328 ·
-
simplemath
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/DirectXMath#327 · 1 comment ·
-
Project feedback Open
Difficulty 5/5 Over a week Newbie friendliness 20/100
microsoft/DirectXMath#326 · 2 comments ·
All issues in microsoft/DirectXMath
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
objectionary/eo-graphs#74 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 88/100
QuantStack/git2cpp#187 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100